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.6.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

ps4debug-0.0.6-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ps4debug-0.0.6.tar.gz
  • Upload date:
  • Size: 11.7 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.6.tar.gz
Algorithm Hash digest
SHA256 cf60b91902957a21f731689a38d655530834e4e0b2da5d055116282a3828707d
MD5 1fe5b35f62cdd700c537d4386186fb4b
BLAKE2b-256 bf78d2fa833fb869e89f4cdcbc006dbccf480725bb85a42b95b67672ab233cee

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ps4debug-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 11.2 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2ee770d520439b61e9059d3737ef7e50bd3891d87cc048327ffecd2915131060
MD5 957267249087cbf20495032431cfe1c7
BLAKE2b-256 7468591c5ecc6621d8ac10ac08e11194a81b98fea6317a2e95bfddd4fb652f5f

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