IOS应用逆向工程之App砸壳:通过dumpdecrypted.dylib

参考自:

[1]iOS逆向工程之App脱壳

http://www.cnblogs.com/ludashi/p/5725743.html

[2]手把手教你制作一款iOS越狱App,伪装微信位置

http://blog.csdn.net/jackrex/article/details/51530981


硬件

    IOS越狱机 iPhone 5s     9.3.3

    MAC 

主要工具

    IOS:Filza---可清晰看到手机的文件分布

              Terminal---终端,用于运行砸壳工具

    Mac:PP助手---可将网络下载的dumpdecrypted.dylib工具拖拽到指定路径

               Terminal---终端,用于获取头文件


以微信为例,给微信砸壳。

AppStore直接下载安装的App是经过加密处理的,因此要进行解密(砸壳)处理才能在Class-dump等工具中使用。


1.下载dumpdecrypted.dylib工具[2]

可直接去我的资料库下载,也可去github上寻找免费的资源。


2.安装dumpdecrypted.dylib工具

所有App的沙盒路径在/var/mobile/Containers/Data/Application/下,但我们并不知道哪一个是我们想要的‘微信’,因此,可以通过Filza软件可以很方便的知道微信的文件夹名

IOS应用逆向工程之App砸壳:通过dumpdecrypted.dylib_第1张图片

然后,越狱机链接到电脑上,通过电脑的PP助手---工具----文件管理----文件系统(系统)中的/var/mobile/Containers/Data/Application/路径下寻找与手机微信文件夹名相同的文件夹

IOS应用逆向工程之App砸壳:通过dumpdecrypted.dylib_第2张图片

进入该文件夹里的Documents路径下,将dumpdecrypted.dylib文件拉进来。


3.IOS越狱机 知道微信 WeChat.App所在路径(此处参考的两篇文章都没有提到,我按照他们的过程提示找不到文件路径,因此想到了这种方法)

打开手机 Filza软件,搜索WeChat.app,长按该文件夹会出现如下界面,点击属性,就可以看到该文件路径,长按路径复制。我的微信app路径为:

/private/var/containers/Bundle/Application/7F9747AF-9D7D-4FCC-9EA3-B7AC0C001618

记住该路径,后面会用到。

IOS应用逆向工程之App砸壳:通过dumpdecrypted.dylib_第3张图片

4.开始砸壳

手机Terminal 进入/var/mobile/Containers/Data/Application/EC2970FE-A070-4217-B5A3-68C32CE14321/Documents路径下,不同手机的“EC2970FE-A070-4217-B5A3-68C32CE14321”是不同的,根据2过程看到的进行更改。

执行下方命令进行砸壳

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /private/var/containers/Bundle/Application/7F9747AF-9D7D-4FCC-9EA3-B7AC0C001618/WeChat.app/WeChat

其中绿色部分不同人可能不同,根据3过程看到的进行更改。

执行上述语句后控制台会显示砸壳过程,如下图:

IOS应用逆向工程之App砸壳:通过dumpdecrypted.dylib_第4张图片

砸壳结束后我们会在Documents目录下生成一个WeChat.decrypted文件,在pp助手中可以看到,如下图

IOS应用逆向工程之App砸壳:通过dumpdecrypted.dylib_第5张图片

将WeChat.decrypted文件拉到电脑上,该文件为砸壳后的文件,可进行进一步处理,如通过 class-dump获取头文件


class-dump -S -s -H WeChat.decrypted -o ./Header

有些人执行这部可能无法导出来,因为导出头文件制定的ARM架构不正确,可通过--arch配置项来指定架构,例如

class-dump --arch armv7 -S -s -H WeChat.decrypted -o ./Header

头文件会存在当前路径的Header文件夹下。

你可能感兴趣的:(IOS越狱)