在非越狱手机上hook sub_xxxxx 函数

sub_xxxxx 这种函数是可以用MSHookFunction hook,我试过了。但是在非越狱手机上MSHookFunction会触发crash,原因好像是:http://bbs.iosre.com/t/theos-dylib/4327 ,那就用@Zhang写的WTSubstrate吧,很好用,系统c函数hook的非常成功。

但是sub_xxxxx 这种函数就hook不到,后来一看 dladdr(symbol,&Info);获取的Info.dli_saddr地址离我传进去的地址相差十万八千里,查了dladdr的文档才知道,dladdr是查找与指定的address最接近的符号。

因为sub_xxxxx这种函数没有符号,所以就无法用rebind_symbols来hook了。这时候我们很容易想到,那我能不能在MachO文件的符号表里添加一个符号呢,让这个符号指向sub_xxxxx的地址就行了。我在这个论坛里好像看到过有人这样说,接着开始找可以修改MachO文件工具,没找到。。。。

有人知道怎么往MachO文件里添加新的symbol吗?

只会搞微信的蠢货是这样的