苹果机之静态分析 | 看一看别人的代码
来源:互联网 发布:淘宝店首页怎么装修 编辑:程序博客网 时间:2024/05/29 19:10
那别人是怎么做的?
某些时候,特定是犹豫的时候,想看一下别人都是怎么弄的。
那我可以改写这个程序吗?让它按我的意愿来运行。
某些时候,你想注入一个程序,所以想先看一下这个程序的流程与结构是怎么样的。
对于苹果上的app,联合clutch跟class-dump两个伟大的工具,可以如意如意如你意。
先用clutch破解出ipa文件,再用class-dump来分析出程序的结构。
(一)clutch
找到目标app对应的.ipa文件并不能,比如在网上下载、通过pp助手之类备份出ipa文件,等等。但并不是所有ipa文件都能用class-dump来分析出结构,只有那些已经破解了的ipa才能被分析出来。
哪些ipa是经过了破解的?
* 经过clutch后的ipa是解密了的。* 经过手机内的pp助手之类安装的ipa是解密了的,导到电脑(比如用itools)后就可以class-dump到明文。
对手机内的app进行clutch,是得到已破解ipa的有效办法。
(1)获取与使用
应该使用clutch的最新版本,特别是对于ios10.x的系统。
可以在https://github.com/KJCracks/Clutch/releases下载(下载-debug版本)。
把clutch拷贝到手机的/usr/bin目录。
./Clutch -? --查看选项./clutch -i --查看可以破解的软件./clutch -d x --根据序号来破解
(2)拷贝ipa到电脑
根据clutch破解后的路径,拷贝ipa到pc上并改名为.zip来解压,在pc上用class-dump-z或class-dump对里面的应用(最好是对xxx.app里面的xxx作class-dump,因为参数命名会比直接对xxx.app分析到的要准确)作分析。
(二)class-dump
class-dump或class-dump-z,都可以分析出程序结构,使用上相似。
(1)获取
class-dump-z:
wget http://networkpx.googlecode.com/files/class-dump-z_0.2a.tar.gz解压后,拷贝到bin目录:sudo cp mac_x86/class-dump-z /usr/local/bin
class-dump:
http://stevenygard.com/projects/class-dump 查找并下载,或者直接:下载 http://stevenygard.com/download/class-dump-3.5.tar.gz把class-dump拷贝到/usr/local/bin目录,并chmod +x class-dump。
(2)使用
class-dump-z Payload/QQ.app/QQ > ../../dumpinfo --所有信息放到一个文件class-dump -H Spotify.app -o ../headers --这种方式可以分出不同的文件class-dump -A -a Spotify.app > ../../addressinfo --带有地址信息根据函数的地址,可以用gdb或lldb来下断点调试。class-dump也可以指定指令集,比如--arch arm64。
(三)分析dump出来的信息
这一步很可能需要耐心,在茫茫码海中寻找真爱,甚至需要结合动态调试或注入输出log的办法来定位目标代码。
动态调试在后续介绍。
- 苹果机之静态分析 | 看一看别人的代码
- 苹果机之静态分析2 | 看一看别人的代码
- 苹果机之动态调试 | 定位关键代码
- 苹果机之看系统日志 | 分析信息第一步
- MyHTMLParser加分析别人的代码
- 苹果机
- 【寒江雪】静态测试之代码分析
- 读别人的代码
- 修改别人的代码
- 别人分析的Android.
- 第一次刷苹果机的过程
- 代码质量之二----善用代码静态分析工具
- java代码问题分析之静态分析工具(Klocwork Insight)
- 熬夜的朋友看一看
- 需要看一看的博客
- 看一看出国的人
- 看一看
- 看一看
- 《罗辑思维:成大事者不纠结》
- 微软亚洲研究院机器学习组的首席研究员刘铁岩谈AI
- rmi的ClassNotFound 异常
- mysql主从集群
- Linux 下JDK的安装配置
- 苹果机之静态分析 | 看一看别人的代码
- Bluetooth MESH探究 --- (5) BLE core spec之链路层基本流程
- 解决Tomcat报错:SEVERE: Error listenerStart
- #419 (Div. 2) C 思维题
- Java常用算法
- 1006. 换个格式输出整数 (15)
- <Linux>解析以及实现epoll服务器
- React-Native中二维码扫描使用
- 数据结构