苹果机之静态分析2 | 看一看别人的代码

来源:互联网 发布:ug数控车床编程讲解 编辑:程序博客网 时间:2024/06/05 04:43

之前有介绍过使用clutch跟class-dump来静态分析目标app(http://www.jianshu.com/p/808a5f6923e3),本文同样介绍静态分析,主要工具为dumpdecrypted与class-dump,并以“微信”为例进行说明。

图片来自网络

(一)问题

使用最新的clutch2.0.4-debug,未能破解微信6.5.12版本。

而且,微信6.5版本,运行后,ps aux找不到进程信息。

在clutch无效的情况下,如何破解微信6.5版本?

(二)解决办法

办法1,使用dumpdecrypted来破解:

git clone https://github.com/stefanesser/dumpdecryptedcd dumpdecryptedmake --生成dumpdecrypted.dylib

在手机cydia上搜索Filza,并安装。

利用Filza找出微信的安装路径。(不能使用cycript,因为进程id都找不到。)

微信安装目录:/var/mobile/Containers/Bundle/Application/4777DEE2-6805-45F7-B3D0-CB4277DD5389/WeChat.app

拷贝dumpdecrypted.dylib到手机:

scp dumpdecrypted.dylib root@xx.xx.xx.xx:/

启动微信,ssh到手机,cd到dumpdecrypted.dylib所在的目录,执行:

DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/4777DEE2-6805-45F7-B3D0-CB4277DD5389/WeChat.app/WeChat

在当前目录生成WeChat.decrypted文件,即为破解后的文件

办法2:使用手机上的pp助手、爱思之类的工具,安装一个微信(已经砸壳)。

(三)提取出头文件

scp WeChat.decrypted到pc,先观察一下这个文件:

file WeChat.decrypted  --可以看到包括两个指令集:armv7跟arm64otool -l WeChat.decrypted | grep cryptWeChat.decrypted (architecture armv7):     cryptoff 16384    cryptsize 55377920      cryptid 1WeChat.decrypted (architecture arm64):     cryptoff 16384    cryptsize 59883520      cryptid 0可以看到,armv7是加密了的,而arm64是解密了的,所以在使用class-dump与hopper时,都应该选择arm64。

提取头文件:

class-dump -A -a --arch arm64 WeChat.decrypted > dumpinfo

dumpinfo里面为所有头文件信息,比如:MicroMessengerAppDelegate为appdelegate类。


基于静态分析到的内容,可以做出更多分析,此为后话。而且,静态分析,还应该包括hopper或ida等工具的使用。

欢迎关注我们