mirror of
https://github.com/TechnoIndian/ApkPatcher.git
synced 2026-09-14 09:21:51 +02:00
Flutter Pattern Update or Version Upgrade
This commit is contained in:
@@ -5,6 +5,7 @@ from ..ANSI_COLORS import ANSI; C = ANSI()
|
||||
from ..MODULES import IMPORT; M = IMPORT()
|
||||
|
||||
|
||||
# ---------------- ssl_verify_peer_cert ----------------
|
||||
patterns = {
|
||||
"arm64": [
|
||||
"F. 0F 1C F8 F. 5. 01 A9 F. 5. 02 A9 F. .. 03 A9 .. .. .. .. 68 1A 40 F9",
|
||||
@@ -16,14 +17,25 @@ patterns = {
|
||||
"2D E9 F. 4. D0 F8 00 80 81 46 D8 F8 18 00 D0 F8",
|
||||
],
|
||||
"x86": [
|
||||
"55 41 57 41 56 41 55 41 54 53 50 49 89 fe 48 8b 1f 48 8b 43 30 4c 8b b8 d0 01 00 00 4d 85 ff 74 12 4d 8b a7 90 00 00 00 4d 85 e4 74 4a 49 8b 04 24 eb 46",
|
||||
"55 41 57 41 56 41 55 41 54 53 50 49 89 f. 4c 8b 37 49 8b 46 30 4c 8b a. .. 0. 00 00 4d 85 e. 74 1. 4d 8b",
|
||||
"55 41 57 41 56 41 55 41 54 53 50 49 89 FE 48 8B 1F 48 8B 43 30 4C 8B B8 D0 01 00 00 4D 85 FF 74 12 4D 8B A7 90 00 00 00 4D 85 E4 74 4A 49 8B 04 24 EB 46",
|
||||
"55 41 57 41 56 41 55 41 54 53 50 49 89 F. 4. 8B .. 4. 8B 4. 30 4C 8B .. .. 0. 00 00 4D 85 .. 74 1. 4D 8B",
|
||||
"55 41 57 41 56 41 55 41 54 53 48 83 EC 18 49 89 FF 48 8B 1F 48 8B 43 30 4C 8B A0 28 02 00 00 4D 85 E4 74",
|
||||
"55 41 57 41 56 41 55 41 54 53 48 83 EC 38 C6 02 50 48 8B AF A. 00 00 00 48 85 ED 74 7. 48 83 7D 00 00 74",
|
||||
"55 41 57 41 56 41 55 41 54 53 48 83 EC 18 49 89 FE 4C 8B 27 49 8B 44 24 30 48 8B 98 D0 01 00 00 48 85 DB",
|
||||
],
|
||||
}
|
||||
|
||||
# ---------------- ssl_crypto_x509_session_verify_cert_chain ----------------
|
||||
patterns2 = {
|
||||
"arm64": [
|
||||
"FF .3 01 D1 F. .. 01 A9 .. .. .. 94 .. .. .. 52 48 00 00 39 1A 50 40 F9 DA 02 00 B4 48 03 40 F9",
|
||||
],
|
||||
"arm": [
|
||||
],
|
||||
"x86": [
|
||||
"55 41 57 41 56 41 55 41 54 53 48 83 EC 38 C6 02 50 48 8B AF .. 00 00 00 48 85 ED 74 .. 48 83 7D 00 00 74 ..",
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
# ---------------- Get r2 Version ----------------
|
||||
def get_r2_version():
|
||||
@@ -66,21 +78,35 @@ def find_offset(r2, patterns, is_iA=False):
|
||||
|
||||
if arch in patterns:
|
||||
for arch in patterns:
|
||||
for pattern in patterns[arch]:
|
||||
for pattern in patterns[arch] + patterns2[arch]:
|
||||
|
||||
isX509_verify_cert = (pattern == patterns2[arch])
|
||||
|
||||
search_result = r2.cmd(f"/x {pattern}")
|
||||
search_result = search_result.strip().split(" ")[0]
|
||||
|
||||
if search_result:
|
||||
search_fcn = r2.cmd(f"{search_result};afl.").strip().split(" ")[0]
|
||||
print(f"\n{C.X}{C.C} ssl_verify_peer_cert found at: {C.PN}{search_result}\n")
|
||||
|
||||
if isX509_verify_cert:
|
||||
print(f"\n{C.X}{C.C} session_verify_cert_chain found at: {C.PN}{search_result}\n")
|
||||
else:
|
||||
print(f"\n{C.X}{C.C} ssl_verify_peer_cert found at: {C.PN}{search_result}\n")
|
||||
|
||||
# session_verify_cert_chain fallback
|
||||
if not search_fcn and isX509_verify_cert:
|
||||
r2.cmd(f"af @{search_result}")
|
||||
search_fcn = search_result
|
||||
|
||||
if not search_fcn and arch == "x86":
|
||||
search_fcn = search_result
|
||||
r2.cmd(f"af @{search_fcn}")
|
||||
|
||||
print(f"\n{C.X}{C.C} function at: {C.PN}{search_fcn}\n")
|
||||
return search_fcn
|
||||
|
||||
return search_fcn, isX509_verify_cert
|
||||
|
||||
return None, False
|
||||
|
||||
# ---------------- Patch Flutter SSL ----------------
|
||||
def Patch_Flutter_SSL(decompile_dir, isAPKEditor):
|
||||
@@ -132,12 +158,18 @@ def Patch_Flutter_SSL(decompile_dir, isAPKEditor):
|
||||
|
||||
print(f"\n{C.X}{C.G} Searching for offset...\n")
|
||||
|
||||
offset = find_offset(r2, patterns, is_iA)
|
||||
offset, isX509_verify_cert = find_offset(r2, patterns, is_iA)
|
||||
|
||||
if offset:
|
||||
if offset and isX509_verify_cert:
|
||||
r2.cmd(f"{offset}")
|
||||
r2.cmd("wao ret1")
|
||||
print(f"\n{C.X}{C.C} session_verify_cert_chain: {C.G}Patched Successfully ✔\n")
|
||||
|
||||
elif offset:
|
||||
r2.cmd(f"{offset}")
|
||||
r2.cmd("wao ret0")
|
||||
print(f"\n{C.X}{C.C} ssl_verify_peer_cert: {C.G}Patched Successfully ! ✔\n")
|
||||
print(f"\n{C.X}{C.C} ssl_verify_peer_cert: {C.G}Patched Successfully ✔\n")
|
||||
|
||||
else:
|
||||
print(f"\n{C.ERROR} ssl_verify_peer_cert Not Found. ✘\n")
|
||||
|
||||
|
||||
@@ -125,14 +125,14 @@ class FileCheck:
|
||||
(
|
||||
"https://github.com/TechnoIndian/Tools/releases/download/Tools/APKEditor.jar",
|
||||
self.APKEditor_Path,
|
||||
"bec1dd156850df8392c9a45a735b86ae71bc913325ee029ffbb4080a8b41ca1c"
|
||||
"026906af28497577496a3e1f5054a878a7cf9c1b3889626882d87ea88d09c20f"
|
||||
),
|
||||
(
|
||||
"https://github.com/TechnoIndian/Tools/releases/download/Tools/APKTool.jar" if M.os.name == 'nt' else "https://github.com/TechnoIndian/Tools/releases/download/Tools/APKTool_Termux.jar",
|
||||
|
||||
self.APKTool_Path,
|
||||
|
||||
"b947b945b4bc455609ba768d071b64d9e63834079898dbaae15b67bf03bcd362" if M.os.name == 'nt' else "c66797f991173e7e71150f41c936c8e9389a73be76929247efcc562ef2a78da0"
|
||||
"eee4669a704a14e0623407e6701b0b91887e61e1e4049cb7a82833e14ae8b5fd" if M.os.name == 'nt' else "9a3b505e2e75566e831ef7b236c6e8733cde842b341ad1655fd1cfbf513e84e9"
|
||||
),
|
||||
(
|
||||
"https://github.com/TechnoIndian/Tools/releases/download/Tools/Uber-Apk-Signer.jar",
|
||||
@@ -195,7 +195,7 @@ class FileCheck:
|
||||
(
|
||||
"https://github.com/TechnoIndian/Tools/releases/download/Tools/APKTool.jar",
|
||||
self.APKTool_Path_E,
|
||||
"b947b945b4bc455609ba768d071b64d9e63834079898dbaae15b67bf03bcd362"
|
||||
"eee4669a704a14e0623407e6701b0b91887e61e1e4049cb7a82833e14ae8b5fd"
|
||||
)
|
||||
]
|
||||
)
|
||||
+1
-1
@@ -14,7 +14,7 @@ description = "Smali Patcher ( Bypass 𒁍 SSL & Flutter SSL, VPN, USB Debugging
|
||||
license = { text = "MIT" }
|
||||
readme = "README.md"
|
||||
|
||||
requires-python = ">=3.12"
|
||||
requires-python = ">=3.13"
|
||||
|
||||
dependencies = [
|
||||
"requests",
|
||||
|
||||
Reference in New Issue
Block a user