没有合适的资源?快使用搜索试试~ 我知道了~
内容概要:本文阐述如何在iOS平台上对应用程序进行调试和分析,目的在于指导新手分析iOS程序,内容包括软件硬件的准备、代码的解密、富豪信息的获取、用gdb调试等,最后以京东LeBook为例子进行演示。 适合人群: 具备一定的iOS越狱设备使用基础, 具备一定的逆向分析能力。 能学到什么:(1).能具备iOS程序调试和分析的基础能力。(2).熟练搭建iOS逆向分析环境。(3).掌握iOS程序动态调试和代码解密能力。(4).具备IPA重打包能力。 阅读建议: 此资源对于实际动手能力相当高, 需要具备一定的硬件条件,例如:越狱手机、Mac电脑等。即使不具备动手的软硬件条件,也能从文档中深入了解iOS程序的逆向过程, 对于开发iOS程序的人也具备一定的实用参考价值。
资源推荐
资源详情
资源评论
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
找一个 iOS 设备,进行越狱。越狱是必要的,因为只有越
狱才能运行非 AppStore 上的软件。
必要的软件准备:在 Cydia 里安装下面的软件
1.OpenSSH,OpenSSH 是 Linux 下常用的服务,装上后设备
可充当服务 SSH 服务端
2.GNU Debugger(gdb)安装 http://cydia.radare.org/源的
调试工具
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页未读,继续阅读
资源评论
二进制空间安全
- 粉丝: 629
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Vue vs Angular:2024 年选择哪个框架
- 宽带账户密码生成器(获取上网帐号密码并自动保存到D盘)
- 防毒面具检测54-YOLO(v5至v9)、COCO、Darknet、VOC数据集合集.rar
- 算法(第4版).pdf
- 360占用解除器.rar
- 面试题记录1111111111111111111111111111111111111111111
- 大规模语言模型的查询语言:编程即提示
- 深度学习课设-基于resnet网络实现鼠标手写数字识别源码+数据集+模型+运行说明(带GUI界面,直接界面上手写).zip
- 蓝桥杯算法训练平台.zip
- 防护服检测40-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功