Пример #1
0
PyObject* Python_RTN_Sym(PyObject* self, PyObject* args) {
    PyObject* x;
    PyArg_ParseTuple(args, "L", &x);
    RTN x_object = *(RTN*) x;
    SYM* sym_return = (SYM*) malloc(sizeof(SYM));
    *sym_return = RTN_Sym(x_object);
    return Py_BuildValue("L", sym_return);
}
Пример #2
0
VOID Routine(RTN rtn, void * v)
{
    RTN_Open(rtn);
    if(strcmp(RTN_Name(rtn).c_str(),"memcpy")==0)
    {
        if(SYM_IFunc(RTN_Sym(rtn)))
        {
            cout << "Found IFUNC memcpy"<< endl;
            RTN_InsertCall(rtn, IPOINT_BEFORE, AFUNPTR(IfuncMemcpy), IARG_END);
        }
        else
        {
            cout << "Found non IFUNC memcpy"<< endl;
            RTN_InsertCall(rtn, IPOINT_BEFORE, AFUNPTR(Memcpy), IARG_FUNCARG_ENTRYPOINT_VALUE, 0, 
                           IARG_FUNCARG_ENTRYPOINT_VALUE, 1, IARG_FUNCARG_ENTRYPOINT_VALUE, 2 , IARG_END);
        }
    }
    RTN_Close(rtn);
}
Пример #3
0
int rtn_sym (lua_State *L) {
  RTN* v1 = check_rtn(L,1);
  SYM_to_lua(L, RTN_Sym(*v1));
  return 1;
}