IOS hook 自定义c函数

求一个可以hook ios软件自定义c函数的hook框架。
目前指导的的captainhook可以hook oc层的函数,
fish hook需要函数名,适合用于系统c函数的hook。
但是对于软件抹除函数名自定义的c函数,在只有函数地址的情况下,该用什么hook框架呢

@snakeninny 大佬能帮忙看一下吗? 我看大家都说是用cydiasubstrate。我这边是会生成一个dylib,想把cydiasubstrate集成进去,在动态库的逻辑中自己可以随意调用,我这边没找到cydiasubstrate的源代码,想问一下有cydiasubstrate的下载地址吗?

https://iosre.com/search?q=C%E5%87%BD%E6%95%B0

https://www.google.com/search?client=safari&rls=en&q=cydiasubstrate+source+code&ie=UTF-8&oe=UTF-8

Subtrate网上的源码好像不是最新的吧。而且你为啥不用Cydia装的要自己打包,你不会以为能这样重签名之后在非越狱机器上用吧

昨天找了个libsubstrate.dylib,这个放到app里面,重签名以后不能在非越狱机器上使用吗? 非越狱机器不能用不是因为他们是不同的进程吗?我放到同一个进程应该就可以用了吧

谁告诉你的

建议看代码签名机制

https://www.jianshu.com/p/8236249edd35这个文章的思路

那需要怎么做可以hook非越狱手机app的自定义c函数啊?

You don’t

这个思路只能Hook OC函数,你看评论区也有写

麻烦大佬教一下,说一下大概思路就可以了,不是做黑产的 :joy:

我说了不可以

我的意思是技术上不可以不是我不告诉你

应该是libsubstrate函数要越狱之后的一些权限才能正常用吧,不是说有这个libsubstrate.dylib就行了

那要是拿个越狱手机的话,这种方法可以hook到app自定义的c函数吗?

没有任何限制的话,有办法hook app自定义的c函数吗?

可以可以可以

inline Hook,必须越狱

1 个赞

再问一下,用fishhook可以hook system/library/Frameworks路径下dylib吗?比如我想hook的method在好多dylib里面都有,这个该如何指定dylib呢?

:joy:有一种方案,叫改包

:sweat_smile:简单的改包,就是 改变一句 汇编代码,然后把二进制文件替换了,然后用从签名方案
复杂的逻辑,一直没去折腾,这个需要 空间
(1,若是存贮代码的空间在 二进制里,那么你需要在这个空间里,实现你的功能,主要是代码拷贝,以及调用额函数重定向
(2,若是存贮代码的空间在 你的dylib里,那么你需要在二进制文件中做一个 跳板,跳板的功能是 存贮你的dylib里的函数地址

ios 的签名好像是在安装和启动app的时候会校验文件,但是hook是在app启动以后修改内存中的汇编代码,此时已经过了签名的校验。为什么还不可以啊?

代码段是rx权限,没法写,除非dev 环境鸡贼mmap两次

1 个赞