Skip to main content

Integrates into Future Tone on the PS4

Project description

PyPS4debug

ps4debug implementation in python.

Install (pip)

pip install ps4debug

Example usage

import sys
import functools
import ps4debug

def main(ip_address):
  # You may also retrieve the IP address using the find_ps4() function
  ip_address = ip_address or ps4debug.PS4Debug.find_ps4()

  with ps4debug.PS4Debug(ip_address) as ps4:
    # Get processes
    processes = ps4.get_processes()
    
    # Find specific process id
    pid = next((pid for name, pid in processes if name == 'eboot.bin'), None)
    
    # Read memory
    gold = ps4.read_int32(pid, 0xCA88888)
    
    # Write memory
    if ps4.write_int32(pid, 0xCA44444, 9999) != ps4debug.ResponseCode.SUCCESS:
      print('There was an error!')
      
    # Remotely execute code (Code injection)
    with ps4.memory(pid, 4096) as memory:
      # Write your own assembly code to the system
      assembly = b'\x90\x90\x90\x90\xC3\x90'
      memory.write(assembly)
      
      # And call it. Parameters are limited to 48 bytes or 6 values.
      # See https://docs.python.org/3/library/struct.html#format-strings for more information on the '<6Q' part if you're confused.
      rpc_stub = ps4.install_rpc(pid)
      rax = memory.call(1, 2, 3, 4, 5, 6, rpc_stub=rpc_stub, parameter_format='<6Q')
      
      print(f'Thread returned with rax = {rax}')

    # You may also use functools.partial for cleaner calls:
    get_gold = functools.partial(ps4.read_int32, pid=pid, address=0xCA88888)
    set_gold = functools.partial(ps4.write_int32, pid=pid, address=0xCA88888)
    injected_function = functools.partial(ps4.call, pid=pid, rpc_stub=rpc_stub, address=allocated_memory, parameter_format='<6Q')

    gold = get_gold()
    set_gold(gold + 10)
    injected_function(1, 2, 3, 4, 5, 6)

  
if __name__ == '__main__':
  # Normally you would use something like Typer for this
  args = sys.argv[1:]
  ip_address = args[0] if len(args) else input('Enter the IP address of your PS4: ')
  main(ip_address)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ps4debug-0.0.3.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

ps4debug-0.0.3-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file ps4debug-0.0.3.tar.gz.

File metadata

  • Download URL: ps4debug-0.0.3.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.0

File hashes

Hashes for ps4debug-0.0.3.tar.gz
Algorithm Hash digest
SHA256 0ade0970bc4b7762cf0379239309d2d10fa1f9bf0a63c3744930e0208fb1ca65
MD5 b331951d76494fdb303791feb73e2e33
BLAKE2b-256 4037e16bbe6b2ab37e9169ea4cff9250217bd88c280833178da9750328ed9687

See more details on using hashes here.

File details

Details for the file ps4debug-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: ps4debug-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.0

File hashes

Hashes for ps4debug-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0a043469509685860ff46e0695f89bf64c4f92d710e1502321ff08384c0518af
MD5 3f611c2de0b22d7f8e336fb74e1ecbd6
BLAKE2b-256 7a1f96123f36135723d57c794b78a40982e818df67cb2835d97bb57c13f37fa9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page