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。

总结

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

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

喜欢的给个三连!!!

感谢大家!!!

相关推荐
Digitally5 小时前
重置iPhone会删除所有内容吗? 详细回答
ios·iphone
普罗米拉稀7 小时前
Flutter 复用艺术:Mixin 与 Abstract 的架构哲学与线性化解密
flutter·ios·面试
kymjs张涛14 小时前
零一开源|前沿技术周刊 #12
ios·google·github
2501_915918411 天前
iOS 应用上架全流程实践,从开发内测到正式发布的多工具组合方案
android·ios·小程序·https·uni-app·iphone·webview
笔沫拾光1 天前
iOS 正式包签名指南
flutter·ios·ios签名
Magnetic_h2 天前
【iOS】锁的原理
笔记·学习·macos·ios·objective-c·cocoa·xcode
Digitally2 天前
将 iPhone 联系人转移到 Infinix 的完整指南
ios·cocoa·iphone
imLix2 天前
RunLoop 实现原理
前端·ios
归辞...2 天前
「iOS」————设计架构
ios·架构
i紸定i3 天前
解决html-to-image在 ios 上dom里面的图片不显示出来
前端·ios·vue·html·html-to-image