本帖最后由 dark1090 于 2015-9-7 20:37 编辑
首先说说会用到的工具: 已经越狱的IOS设备:这是必须的 OpenSSH(数据源:http://apt.saurik.com):用于远程登录ssh和文件传输scp class-dump-z: 用于简单分析出工程中的类名和函数名 IDA:强大的反编译工具 Hopper Disassembler:类似IDA 我比较喜欢,能简单转换成OC的功能 Reveal:UI层解析工具 iFunBox 、 iTools :两个都是强大的ios设备管理工具,越狱后能轻松读取应用文件等功能
----------------------------------------------------凌乱的分割线------------------------------------------ 恩,差不多就这么多了!上面的工具大部分都是收费的,不过都是有试用版的,接下来我们一个个分析:
ACA80166:~ yuchenghai$ ssh [email protected]
然后输入密码,@后面是手机的IP号,越狱后默认密码好像是123456. 传输文件的命令是
scp gdbinit [email protected]:/var/root
scp [email protected]:/var/root/123.txt ~/
3. class-dump-z 是一个强大的函数提取工具,非常好用,也是基础工具 可以发到手机里调用,也可以在电脑上调用,要解析的文件是在应用目录下x.app(里面还有用到的所有文件资源)下面的x(x是你要分析的应用名)以唱吧为例,用ifunbox找到应用进入应用目录就可以看到ktv.app了打开包文件就能找到ktv。
$ class-dump-z ktv > ktv.txt //导出所有内容到文件
$ class-dump-z -H ktv -o ktvdir/ //导出所有内容目录到文件夹(首先要创建ktvdir文件夹)
*这里会有一个问题,就是从app store下载的应用解析出来会是乱码,因为应用被加密了。解决办法
class-dump 只能解析出类名和函数名,不能看到具体的实现逻辑。但是很直观 4.IDA和Hopper Disassembler差不多,能看到每个函数的具体逻辑(但是-都是汇编)IDA很强大,能在后面标记的oc的函数名,但是我更喜欢Hopper Disassembler,因为他能简单的模拟出oc源码,但是也是非常简单的。两者按空格键都能显示出分支逻辑来。 汇编非常难看懂,我们需要的是耐心+耐心。后面可以加上动态工具联合分析能更有效
5.Reveal的功能就更强大了,能表明出UI的具体结构来,告诉你每个View的类型是什么,这通常也是我们常用的分析一个app的切入点。 下载地址:http://revealapp.com 下载完后打开reveal在菜单目录中help-show reveal library in finder打开库文件,将两个文件发到手机里
scp -r /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/Reveal.framework [email protected]:/System/Library/Frameworks
scp /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib [email protected]:/Library/MobileSubstrate/DynamicLibraries
接下来编辑libReveal.plist文件 在/Library/MobileSubstrate/DynamicLibraries/下创建文件libReveal.plist,指定app的Bundle,可以指定多个
{
Filter = {
Bundles = ("com.changba.ktv");
};
}
同学们会问了,app 的bundleID怎么查看呢,我们还是用ifunbox工具找到应用目录,在x.app文件夹中会有info.plist文件,打开就能找到。 最后重启设备-打开想分析的应用-电脑打开reveal接口,就可以点击分析了
总结一下吧,分析一个应用的逻辑是这样的:
|