我目前正在做一些关于连接移动应用程序的技术的研究,并遇到了一些框架,如Xposed (Android)、Frida (Android )和Cycript (iOS)。
关于Xposed和Frida的文档很好地解释了他们是如何做到的。Xposed操作二进制文件,启动Zygote进程,并加载一个额外的JAR文件,以帮助挂钩这些方法。Frida文档解释说,它使用ptrace (在Linux环境中)附加到进程,分配和填充一个引导程序,该引导程序加载一个线程来启动包含frida代理的.so文件,总之,如果我理解正确的话。
我找不到关于Cycript所追求的策略的有用的文档。我知道,它是建立在Cydia基板上,做真正的挂钩。我也找不到基板到底是如何做到这一点的细节。
我进一步了解到,在iOS上,objective运行时支持运行时操作,因为它是面向运行时的。
有人知道Cycript / Cydia基板是如何工作的吗?
提前谢谢。
发布于 2016-10-21 22:43:06
它发现,显然是通过将DYLD_INSERT_LIBRARIES添加到程序的启动清单中来工作,因此每次启动应用程序时,它都会通过加载动态库来加载恶意有效负载。
但是,还有其他技术如何在Android和iOS上执行运行时挂钩/操作吗?
https://stackoverflow.com/questions/40184871
复制相似问题