iOS平台的应用程序调试与分析

时间:2026-01-22

iOS平台的应用程序调试与分析

zhuliang 黄彩洪 huang-caihong@http://www.77cn.com.cn 2011年10月15 重庆

iOS平台的应用程序调试与分析1 2 3为什么进行调试与分析

如何进行调试与分析

用IDA分析与符号获取

1.1为什么进行调试与分析

找Bug? 想知道某功能如何实现? 有没有漏洞? 对程序进行DIY扩展功能? 目的和Windows下一样

iOS平台的应用程序调试与分析1 2 3为什么进行调试与分析

如何进行调试与分析

用IDA分析与符号获取

2.1 iOS的封闭性增大研究它的难度 SandBox(沙盒) code signing(代码签名) 研究它的难度比Linux/Windows要大

2.2 必要的硬件准备 一个越狱的设备,最好是iPhone 越狱的必要的,因为只有越狱才能装非 AppStore上的软件。 装上必要的软件

2.3 必要的软件准备 在Cydia里安装下面的软件 1.OpenSSH,OpenSSH是Linux下常用的服 务,装上后设备可充当服务SSH服务端 2.GNU Debugger(gdb)调试工具 3.adv-cmds(ps命令) PC机端安装SSH Secure Shell Client或putty等 SSH客户端软件

2.4 开始调试 PC端运行SSH客户端,连接到设备 用户名:root,默认密码:alpine 运行想调试的程序,如QQGame 运行命令ps –ax可以看到所有运行的进程id gdb –p 加进程id可调试指定进程 从otool –l 输出可知道代码已加密

iOS平台的应用程序调试与分析1 2 3为什么进行调试与分析

如何进行调试与分析

用IDA分析与符号获取

3.1 用IDA pro分析 去除DRM(Digital Rights Management) 去除DRM才能用IDA进行分析。 代码是怎样被加密的? 如何去掉DRM保护? 方法1麻烦,但便于理解过程 方法2是全自动化的

DRM破解基本原理 通过输入信息在var/mobile/Applications下定位 待破解软件所在位置 复制软件目录下所有的文件到一个临时目录 用工具otool分析程序主文件,找出cryptsize和 cryptid 运行待破解程序,用gdb附加到目标进程

因为程序已经运行,所以此时是解密状态。 dump当前未加密的内存 将dunp结果输出到一个bin文件,退出gdb调试 程序

DRM破解基本原理 将主程序文件的cryptid字段改为0,改加密 状态为未加密 将dump出来的bin文件中的未加密内存的内 容覆盖到原主程序文件的相应位置 对主程序签名 删除一些垃圾文件 打包IPA

全自动化的破解 在Cydia里安装Crackulous Crackulous是全自动化的图形界面的破解 程序。

3.2 获取符号信息便于调试 利用class-dump-z获取更多的符号信息 class-dump-z.exe –u armv6 –A –a QQGame class-dump-z.exe –u armv6 –A –a QQGame –H –o C:\ -u armv6这个参数比较重要class-dump和class-dump-x 不支持-u armv6

感谢 感谢会务组 感谢主

、承办方 感谢陈小波

The End Q&A

iOS平台的应用程序调试与分析.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219