Logos

Logos

FLEX库

MonkeyDev

当然使用前,你要安装最新版本的theos

配置Idid

配置dpkg-deb

Logos CydiaSubstruct OC的Hook利用的是Runtime C函数的Hook利用的是fishHook fishHook原理:DYLD动态链接器

APP加载到内存时,DYLD会去链接MachO里面依赖哪些系统的库,MachO文件里面会写清楚。调用的时候符号表也有,分为懒加载和非懒加载,非懒加载的会立刻马上帮你去链接,懒加载的会在执行代码的时候帮你动态的链接。链接过程就是将系统库函数的准确地址赋值给你MachO懒加载符号表里面,也就是指针里面。接下来调用函数的时候就可以找到系统的库函数了,而fishHook就是在重新绑定那个函数

通过fishHook去交换的时候有两种方法 1.直接rebind函数名 2.指定image (原理一样)

自己写的函数,在编译阶段已经分配好了,编译&链接。在函数内部没用函数名称的只有地址…编译成功后源码里面没有符号,所有条状过程都是地址,通过地址Hook不到。

//快速打印log
logify.pl ~/user/WeChatHeaders/BaseMsgContentViewController.h > ./hookHeader.xm
//恢复符号表
$ make restore-symbol
//可执行文件对MachO文件进行恢复
//只能是单一架构,不能是通用架构!!!
//拆分
$ lipo WeChat -thin arm64 -output WeChat_arm64
//恢复
$ ./restore-symbol WeChat_arm64 -o WeiChat