一、反注入
有一天,你会发现 cycript 不好使,提示这个
iPhone:~ root# cycript -p app
dlopen(/usr/bin/Cycript.lib/libcycript.dylib, 5): Library not loaded: /System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore
Referenced from: /usr/bin/Cycript.lib/libcycript.dylib
Reason: image not found
* _assert(status == 0):../Inject.cpp(143):InjectLibrary
然后你还发现 Tweak 生成的 dylib 注入不了目标进程。这时可以判断,这个应用是做了反注入的保护了。通过搜索到国外的一篇文章
https://pewpewthespells.com/blog/blocking_code_injection_on_ios_and_os_x.html
了解到在可执行文件添加一个名为 __RESTRICT,__restrict 的节,可以反注入,实际的原理是在 dyld 源码里 pruneEnvironmentVariables 函数里有判断如果有这个节就会无视 DYLD_INSERT_LIBRARIES
switch (sRestrictedReason) {

本文介绍了iOS应用中如何进行反注入保护,通过在可执行文件添加特定节来阻止第三方工具如Cycript的注入。当发现这种保护后,进一步讨论了如何实施反反注入,即通过修改节名来绕过反注入机制。这是一种常见的移动安全策略,用于增强iOS应用的安全性。
最低0.47元/天 解锁文章
5439

被折叠的 条评论
为什么被折叠?



