1

我目前正在研究一些关于挂钩移动应用程序的技术,并遇到了一些框架,如 Xposed (Android)、Frida (Android 和 iOS) 和 Cycript (iOS)。

关于 Xposed 和 Frida 的文档很好地解释了他们是如何做到的。Xposed 状态来操作二进制文件,启动 Zygote 进程并加载一个额外的 JAR 文件,以帮助挂钩方法。Frida 文档解释说,简而言之,如果我理解正确的话,它使用 ptrace(在 Linux 环境中)附加到进程,分配和填充加载线程以启动包含 frida 代理的 .so 文件的引导程序。

我找不到关于 Cycript 所采用的策略的有用文档。我知道它是建立在 Cydia Substrate 之上的,可以进行实际的挂钩。我也找不到关于 Substrate 究竟是如何做到这一点的详细信息。

我进一步了解,在 iOS 上,objective-c 运行时支持运行时操作,因为它是面向运行时的。

有人知道 Cycript / Cydia Substrate 究竟是如何挂钩/注入应用程序的吗?

提前致谢。

4

1 回答 1

2

它发现这显然是通过将 DYLD_INSERT_LIBRARIES 添加到程序的启动清单中来工作的,因此每次启动应用程序时,它都会通过加载动态库来加载恶意负载。

还有其他技术如何在 Android 和 iOS 上执行运行时挂钩/操作吗?

于 2016-10-21T22:43:06.757 回答