大家好,深入iOS应用逆向工程:破解与应用脱壳技巧相信很多的网友都不是很明白,包括也是一样,不过没有关系,接下来就来为大家分享关于深入iOS应用逆向工程:破解与应用脱壳技巧和的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
当然,前提是你有越狱的设备。
在这里,我记录一下我走出外壳所采取的步骤。
前提条件
越狱设备转储解密:用于解包
下载地址:
https://github.com/stefanesser/dumpdecrypted/archive/master.zip
下载后解压并运行make编译,会在当前目录生成dumpdecrypted.dylib文件。
粘贴_图像.png
注意:如果出现“make: Nothing to be did for "all"”,则表示目录中已存在dumpdecrypted.dylib。 class-dump:用于导出头文件
下载地址:http://stevenygard.com/
下载后,将class-dump放入/usr/bin中,这样就可以在终端中使用class-dump命令了。
步骤
上传dumpdecrypted.dylib到目标APP的Documents中
我们可以使用iFunBox 或scp。
Paste_Image.png决定APP可执行文件的路径
/var/mobile/Containers/Bundle/Application/用于存储StoreApp应用程序
/var/mobile/Containers/Data/Application/用于存储StoreApp的应用程序数据
运行目标应用程序,然后通过SSH 连接到设备并运行ps -e 打印所有进程信息。 (设备上必须先安装开放SSH,在Cydia中搜索并安装) bogon:dumpdecrypted xxxx$ ssh root@192.168.95.3
root@192.168.95.3 密码:
iPhone:~ root# ps -e```
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1616478-74ff09261ad25101.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
您还可以使用91助手查看特定应用程序的安装目录:
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1616478-e7da16668988f588.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3.执行命令解压
导航到Documents 并执行以下命令DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/8F69D649-B0AE-47EC-9A7C-27E5762FD999/xxx.app/xxx
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1616478-835bd81f959fedf0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
此时Documents下会生成一个xxx.decrypted文件,即解压后的文件。
4.使用class-dump导出头文件
将xxx.decrypted 复制到mac 并执行命令class-dump --arch armv7 -H xxx.decrypted -o outHeader
App的所有头文件都会在outHeader目录下生成。
之前没有生成头文件是因为没有添加**--arch armv7**。原因可能是APP中包含了多种架构的可执行文件,所以需要针对该架构导出头文件。
我们还可以使用MachOView来查看加密标志。
App有两种架构:armv7和arm64
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1616478-e854f61163654b03.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
脱壳前:
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1616478-2afc8eb6caf7097e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
脱壳后:
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1616478-dd8c84c98aa906af.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
arm64下的加密标志为1,表示arm64架构未解压。
![Paste_Image.png](http://upload-images.jianshu.io/upload_images/1616478-4bfa197c0701d8ee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
当我们使用该命令时,无法获取头文件。类转储--arch arm64 -H xxx.decrypted -o outHeader
因为我用的是iPhone 5c,架构是arm7s。
后来,当我拿到iPhone 6时,我可以使用--archarm64命令,但不能使用--archarmv7命令。
因此,初步断定,您需要使用与您的APP安装的设备相同的架构。
最后总结一下:
1.将dumpdecrypted.dylib文件上传到设备
2. ssh 到设备并执行DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib 命令
3.使用class-dump工具导出头文件
参考:
【如何实现远程连接(SSH)iPhone/iPad? ](http://iphone.91.com/tutorial/syjc/130710/21589193.html)
【使用dumpdecrypted对App进行脱壳】(http://blog.csdn.net/oyzhx/article/details/38339129)
【class-dump和iOSOpenDev的使用】(http://blog.csdn.net/chaoyuan899/article/details/39271197)
【使用MachOView辅助破解AppStore应用程序】(http://www.xuebuyuan.com/1682523.html)
### 目前为止Apple 移动设备的默认命令集(2014.8.22)
-------------------------------------------------- ----------------------------------
armv6 设备:iPhone、iPhone2、iPhone3G、第一代和第二代iPod Touch
armv7 设备:iPhone3GS、iPhone4、iPhone4S
iPad、iPad2、iPad3(新iPad)、iPad mini
iPod 触摸3G、iPod 触摸4
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
【深入iOS应用逆向工程:破解与应用脱壳技巧】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
我之前也试着学习过iOS逆向,这个教程看起来很有用!
有7位网友表示赞同!
现在很多APP都比较安全了,脱壳难度应该会增加不少吧?
有18位网友表示赞同!
想知道具体有哪些方法可以用来脱壳?
有11位网友表示赞同!
想看看这篇文章里有没有提到一些常用的工具。
有8位网友表示赞同!
一直对逆向工程感兴趣,有机会深入学习一下iOS方面的知识。
有11位网友表示赞同!
需要了解清晰的步骤操作,才能有效地脱壳应用程序
有6位网友表示赞同!
App 脱壳应该要小心谨慎,避免造成不必要的风险。
有15位网友表示赞同!
这个教程适合什么水平的人来学习?
有12位网友表示赞同!
脱壳应用是不是会影响到它的稳定性?
有19位网友表示赞同!
想了解一下脱壳后还能做什么呢?
有10位网友表示赞同!
学习iOS逆向工程需要掌握哪些编程语言?
有16位网友表示赞同!
App脱壳对保护用户隐私有什么影響?
有17位网友表示赞同!
这个教程的难度系数怎么样,入门简单吗?
有7位网友表示赞同!
想知道这篇文章里的例子都用什么APP进行演示的。
有8位网友表示赞同!
iOS逆向工程是一个非常有研究价值的领域,值得深入学习!
有13位网友表示赞同!
现在很多安全研究会用到逆向工程来分析恶意软件吧?
有19位网友表示赞同!
App脱壳的技术应用比较广泛吗?
有6位网友表示赞同!
这个教程有没有什么其他学习资源推荐?
有12位网友表示赞同!