最近工作需要开始研究hook,得益于http://blog.youkuaiyun.com/dinuliang/archive/2010/04/20/5509009.aspx 这篇文章,做出了些成果。
首先,这套hook的思路来源于linker的动态绑定,就是修改.rel表项所指向的该符号在映像(位于.got段)中的地址,可以看下面的代码:
如果要hook xxx.so对malloc()的调用,只需要:
这样,这个库对malloc的调用都会转到fake_malloc()函数中
当然,也许符号是在.rel.plt表里面,这种情况结合linker.h中的定义对modifySymbol()进行修改就可以了。