IOS逆向分析—终极详细(三)

IOS逆向分析---终极详细(三)


前言

本文是个人完成对IOS上APP分析的整个过程,当然对于不同的机型还会遇到不同的情况,谨以此文供大家参考,如有错误,望大佬们多多指教


一、逆向分析是什么?

逆向工程(又称反向工程),是一种技术过程,即对一项目标产品进行逆向分析及研究,从而演绎并得出该产品的处理流程、组织结构、功能性能规格等设计要素,以制作出功能相近,但又不完全一样的产品。逆向工程源于商业及军事领域中的硬件分析。 上面是正儿八经的介绍。我做这个就是为了工作需要,要分析其它的视频类APP,所以就开始了苦逼的折腾iPhone的过程。

二、IDA分析

1.下载并安装IDA

Mac版本地址为:https://github.com/swfangzhang/IDA-pro-7-for-Catalina-OSX-15,这是破解版的,亲测有效。

2.安装插件

IDA要安装一个很有用的插件keypatch,首先安装它的底层依赖keystone-engine,命令如下所示:

bash 复制代码
sudo pip install keystone-engine

检查一下其是否安装到了IDA中,首先到IDA中的python控制台中输入print sys.path,看输出结果中是否有keystone。如果没有的话,那就将安装的keystone拷贝到IDA运行程序中,命令如下所示:

bash 复制代码
sudo cp -r /Library/Python/2.7/site-packages/keystone /Applications/IDA\ Pro\ <version>/ida64.app/Contents/MacOS/python

其中/Library/Python/2.7/site-packages/keystone为keystone的安装地址,不一定是这个,可以在安装的时候记一下,或者使用brew查找一下keystone的安装地址,拷贝到IDA安装程序的Contents中的相应地址中即可。然后安装keypatch,git地址为:https://github.com/keystone-engine/keypatch。

将keypatch.py 复制到/Applications/IDA\ Pro\ 7.0/ida.app/Contents/MacOS/plugins中,然后重启IDA,在Edit中就能找到keypatch。该工具的主要作用就是修改我们要分析的二进制文件。

3.加载二进制

重点来了!!!

将某.ipa(接下来某都用aweme来替换)中的aweme应用程序中的aweme二进制文件拖进IDA,等待它加载就可以了(这时就忙别的去吧,没有个两三个小时完不成的)

4.代码分析

加载完成后,会直接定位到start函数中,会与下面的代码类似的情况:

__text:000000010438E3FC MOV X0, #0x1A

__text:000000010438E400 MOV X1, #0x1F

__text:000000010438E404 MOV X2, #0

__text:000000010438E408 MOV X3, #0

__text:000000010438E40C MOV X16, #0

__text:000000010438E410 SVC 0x80

当我们看到SVC 0x80的时候,就知道这个app在这里利用SVC 0x80做了反调试的操作,原理请自行百度。这里的破解就是使用我们之前安装的keypatch,ctrl+alt+k对X1寄存器的数值进行修改,原始数值为0x1F,修改为0即可。修改完毕后,切记如下操作,并保存到正在分析的二进制文件中:

5.其它

另外,利用IDA可以进行一些静态分析的操作。例如加载完成后,按F5就可以反汇编,或者点击View-》open subviews-》Generate pseudocode。

总结

下一章讲解动态分析过程,敬请期待!!!

好好学习,天天向上!!!

喜欢的给个三连!!!

感谢大家!!!

相关推荐
茶底世界之下16 小时前
山间站台不必转暖:用 Awaking 留住冷光与红箱
ios·app·产品
无心水1 天前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师
songgeb1 天前
YYImage Bug:一行之差,正常 JPEG 如何在 iOS 被读成条纹
ios·swift
躺柒1 天前
读数据安全架构设计与实践20安全政策文件体系(上)
大数据·人工智能·安全·数据安全·安全架构·安全体系
終不似少年遊*2 天前
【安全业务Agent】从场景到编排
python·react.js·ai·langchain·agent·安全架构·工作流
茶底世界之下2 天前
阴天花摊不必变暖:用 Awaking 留住花色与湿街
ios·app·产品
Fatbobman(东坡肘子)2 天前
快速消失的硬盘容量 -- 肘子的 Swift 周报 #160
开发语言·人工智能·redis·ios·swiftui·iphone·swift
茶底世界之下3 天前
斜光下的旧自行车:用 Awaking 留一版复古胶片色
ios·app·产品
2501_916008893 天前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview