我正在尝试使用Capstone反汇编 x64 可执行文件(dll)。但是它返回的操作数地址与 IDA/HIEW 的反汇编不匹配。
这是机器代码:
0x48, 0x8D, 0x0D, 0xED, 0x44, 0x01, 0x00
在 IDA/HIEW 中,反汇编是:
lea rcx,[0000148F8]
但是通过使用 Capstone(带有 PowerShell 绑定),我得到了不同的地址0x144ed
:
Get-CapstoneDisassembly -Architecture CS_ARCH_X86 -Mode CS_MODE_64 -Bytes (
0x48, 0x8D, 0x0D, 0xED, 0x44, 0x01, 0x00
) -Address 0x1800000004096 -Detailed
Size : 7
Address : 0x180001000
Mnemonic : lea
Operands : rcx, qword ptr [rip + 0x144ed]
Bytes : {72, 141, 13, 237, 68, 1, 0, 148, 204, 148, 0, 17, 0, 128, 0, 0}
RegRead :
RegWrite :
您可以使用Capstone.js并488D0DED440100
作为输入来在线验证这一点。
我也试过SharpDisasm,但结果是一样的:
lea rcx, [rip+0x144ed]
有人可以帮我了解这里发生了什么吗?