Add new versions to dumb opcode offset finder
This commit is contained in:
+12
-12
@@ -66,12 +66,8 @@ def packet_handler_switch_sig(sem_ver: str) -> str:
|
|||||||
Args:
|
Args:
|
||||||
sem_ver (str): The semantic version string.
|
sem_ver (str): The semantic version string.
|
||||||
"""
|
"""
|
||||||
if semver.compare(sem_ver, "7.3.0") > 0:
|
if semver.compare(sem_ver, "7.3.0") >= 0:
|
||||||
return "E8 ? ? ? ? 41 83 C7 ? 49 8B FD"
|
return "E8 ? ? ? ? 41 83 ? ? 49 8B ? 41 81"
|
||||||
elif semver.compare(sem_ver, "7.3.0") == 0:
|
|
||||||
if semver.parse(sem_ver)["build"]:
|
|
||||||
return "E8 ? ? ? ? 41 83 C7 ? 49 8B FD"
|
|
||||||
return "E8 ? ? ? ? 41 83 C5 ? 49 8B FC"
|
|
||||||
elif semver.compare(sem_ver, "7.2.0") >= 0:
|
elif semver.compare(sem_ver, "7.2.0") >= 0:
|
||||||
return "E8 ? ? ? ? 41 83 C7 ? EB 1B"
|
return "E8 ? ? ? ? 41 83 C7 ? EB 1B"
|
||||||
elif semver.compare(sem_ver, "6.4.0") >= 0:
|
elif semver.compare(sem_ver, "6.4.0") >= 0:
|
||||||
@@ -139,13 +135,17 @@ def get_packet_handler_opcode_offset(r2, exe_file: str):
|
|||||||
r2.cmd(f"s {opcode_offset_target}")
|
r2.cmd(f"s {opcode_offset_target}")
|
||||||
r2.cmd("aei; aeim; aeip") # Initialize ESIL VM, stack, and instruction pointer
|
r2.cmd("aei; aeim; aeip") # Initialize ESIL VM, stack, and instruction pointer
|
||||||
|
|
||||||
if semver.compare(sem_ver, "7.2.0") >= 0:
|
if semver.compare(sem_ver, "7.4.0") >= 0:
|
||||||
|
offset_reg = "r15"
|
||||||
|
opcode_offset = _get_opcode_offset_post_72(r2, offset_reg)
|
||||||
|
elif semver.compare(sem_ver, "7.3.8") >= 0:
|
||||||
|
offset_reg = "r13"
|
||||||
|
opcode_offset = _get_opcode_offset_post_72(r2, offset_reg)
|
||||||
|
elif semver.compare(sem_ver, "7.3.0") == 0 and semver.parse(sem_ver)["build"] == "":
|
||||||
|
offset_reg = "r13"
|
||||||
|
opcode_offset = _get_opcode_offset_post_72(r2, offset_reg)
|
||||||
|
elif semver.compare(sem_ver, "7.2.0") >= 0:
|
||||||
offset_reg = "r15"
|
offset_reg = "r15"
|
||||||
if (
|
|
||||||
semver.compare(sem_ver, "7.3.0") == 0
|
|
||||||
and semver.parse(sem_ver)["build"] == ""
|
|
||||||
):
|
|
||||||
offset_reg = "r13"
|
|
||||||
opcode_offset = _get_opcode_offset_post_72(r2, offset_reg)
|
opcode_offset = _get_opcode_offset_post_72(r2, offset_reg)
|
||||||
else:
|
else:
|
||||||
opcode_offset = _get_opcode_offset_pre_72(r2)
|
opcode_offset = _get_opcode_offset_pre_72(r2)
|
||||||
|
|||||||
Reference in New Issue
Block a user