Skip to content

Instantly share code, notes, and snippets.

@34306
Created March 2, 2025 05:52
Show Gist options
  • Select an option

  • Save 34306/bc1ebb3de4b52ed175ed29b672fb9bb8 to your computer and use it in GitHub Desktop.

Select an option

Save 34306/bc1ebb3de4b52ed175ed29b672fb9bb8 to your computer and use it in GitHub Desktop.
fortnite auto update patch
import os
import re
print("=== Auto Patch Fortnite ARM64 ===")
print("Method by @khanhduytran0, script patch by @34306")
input_path = input("Please paste the path to Fortnite binary (FortniteClient-IOS-Shipping): ").strip()
output_default = os.path.expanduser('~/Desktop/FortniteClient-IOS-Shipping')
output_path = input(f"Please paste the path for the patched Fortnite binary [default {output_default}]: ").strip()
if not output_path:
output_path = output_default
pattern = re.compile(
b'\xF5\x03\x00\xAA.{8}\xC8\x02\x40\xB9.{4}\xC8\x82\x5F\xF8',
re.DOTALL
)
replace_from = bytes.fromhex("F50300AA")
replace_to = bytes.fromhex("350080D2")
with open(input_path, 'rb') as file:
binary_data = file.read()
match = pattern.search(binary_data)
if match:
patch_addr = match.start()
print(f"Pattern found at address: 0x{patch_addr:X}")
# Verify before patching
if binary_data[patch_addr:patch_addr+4] == replace_from:
patched_data = binary_data[:patch_addr] + replace_to + binary_data[patch_addr+4:]
with open(output_path, 'wb') as file:
file.write(patched_data)
print(f"Patch successful! File saved at: {output_path}")
print("Replace it with original one and then enjoy it with sideload")
else:
print("Error: Data at found address does not match the expected pattern to patch!")
else:
print("Pattern not found in this file!")
@khanhduytran0
Copy link

pymobiledevice3/go-ios have a command option to disable memory limit for process, but this still doesn’t bypass memory entitlement checks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment