没有合适的资源?快使用搜索试试~ 我知道了~
首页iOS平台的应用程序调试与分析.pdf
资源详情
资源评论
资源推荐
iOS 平台的应用程序调试与分析
作者:zhuliang
转载请保证文章完整并注明来自看雪或 cd-team
本文阐述如何在 iOS 平台上对应用程序进行调试与分析,
旨在指导新手分析 iOS 程序,高手请无视。内容包括软件硬件
的准备、代码的解密、符号信息的获取、用 gdb 调试等,最
后以京东 LeBook 为例子进行演示。
1.为什么要进行调试与分析
研究 iOS 程序有很多用处,比如:
找 bug 或者漏洞,想知道某程序有没有漏洞或者 bug。
某程序能实现某功能,我想知道如何实现,如 ios6 发短信功
能,还有比较时髦的 iPhone5 通话录音功能。
对 iOS 程序进行 DIY 扩展功能,比如曾半仙前辈的作弊插件
http://bbs.pediy.com/showthread.php?t=163435,就是一个
例子。2011 年的时候我也实现了类似的功能,做了一个
iPhone 版的“欢乐斗地主”的记牌器功能。有朋友问到如何
实现的,主要就是 hook 了 recv 函数,从封包得到想要的信
息,经过处理得知 54 张牌还剩什么牌。
总的来说对 iOS 程序进行调试与分析的目的和调试与分析
Windows 平台程序的目的是一样的。
2. 调试与分析的准备工作
iOS 的封闭性极大地增大研究它的难度。为使系统更加安全,
iOS 引入了很多安全机制;如代码加密,使得分析前先要解密
代码,SandBox(沙盒),code signing(代码签名),使得
不能运行未签名的代码。这些安全机制使得研究它的难度比
Linux/Windows 要大。
尽管这样,并不能阻挡我们前进的脚步。
必要的硬件准备:一个越狱的设备,最好是 iPhone
越狱是必要的,因为只有越狱才能运行非 AppStore 上的
软件。
必要的软件准备:在 Cydia 里安装下面的软件
1.OpenSSH,OpenSSH 是 Linux 下常用的服务,装上后设备
可充当服务 SSH 服务端
2.GNU Debugger(gdb)调试工具
3.adv-cmds(ps 命令)
4. darwin cc tools (otools)
5. Link Identity Editor (ldid)
PC 端安装 SSH Secure Shell Client 或 putty 等 SSH 客户端软件,
以便能通过 SSH 建立到设备的连接。
Ida pro,该软件搞过逆向的都熟悉,静态分析功能很强大,
特别是大于或等于 6.2 的版本,能识别 Objective-C 结构,能
把 Objective-C 函数名显示如下图:
Hopper Disassembler,该软件是刚出来没多久的,我还没用
过,据说功能也很强大。不管怎么说 ida pro 是太贵了,一般
个人很少买得起,这时候 Hopper Disassembler 是另一个选择。
最后是 class-dump-z,在没有上面两个工具的情况下用它能获
得符号信息。
有了软硬件的准备,便可以开始调试了。
1.PC 端运行 SSH 客户端,连接到设备,输入用户名:root,
默认密码:alpine,第一次连接上去后建议用 passwd 命令改
掉默认密码,以防黑客通过局域网入侵。
2.在设备上运行想调试的程序,如 iRead,运行命令 ps –ax
可以看到所有运行的进程 id,gdb –p pid 这样就可以调试指
定进程(gdb –p 10110)。
另外,可以通过 otool –l | grep crypt 输出可知道已加密代码
的位置。有这些准备后,我们可以先运行下面命令测试一下。
SSH Secure Shell 3.2.9 (Build 283)
Copyright (c) 2000-2003 SSH Communications Security Corp -
http://www.ssh.com/
This copy of SSH Secure Shell is a non-commercial version.
This version does not include PKI and PKCS #11 functionality.
MMs-iPod:~ root# passwd
Changing password for root.
New password:
Retype new password:
MMs-iPod:~ root# ps -ax
PID TTY TIME CMD
……(省略部分无关记录)
12416 ?? 0:02.52 /var/mobile/Applications/4DFD17D1-
39AC-4F10-8AB8-3A4CB99E9E77/iRead.app/iRead
……(省略部分无关记录)
MMs-iPod:~ root# gdb -p 12416
/usr/bin/gdb: line 55: awk: command not found
warning: unrecognized host cpusubtype , defaulting to
host==armv7.
GNU gdb 6.3.50-20050815 (Apple version gdb-1708 +
reverse.put.as patches v0.4) (Mon Apr 16 00:53:47 UTC 2012)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public
License, and you are
welcome to change it and/or distribute copies of it under
certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show
warranty" for details.
This GDB was configured as "arm-apple-darwin".
/private/var/root/12416: No such file or directory
Attaching to process 12416.
Reading symbols for shared libraries . done
Reading symbols for shared
libraries ................................................................................................................
............................. done
Reading symbols for shared libraries + done
0x39556eb4 in mach_msg_trap ()
(gdb) quit
The program is running. Quit anyway (and detach it)? (y or n)
y
Detaching from process 12416.
MMs-iPod:~ root# otool -l
/var/mobile/Applications/4DFD17D1-39AC-4F10-8AB8-
3A4CB99E9E77/iRead.app/iRead | grep crypt
cryptoff 8192
cryptsize 8601600
cryptid 1
3.解密代码并用 IDA 和 gdb 分析
剩余22页未读,继续阅读
你个大西瓜
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- ExcelVBA中的Range和Cells用法说明.pdf
- 基于单片机的电梯控制模型设计.doc
- 主成分分析和因子分析.pptx
- 共享笔记服务系统论文.doc
- 基于数据治理体系的数据中台实践分享.pptx
- 变压器的铭牌和额定值.pptx
- 计算机网络课程设计报告--用winsock设计Ping应用程序.doc
- 高电压技术课件:第03章 液体和固体介质的电气特性.pdf
- Oracle商务智能精华介绍.pptx
- 基于单片机的输液滴速控制系统设计文档.doc
- dw考试题 5套.pdf
- 学生档案管理系统详细设计说明书.doc
- 操作系统PPT课件.pptx
- 智慧路边停车管理系统方案.pptx
- 【企业内控系列】企业内部控制之人力资源管理控制(17页).doc
- 温度传感器分类与特点.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1