最新消息:本站技术交流 QQ 群:28124927

[iOS Hacker] 反注入和反反注入

iOS/MacOSX/移动安全 exchen 5629浏览 0评论

一、反注入

有一天,你会发现 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 注入不行了。

二、反反注入

我们了解了反注入的原理之后,如何反反注入呢?很简单,只需要把这个节名给改名不就行了吗?使用十六进制编辑工具打开文件,然后查找字符串改掉,再上传文件替换掉之前的应用文件就可以了。

转载请注明:exchen's blog » [iOS Hacker] 反注入和反反注入

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (2)

  1. 大神能否给个联系方式,我需要解决ipa被注入时间到期闪退,怎么去除,有偿!
    laotou7年前 (2018-06-03)回复
    • exchen99@qq.com
      exchen6年前 (2018-07-21)回复