【发布时间】:2019-11-23 15:09:03
【问题描述】:
我愿意检测lea 指令,然后调用PIN_SafeCopy() 来捕获内存的内容。我尝试使用IARG_MEMORY_READ_EA,但它不起作用。所以我转向IARG_EXPLICIT_MEMORY_EA,因为它写在精美的手册中,它对仪器 lea 指令很有用。
但它也不起作用。遵循以下指令:
lea eax, ptr [r11+0x1]
我用IARG_EXPLICIT_MEMORY_EA 得到的地址是0x00000088,我不能用PIN_SafeCopy() 使用它
我的问题是:
IARG_EXPLICIT_MEMORY_EA 是用来计算 lea 指令的有效地址(加载到寄存器中)还是别的什么?
我会理解没有真正需要计算有效地址,因为它是指令本身的工作......但我想确保我的理解是正确的。
额外问题:IARG_MEMORYREAD_EA|IARG_MEMORYWRITE_EA 和 IARG_MEMORYOP_EA 之间有什么区别?
【问题讨论】:
标签: x86 profiling instrumentation intel-pin