Flutter Pattern Update or Version Upgrade

This commit is contained in:
TechnoIndian
2026-05-08 15:11:32 +05:30
parent 710e1fd21c
commit 058001aec1
4 changed files with 46 additions and 14 deletions
+41 -9
View File
@@ -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")
+3 -3
View File
@@ -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
View File
@@ -1 +1 @@
1.3
1.4
+1 -1
View File
@@ -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",