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。

总结

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

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

喜欢的给个三连!!!

感谢大家!!!

相关推荐
EricStone14 小时前
VibeCoding工程流程学习二:iOS项目架构
ios·vibecoding
天桥吴彦祖3 天前
判断iOS如何监听手机屏幕是否锁屏
ios
敲代码的鱼3 天前
PDF 预览与签名批注写回 支持安卓 iOS 鸿蒙 UTS插件
android·前端·ios
时光足迹3 天前
uni-app 视频通话实战:康复师与患者视频问诊的 6 个致命 Bug 与解决方案
android·ios·uni-app
时光足迹4 天前
JPush UniApp UTS 插件完全参考手册:API、事件与厂商通道一网打尽
vue.js·ios·uni-app
时光足迹4 天前
极光推送全攻略(下):uni-app 代码实现与 iOS 排查实战
vue.js·ios·uni-app
时光足迹4 天前
极光推送全攻略(上):被iOS证书折磨了三天,我写了一份前端也能看懂的避坑指南
前端·ios·uni-app
编程范式5 天前
SwiftUI 中图片如何适配可用空间
ios
songgeb7 天前
启发式 UI 自动化:从线性剧本到每步读屏决策
ios·测试
壹方秘境10 天前
我用Go语言开发了一个跨平台的HTTPS抓包和调试工具
前端·后端·ios