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
switch (sRestrictedReason) {case restrictedNot:break;case restrictedBySetGUid:dyld::log("main executable (%s) is setuid or setgid\n", sExecPath);break;case restrictedBySegment:dyld::log("main executable (%s) has __RESTRICT/__restrict section\n", sExecPath);break;case restrictedByEntitlements:dyld::log("main executable (%s) is code signed with entitlements\n", sExecPath);break;}
通过 Xcode 里的 Other Linker Flags 设置参数,则可以添加节。
-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null
使用 MachOView 看一下效果
这时果然发现 cycript 注入不行了。
二、反反注入
我们了解了反注入的原理之后,如何反反注入呢?很简单,只需要把这个节名给改名不就行了吗?使用十六进制编辑工具打开文件,然后查找字符串改掉,再上传文件替换掉之前的应用文件就可以了。
iOS Hacker 反注入和反反注入相关推荐
- iOS Hacker 重签名实现无需越狱注入动态库 dylib
iOS Hacker 重签名实现无需越狱注入动态库 dylib 一.获取 ipa 文件 iOS 的应用都是打包成 ipa 的文件格式,ipa 文件实际上就是 zip 格式的文件,通过 unzip 可以 ...
- iOS Hacker 动态库 dylib 注入
iOS Hacker 动态库 dylib 注入 很多情况下我们希望自己写的代码能够在其他应用中运行,如果代码简单的话,可以写 Tweak 或者使用 Cycript.但如果代码多的话,那最好是写一个动态 ...
- 防止静态反编译及动态反反调试,反外挂
发布程序前一定要做加密,不然会被破的体无完肤.推荐几款加密产品. Virbox Protector Standalone 加壳工具 效果:代码加密,防止静态反编译 加密技术:代码混淆/虚拟化/代码加密 ...
- unity3D 如何提取游戏资源 (反编译)+代码反编译【P.M.出品】
转自:https://blog.csdn.net/LANGZI7758521/article/details/52291564 首先感谢 雨松MOMO 的一篇帖子 教我们怎么提取 .ipa 中的游戏资 ...
- 如何理解:先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1的方法,即对于机器数为负数,则有[X]原=[[X]补]补。
对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1的方法,即对于机器数为负数,则有[X]原=[[X]补]补. 当然你也可以用先减1后取反的方法来求补码对应的原码. 对于求 ...
- 如何反编译,防止反编译,常见问题总结
本文对如何反编译,防止反编译,和常遇到的问题做了个总结,并略有修改. 资源来自:http://blog.csdn.net/sunboy_2050/article/details/6727581 htt ...
- 常见的反爬措施:UA反爬和Cookie反爬
本文分享自华为云社区<Python爬虫反爬,你应该从这篇博客开启,UA反爬,Cookie 特定参数反爬>,作者:梦想橡皮擦. 通过前面的爬虫程序,你或许已经注意到,对于目标站点来说,爬虫程 ...
- 爬虫笔记41之反爬系列四:字体反爬、JS反爬
一.字体反爬 1.什么是字体反爬? 开发者创作了一种字体(字体代号):网页中显示的就是这种字体代号. 字体反爬也叫CSS反爬,就是因为这个字体是隐藏在我们css文件当中的一个.ttf文件. 2.如何 ...
- 卷积、空洞卷积、反卷积与空洞反卷积的计算公式(全)
前言: 经常使用的卷积有卷积.空洞卷积.反卷积与空洞反卷积的,下面总结了他们的计算公式. 一.卷积计算公式 卷积神将网络的计算公式为: N=(W-F+2P)/S+1 其中 N:输出大小 W:输入大小 ...
- 【反编译系列】反编译so文件(IDA_Pro)
概述 安卓应用程序的开发语言是java,但是由于java层的代码很容易被反编译,而反编译c/c++程序的难度比较大,所以现在很多安卓应用程序的核心部分都使用NDK进行开发.使用NDK开发能够编译c/c ...
最新文章
- LeetCode简单题之复写零
- Gartner预测:2019年七大AI科技趋势,百万行业将颠覆!
- 【LInux】查看Linux系统版本信息
- Android开发之大位图压缩水印处理
- IIS 的负载均衡【IIS7.0以上才可以使用】---- Application Request Routing(ARR)
- 洛谷 [P1282] 多米诺骨牌
- C#的winform拼数字游戏
- java 句柄 内存_Java内存区域学习
- android 观察者更新ui,android通过观察者模式实现更新UI
- jdbc工具类2..0
- android 高德获取省市,高德地图定位获取当前地址城市街道等详细信息(全部代码)...
- STM32F407+CubeMX-使用TIM产生PWM信号
- java 阻塞队列 BQ_阻塞队列 BlockingQueue的使用(二)
- java中servlet的请求范围_java – 如何设置servlet中并发请求数的限制?
- DotSpatial入门
- 谷歌(chrome)恐龙小游戏外挂
- 如何从github上下载文件并运行
- CAN波特率常规波特率索引值对照表及高级模式
- 风扇,html css3,纯CSS3实现的3D风扇动画
- 重新定义一个全新的区块链运行架构:他们的技术有何不同?
热门文章
- 2012百度实习生招聘面试题
- Python 批量处理特定格式文件
- 20165234 [第二届构建之法论坛] 预培训文档(Java版) 学习总结
- C语言中float double等类型在内存中的存储
- 暑假学习日记2013/7/21
- Nagios+pnp4nagios+rrdtool 安装配置nagios(一)
- 使用三目运算嵌套方法 或 临时变量方法: 获取三个整数中最大值的数
- 和 的运算(值)结果 及 Boolean结果
- [转载] 陈皓:一些重要的算法
- MySQL之深入解析自增主键为何不连续