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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: ps4debug-0.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 6cf317bc2b5e4c7b460be2f3537ca167a2f729b401d11570decf6e093dd7df65
MD5 1f0d4066be41f9457a30435f20ebb0e7
BLAKE2b-256 834b3851e1227594a99db00016ad397a7c0e0915211d6b0b9b90c9cc5598a089

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ps4debug-0.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7b1560f0a7a22da875aaeb4ca9f6882ab23216cb1e7e64c37e2552b1a0f5e147
MD5 6fc1146ecd68bba6ecc752ca29b2fdca
BLAKE2b-256 1bdb019be660d7dfe5af5be33cdbcdab1b22bdf016bb664d5b01ce09891a3625

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