您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > iOS平台的应用程序调试与分析
iOS平台的应用程序调试与分析zhuliang黄彩洪huang-caihong@qq.com2011年10月15重庆iOS平台的应用程序调试与分析为什么进行调试与分析如何进行调试与分析用IDA分析与符号获取1231.1为什么进行调试与分析•找Bug?•想知道某功能如何实现?•有没有漏洞?•对程序进行DIY扩展功能?•目的和Windows下一样iOS平台的应用程序调试与分析为什么进行调试与分析如何进行调试与分析用IDA分析与符号获取1232.1iOS的封闭性增大研究它的难度•SandBox(沙盒)•codesigning(代码签名)•研究它的难度比Linux/Windows要大2.2必要的硬件准备•一个越狱的设备,最好是iPhone越狱的必要的,因为只有越狱才能装非AppStore上的软件。•装上必要的软件2.3必要的软件准备•在Cydia里安装下面的软件1.OpenSSH,OpenSSH是Linux下常用的服务,装上后设备可充当服务SSH服务端2.GNUDebugger(gdb)调试工具3.adv-cmds(ps命令)•PC机端安装SSHSecureShellClient或putty等SSH客户端软件2.4开始调试•PC端运行SSH客户端,连接到设备用户名:root,默认密码:alpine•运行想调试的程序,如QQGame•运行命令ps–ax可以看到所有运行的进程id•gdb–p加进程id可调试指定进程•从otool–l输出可知道代码已加密iOS平台的应用程序调试与分析为什么进行调试与分析如何进行调试与分析用IDA分析与符号获取1233.1用IDApro分析•去除DRM(DigitalRightsManagement)去除DRM才能用IDA进行分析。•代码是怎样被加密的?•如何去掉DRM保护?方法1麻烦,但便于理解过程方法2是全自动化的DRM破解基本原理•通过输入信息在var/mobile/Applications下定位待破解软件所在位置•复制软件目录下所有的文件到一个临时目录•用工具otool分析程序主文件,找出cryptsize和cryptid•运行待破解程序,用gdb附加到目标进程•因为程序已经运行,所以此时是解密状态。dump当前未加密的内存•将dunp结果输出到一个bin文件,退出gdb调试程序DRM破解基本原理•将主程序文件的cryptid字段改为0,改加密状态为未加密•将dump出来的bin文件中的未加密内存的内容覆盖到原主程序文件的相应位置•对主程序签名•删除一些垃圾文件•打包IPA全自动化的破解•在Cydia里安装CrackulousCrackulous是全自动化的图形界面的破解程序。3.2获取符号信息便于调试•利用class-dump-z获取更多的符号信息class-dump-z.exe–uarmv6–A–aQQGameclass-dump-z.exe–uarmv6–A–aQQGame–H–oC:\•-uarmv6这个参数比较重要class-dump和class-dump-x不支持-uarmv6感谢•感谢会务组•感谢主、承办方•感谢陈小波TheEnd•Q&A
本文标题:iOS平台的应用程序调试与分析
链接地址:https://www.777doc.com/doc-2877485 .html