iOS逆向简单笔记

最近公司业务需要,简单研究了点逆向,做个笔记。

1.砸壳

下载ipa原包
1.可以在PP助手上直接下载;
2.itunes中下载;
由于公司业务需要吗,我通常是在虚拟机上,Safari浏览器中粘贴itms://itunes.apple.com/cn/app/idxxxxxx?mt=8,然后在iTunes中下载该应用。下载后,拖入到原电脑的某个文件夹。

砸壳需要配置环境,由于时间原因,今天就不具体写了,网上很多教程。
砸壳步骤:
1.将下载后的ipa包,用iTools pro安装到越狱手机中;
2.电脑连接越狱手机,打开终端,输入:iproxy 2222 22


image.png

如上图,说明已经USB连接成功。
2.重新开一个终端页面,终端按照下面输入

cd frida-ios-dump目录
python ./dump.py app
python ./dump.py -l (打印手机上安装的app)
python ./dump.py 下载的ipa原包 -o 砸壳存放的目录/xxx.ipa(xxx.ipa为砸壳后随便起的包名字)

此时在砸壳存放的目录中会有砸壳后的ipa包,砸壳完事。

2.代码注入

代码注入,实际上就是注入Framework或者dyld动态库,使用上面砸壳后的的ipa
1.新建个工程,目录下新建APP文件夹,将上面砸壳后的ipa放进去;
2.用到的重签名脚本(我暂时还没有传github上,网上也很多),暂用‘脚本’代理称呼
在工程TARGETS-Build Phases-➕-New Run Script Phase ,然后将脚本路径拖入进去,编译工程,会发现工程目录下出现个Temp的文件夹。砸壳的包体也能跑起来。
3.创建Framework,File - New - Target - Cocoa Touch Framework,
然后在该目录下创建一个Hook类,Hook.m写入load方法,随便打印点东西,这是就是注入代码的地方。
4.在TARGETS-Build Phases-➕New Copy Script Phase,然后将Destination改为Frameworks,点击加号,将你创建的Framework加入。
在上面的脚本的最后加入:

yololib "APP_BINARY" "Frameworks/LCHookFramework.framework/LCHookFramework"

运行工程,则功能能够跑起来,刚才Hook类的load方法中的NSLog则会打印出来,说明我们代码注入成功。
剩下的就可以在load方法内注入需要的代码。

3.Class-dump获取砸壳ipa的.h文件

class-dump:可以将Moch-O文件中的OC运行时的声明信息导出,即.h文件
class-dump环境搭建:
下载链接:.http://stevenygard.com/projects/class-dump
将下载的文件夹内的class-dump放入到/user/local/bin
可以终端输入class-dump,查看是否安装成功。
使用权限:sudo chmod +x class-dump

iOS逆向简单笔记_第1张图片
说明安装成功

步骤:找到ipa的可执行文件.app路径,创建一个存放获取到.h文件的文件夹
终端输入:class-dump -H ipa的可执行文件.app路径 -o 存档文件夹路径
大功告成,将获取到的.h拖入测试工程,就可以愉快地阅读头文件和方法属性了!

原理:
主要是通过方法读取Mach-O 理解的Mach-O文件的结构所有的事情就迎刃而解了。 Mach-O 有3部分Header、Load commands、Raw segment data(各种section),其中section就有解析类表(classname)、解析方法表(methodname)。然后class-dump通过一系列计算(得到我们要的类名,及方法名。Mach-O我还需要再学习,加油!

4.Hopper分析ipa代码

这个今天就不说这个了,可以简单查查Hopper的使用方法。

今天由于时间原因,上面的笔记有点简单粗暴,有些地方没有链接和图片,我自己理解就行,啊哈哈。。。后面补上。

你可能感兴趣的:(iOS逆向简单笔记)