0x0 前言
接上篇<浅谈ARM上的Ptrace>http://blog.csdn.net/py_panyu/article/details/45397253.
上次实现了hooksyscall调用,这次实现一把非syscall函数的hook,原理请参考上篇.直接分析代码过程
0x1 实现原理
//target.c
#include <stdio.h>
int flag = 1;
int sub()
{
printf("Sub call.\n");
return 1;
}
int main(int argc,char* argv[])
{
while(flag)
{
printf("Sub return:%d\n", sub());
sleep(3);
}
return 0;
}
我们现在要做的就是修改sub函数,不打印Sub call,直接返回2.思路就是用Ptrace Attach后,找到函数代码,修改相应的代码.现在用IDA看看编译出来的target.解析后因为thumb和arm指令无法区分,所以出现了解析问题,手动修正后如下: