From e89f75038fd6a1d6413573b84ce90c9fd5128770 Mon Sep 17 00:00:00 2001 From: chaoskagami Date: Tue, 7 Jun 2016 10:47:38 -0400 Subject: [PATCH] Static offset based twl/agb patches (some bits need more context for dynamic. Unless another update is pushed I may not bother) --- patch/agb_sig.pco | 51 +++++++++++++++++++++++++++++++++++++++++++ patch/twl_fix_new.pco | 42 +++++++++++++++++++++++++++++++++++ patch/twl_fix_old.pco | 43 ++++++++++++++++++++++++++++++++++++ 3 files changed, 136 insertions(+) create mode 100644 patch/agb_sig.pco create mode 100644 patch/twl_fix_new.pco create mode 100644 patch/twl_fix_old.pco diff --git a/patch/agb_sig.pco b/patch/agb_sig.pco new file mode 100644 index 0000000..c0c4373 --- /dev/null +++ b/patch/agb_sig.pco @@ -0,0 +1,51 @@ +# $name AGB Patches +# $desc Patches signatures and bootscreen in AGB firm +# $ver 01 +# $uuid 35 + +# TODO - Make dynamic. +# This is also terribly inconvienent without labels. + +rel agb + +# ############################# + +# Sigs (1) +seek 0009DF64 +test C117491C31D0 +jmpne 0006 +set 00204EB070BD +jmp 000D + +# OLD3DS Sigs (6) +seek 0009D2A8 +test C117491C31D0 +jmpne 000B +set 00204EB070BD +jmp 000D +# Failed to set sigcheck. + +# Abort due to failure. (11) +rewind +back 01 + +# The above rewinds the file and moves backwards +# one byte (which triggers the underflow error in +# the VM) + +# ############################## + +# Bootscreen (13) +seek 000D8B8A +test 01 +jmpne 0012 +set 26 +jmp 0016 + +# OLD3ds bootscreen (18) +seek 000D7A12 +test 01 +jmpne 000B +set 26 + +# End (22) diff --git a/patch/twl_fix_new.pco b/patch/twl_fix_new.pco new file mode 100644 index 0000000..13611cc --- /dev/null +++ b/patch/twl_fix_new.pco @@ -0,0 +1,42 @@ +# $name TWL_FIRM patches (New3DS) +# $desc +# $ver 01 +# $uuid 34 + +# TODO - Make dynamic + +# Relative to twl_firm +rel twl + +# Disable main signature checks +seek 00165D64 +set 00204EB070BD + +# Patch RSA function to not report invalid signatures +seek 0017474A +set 0120 + +# Disable header Nintendo logo check (not generally needed) +seek 0017553E +set 00200000 + +# Disable whitelist check +seek 001756A0 +set 00200000 + +# Disable cartridge blacklist check (mostly, if not entirely, demo carts) +seek 00175A8E +set 01200000 + +# Disable save type check +seek 00175A9A +set 01200000 + +# Disable DSi cartridge save exploit check +seek 00175AA6 +set 01200000 + +# Stub function commonly used to compare SHA hashes to always succeed +seek 00175B92 +set 01207047 + diff --git a/patch/twl_fix_old.pco b/patch/twl_fix_old.pco new file mode 100644 index 0000000..ba3bb3b --- /dev/null +++ b/patch/twl_fix_old.pco @@ -0,0 +1,43 @@ +# $name TWL_FIRM patches (Old3DS) +# $desc +# $ver 01 +# $uuid 36 + +# TODO - Make dynamic + +# Relative to agb_firm +rel twl + +# Disable main signature checks +seek 001650C0 +set 00204EB070BD + +# Patch RSA function to not report invalid signatures +seek 00173A0E +set 0120 + +# Disable header Nintendo logo check (not generally needed) +seek 00174802 +set 00200000 + +# Disable whitelist check +seek 00174964 +set 00200000 + +# Disable cartridge blacklist check (mostly, if not entirely, demo carts) +seek 00174D52 +set 01200000 + +# Disable save type check +seek 00174D5E +set 01200000 + +# Disable DSi cartridge save exploit check +seek 00174D6A +set 01200000 + +# Stub function commonly used to compare SHA hashes to always succeed +seek 00174E56 +set 01207047 + +# end -- 2.39.5