import ida_idd import ida_bytes import idc import time sendMessageAddress = 0x1120eed40 MessageAddress = 0x1120eee40 task_id = 0x20000090 idc.patch_dword(MessageAddress + 0x08, task_id) idc.patch_dword(sendMessageAddress + 0x20, task_id) idc.patch_dword(0x175ED6600, task_id) MessageAddrAddr = 0x1120eed80 idc.patch_dword(MessageAddrAddr+0x18, int(time.time())) # 改task id, 改 cgi,改第一个指针即可 payload = ( b"\x0A\x02\x00\x00" # 0x00 // task id / cmd id 175ED6600 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x08 b"\x03\x00\x00\x00\x10\x00\x00\x00" # 0x10 b"\x40\xec\x0e\x12\x01\x00\x00\x00" # 0x18 // cgi 1120eec40 b"\x20\x00\x00\x00\x00\x00\x00\x00" # 0x20 b"\x30\x00\x00\x00\x00\x00\x00\x80" # 0x28 b"\x00\x01\x01\x01\x00\xAA\xAA\xAA" # 0x30 b"\x00\x00\x00\x00\x03\x00\x00\x00" # 0x38 b"\x01\x00\x00\x00\xFF\xFF\xFF\xFF" # 0x40 b"\xFF\xFF\xFF\xFF\x00\xAA\xAA\xAA" # 0x48 b"\xFF\xFF\xFF\xFF\xAA\xAA\xAA\xAA" # 0x50 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x58 b"\x0A\x02\x00\x00\x00\x00\x00\x00" # 0x60 b"\x64\x65\x66\x61\x75\x6C\x74\x2D" # 0x68 (default-) b"\x6C\x6F\x6E\x67\x6C\x69\x6E\x6B" # 0x70 (longlink) b"\x00\xAA\xAA\xAA\xAA\xAA\xAA\x10" # 0x78 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x80 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x88 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x90 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x98 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0xA0 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0xA8 b"\x00\x00\x00\x00\xAA\xAA\xAA\xAA" # 0xB0 b"\xC0\x66\xED\x75\x01\x00\x00\x00" # 0xB8 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0xC0 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0xC8 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0xD0 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0xD8 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0xE0 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0xE8 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0xF0 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0xF8 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x100 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x108 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x110 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x118 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x120 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x128 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x130 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x138 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x140 b"\x01\x00\x00\x00\xAA\xAA\xAA\xAA" # 0x148 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x150 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x158 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x160 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x168 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x170 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x178 b"\x03\x00\x00\x00\x00\x00\x00\x00" # 0x180 b"\x00\x00\xAA\xAA\xAA\xAA\xAA\xAA" # 0x188 b"\x98\x67\xED\x75\x01\x00\x00\x00" # 0x190 b"\x00\x00\x00\x00\x00\x00\x00\x00" # 0x198 ) ida_bytes.patch_bytes(0x175ED6604, payload) my_func = ida_idd.Appcall.proto(0x10444A99C, "long long __fastcall sub_10444A99C(long long *a1, long long a2);") try: my_func(0x8E1699400, 0x175ED6600) print("Executed with manually set X0.") except Exception as e: print(f"Error: {e}")