我目前正在研究关于挂钩移动应用程序的技术,并遇到了一些框架,如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是如何准确地挂钩/注入应用程序的吗?
提前致谢。
答案 0 :(得分:2)
它发现显然是通过将DYLD_INSERT_LIBRARIES添加到程序的launchd清单中来工作,因此每次启动应用程序时,它都会通过加载动态库来加载恶意负载。
是否还有其他技术如何在Android和iOS上执行运行时挂钩/操作?