iOS Hacker 反注入和反反注入
一、反注入
有一天,你會發現 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
通過 Xcode 里的 Other Linker Flags 設置參數,則可以添加節。
-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null
使用 MachOView 看一下效果
這時果然發現 cycript 注入不行了。
二、反反注入
我們了解了反注入的原理之后,如何反反注入呢?很簡單,只需要把這個節名給改名不就行了嗎?使用十六進制編輯工具打開文件,然后查找字符串改掉,再上傳文件替換掉之前的應用文件就可以了。
總結
以上是生活随笔為你收集整理的iOS Hacker 反注入和反反注入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS 应用的生命周期
- 下一篇: iOS Hacker 重签名实现无需越狱