Как передать инструкцию на обратный звонок в intel-pintool?

Я новичок в pintool, я знаю, как передать адрес инструкции для обратного вызова, используя:
INS_InsertPredicatedCall(
ins, IPOINT_BEFORE, (AFUNPTR)MyFunction,
IARG_ADDRINT, INS_Address(ins),
IARG_END);
// My call back function is:
MyFunction(UINT64 insAddress) { .... }

Есть ли способ передать инструкцию на обратный звонок, или можно извлечь ее из своего адреса.
лайк:

MyFunction( UINT64 insAddress, INS ins ) {.... }
MyFunction(UINT64 insAddress) {
INS ins = someFunction(insAddress);// some function that return instruction of a specified address
}

0

Решение

Я нашел, что кто-то сказал, что:
«Речь идет о процедуре анализа, а не о контрольно-измерительной аппаратуре.
AFAIK, вы не можете иметь дело с типами INS, BBL или TRACE в подпрограмме анализа, и, как вы видели, нет способа передать их в подпрограмму анализа … »

0

Другие решения

Решение, которое я использовал для этого, состоит в том, чтобы передать INS в пользовательский объект и сохранить эти объекты на карте std::map<ADDRINT, Instruction>, Затем, когда мне нужно получить доступ к инструкциям, они сопоставляются по их адресу. Кажется, работает нормально.

0

По вопросам рекламы [email protected]