ida中的伪代码:
按照常规hook c的方法进行hook,代码如下:
void* (*orig_sub_10304C8F0)(const void *a1, uint64_t a2, char *a3);
void* repl_sub_10304C8F0(const void *a1, uint64_t a2, char *a3)
{
NSLog(@"Enter repl_sub_10304C8F0");
void *result = orig_sub_10304C8F0(a1, a2, a3);
return result;
}
当执行到orig_sub_10304C8F0(a1, a2, a3)时会崩掉,刚开始以为参数类型问题,但上下文对比发现参数应该是OK的,后来看到伪代码中函数前面是__usercall修饰的,所以怀疑是跟这个有关系,查了一下资料,发现__usercall修饰的函数好像确实不能直接hook,但是又没有查看substrate这个框架hook __usercall的资料。请教各位大大这种情况改怎么去hook,望不吝赐教!!!