使用PIN二进制检测工具更改寄存器的值

时间:2016-06-29 21:17:46

标签: intel-pin

我正在尝试使用PIN_SetContextReg对寄存器的值进行一些更改。首先,我使用PIN_GetContextReg作为old_val获取REG_INST_PTR的值,然后我想对此值进行一些更改并将其设置为与new_val相同的寄存器。我可以使用哪些可能的随机值。此外,除了REG_INST_PTR之外的其他寄存器,我可以更改它将对正在进行的程序产生重大影响。

这是方法

static  UINT32 old_val;
static  UINT32 new_val;
VOID changeRegisterValue(CONTEXT *ctxt ) {  
    old_val = PIN_GetContextReg(ctxt,   REG_INST_PTR);
    new_val =  ??
    PIN_SetContextReg(ctxt, REG_INST_PTR, new_val);
}

此方法称为

VOID Instruction(INS ins, VOID *v)
{          
    INS_InsertCall(ins, IPOINT_BEFORE,      (AFUNPTR)changeRegisterValue,IARG_CONTEXT, IARG_END);

}

0 个答案:

没有答案