您的位置:首页 > 移动开发

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

2017-10-18 16:51 1111 查看
参考自:

[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软件可以很方便的知道微信的文件夹名



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



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

3.IOS越狱机 知道微信 WeChat.App所在路径(此处参考的两篇文章都没有提到,我按照他们的过程提示找不到文件路径,因此想到了这种方法)
打开手机 Filza软件,搜索WeChat.app,长按该文件夹会出现如下界面,点击属性,就可以看到该文件路径,长按路径复制。我的微信app路径为:
/private/var/containers/Bundle/Application/7F9747AF-9D7D-4FCC-9EA3-B7AC0C001618
记住该路径,后面会用到。



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过程看到的进行更改。
执行上述语句后控制台会显示砸壳过程,如下图:



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



将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文件夹下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息