2

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);

}
4

0 に答える 0