Join Us and become a Member for a Verified Badge to access private areas with the latest PS4 PKGs.
Status
Not open for further replies.
Earlier this month PlayStation 4 Scene developer @illusion0001 made available on Github via Twitter a Py Patcher binary patching application for Linux and Windows users to aid in applying the various PS3 / PS4 console patches from the Patch Repository on Illusion's Blog. :cool:

Download: py-patch-linux.tar.gz (18.2 MB) / py-patch-windows.zip (8.58 MB - includes py-patch.exe) / GIT

Spoiler: Legacy Links

<3 Illusion0001's Sponsors and Social Links
This comes following his previously released PS4 60FPS Game Patches with Aspect Ratio & Resolution Mods, Bloodborne PS4 EBOOT.BIN Patches and from the README.md: Py-Patcher

Simple Binary Patching for console games in Python.

Features
  • Config like parsing support.
  • Supports big and little endian architecture. (PS3 and PS4)
  • Easy to read syntaxes.
Usage

See syntax in example.yml:
Code:
- game: test
  app_ver: "01.03"
  patch_ver: "1.0"
  name: "test"
  author: "test"
  note: "tests"
  arch: orbis
  enabled: True # Todo: move this to a separate file
  patch_list:
      # - [ syntax ]
      # - [ Cell Elf Base  : 0x10000  ]
      # - [ Orbis Elf Base : 0x400000 ]
      # - [ Orbis only accepts disabled aslr address (i.e from PS4 Cheater, Ghidra or IDA). ]
      # - [ patch_type, ElfAddr, "HexByteArray" (orbis or generic only) ]
       - [ bytes, 0x40000c, "90 c3 be 00" ] # spaces doesn't matter
       - [ utf8, 0x400004, "My utf8 string!" ]
       - [ float32, 0x400018, 0.0333333333 ] # little endian
       - [ float64, 0x400020, 0.5 ] # little endian
       - [ bytes32, 0x400080,  0x60000000 ]
       - [ bytes64, 0x400084,  0x6000000060000000 ]
        # f32 = float
        # f64 = double precision float

- game: "Game Title1"
  app_ver: "01.00"
  patch_ver: "1.0"
  name: "Patch Title1"
  author: "having skill"
  note: "issues"
  enabled: True # Todo: move this to a separate file
  arch: cell
  patch_list:
       - [ utf8, 0x10000,  "My utf8 string!" ]
       - [ bytes32, 0x20080,  0x60000000 ]
       - [ bytes64, 0x20080,  0x6000000060000000 ]
       - [ bytes16, 0x20084,  0xF00D ]
       - [ byte, 0x20088,  0xFF ]
       - [ float32, 0x1002c,  0.5 ] # must be byte swapped to big endian
       - [ float64, 0x20090,  0.5 ]
        # f32 = float
        # f64 = double precision float

- game: "Game Title3"
  app_ver: "00.00"
  patch_ver: "1.0"
  name: "Patch Title4"
  author: "having skill"
  note: "issues"
  enabled: True # Todo: move this to a separate file
  arch: generic
  patch_list:
       - [ bytes, 0x20040,  "60 00 55 00" ]
       - [ float32, 0x20044,  0.5 ]
       - [ float64, 0x20048,  0.5 ]
       - [ utf8, 0x20050, "testing out the generic type text" ]
       #- [ aob, "7265706c616365206d6531, "7265706c616365206d6532" ]
Code:
launcher.py -h
usage: launcher.py [-h] -f FILE -c CONFIG [-v] [-od] [-ci]
options:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  The ELF file to be patched.
  -c CONFIG, --config CONFIG
                        The configuration file.
  -v, --verbose         Enable Verbose Mode.
  -od, --outputdate     Append date and time to output directory.
  -ci, --cibuild        For running tests on buildbot.
Credits
Todo-list
  • Add array of bytes support (find and replace)
  • Move Patch Enabled field to auto generated file
The Last Guardian 1.03 Framerate Unlock on PS4 Pro
Py Patcher Binary Patching App for PS3 PS4 Games by Illusion0001.jpg
 

Comments

Status
Not open for further replies.
Top