首页
社区
课程
招聘
[原创]如何调试iOS内核
发表于: 2012-10-23 11:38 46771

[原创]如何调试iOS内核

2012-10-23 11:38
46771
ios内核调试不像win和linux内核调试那么简易,操作起来比较麻烦,本文介绍如何进行ios内核的调试,word版 如何调试iOS内核.rar

如何调试iOS内核
作者:zhuliang
转载请保证文章完整并注明来源

本文对如何调试iOS(iPhone OS)内核进行简单的介绍,讲述iOS内核调试的环境搭建,调试步骤等。

iOS是用XNU内核,XNU for mac的代码可以从苹果官方下载到,当然不是最新版的。XNU内核有既相互独立又相互交互的三个组件构成,这三个组件是:Mach、BSD、IOKit。

首先,是硬件与软件的准备。

硬件方面,一台越狱的设备是必需的,建议用iPhone4(注iPad2或iPhone4S由于采用的是苹果A5的cpu,它的bootrom目前还没有公开漏洞,不能用红雪设置引导参数,不能使用它来调试)。内核调试数据线,该数据线含有USB转串口的电路,可以参考文献1来自己焊接,本人制作好的调试线如下图,限于篇幅这里不对如何制作调试线展开讨论。一台电脑,可为台式机或笔记本,mac更佳。



软件方面,虚拟机VMware,mac操作系统比如Lion,XCode等。

其次,是环境的搭建。

Mac环境,由于iOS的内核调试要在mac操作系统平台下进行,所以首先要搭建mac环境,最好用真实的mac机,也可用虚拟机,本文为方便没有mac的朋友,以虚拟机为例进行讲述,用真实mac机的朋友可根据具体的情况随机应变。具体步骤如下,先在电脑上装虚拟机(如VMware)软件,然后在虚拟机里面装mac操作系统(比如Lion),装好mac系统后下载XCode并装上。如果觉得这样太麻烦的话,可直接从电驴下载装好Lion的虚拟机。

有了mac环境后,在mac操作系统里装好USB转串口芯片的驱动程序(可从http://www.ftdichip.com/Drivers/VCP.htm下载),装好驱动后就可用ls /dev/tty.usb*来看一下有没有把串口识别出来。识别出来后如下面的图所示。然后下载本文附带的SerialKDPProxy程序源代码SerialKDPProxy_m.rar(该源码是由Albert_liuwei从参考文献1提供的SerialKDPProxy修改而来,特此声明),并make一下,你懂的。将得到的SerialKDPProxy文件cp到/bin下,这样不用每次都要切换到这个目录下才能执行。



最后,搭建好了环境后就可以进行调试了,主要有三个步骤:

一是运行串口代理程序,用下面的命令行。

SerialKDPProxy /dev/tty.usbserial-A900c0xb


这里的tty.usbserial-A900c0xb要替换为在你的系统上具体的设备名,上文ls /dev/tty.usb*的结果。

二是用红雪设置引导参数。该步骤可以在物理主机Windows系统下面进行,因为命令行涉及到一个几百M的文件,复制到虚拟机里比较麻烦。可以在Win下用下面的命令行。

redsn0w.exe -i "D:\Apple\iPhone3,1_4.3.3_8J2_Restore.ipsw" -j -a "-v debug=0x09"
该命令输入完毕回车后,红雪会让你按它的提示进入dfu模式。进入dfu后稍等一下,会看到小菠萝人在手机屏幕上。看不到的话,可能是进入dfu模式出错。

接下来切换到mac环境工作,进入虚拟机环境之前要确认USB转串口的设备前点的钩已钩上。如下图:



三是用gdb调试ios内核。所用的命令行参数如下:



gdb -arch armv7 (gdb) target remote-kdp (gdb) attach 127.0.0.1


在win下面。串口从设备管理器里看出来是COM8.代理程序用这个命令行:

./SerialKDPProxy.exe /dev/com8 


启动gdb的命令是
./arm-apple-darwin-gdb.exe

其它的都是和se的ppt像一样。

至于具体怎么调试,熟悉linux下用gdb进行调试的朋友能相当熟练地调试,也可以参考本人的另一文章《iOS如何利用ARM的MMU进行地址映射》。

最后

感谢DarkMage(dm557),Windknown,Daniel,Albert_liuwei,cd-team及各位朋友!
参考文献:

1.        SysScan-Singapore-Targeting_The_IOS_Kernel.pdf(可输入google找到)
2.        http://www.cd-team.org/wp-content/uploads/2011/09/PWN你的iOS设备_New.ppt

如何调试iOS内核.rar

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (41)
雪    币: 579
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
附件无效啊。
2012-10-23 12:09
0
雪    币: 1098
活跃值: (193)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
3
哪个附件无效呢?我试了都能下载的。
2012-10-23 12:13
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
真的是高科技的东西啊
2012-10-23 13:17
0
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
只能顶礼膜拜了
2012-10-23 13:24
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
前排占位膜拜,顺便学习一下~
2012-10-23 13:50
0
雪    币: 10001
活跃值: (158)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
帮顶,,,果然厉害
2012-10-23 14:11
0
雪    币: 1025
活跃值: (225)
能力值: ( LV12,RANK:310 )
在线值:
发帖
回帖
粉丝
8
玩不起
2012-10-23 15:07
0
雪    币: 123
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
新东西,高科技,学习
2012-10-23 15:11
0
雪    币: 375
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
才在虚拟机把Mac装上的路过……
2012-10-23 16:35
0
雪    币: 89
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
本本装MAC 硬盘差点 废掉的 飞过
2012-10-23 17:50
0
雪    币: 3480
活跃值: (246)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
ios  高科技。
2012-10-23 21:35
0
雪    币: 5047
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
-___-#
搞iso那必須的軟硬件都來啊...
2012-10-23 22:23
0
雪    币: 132
活跃值: (122)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
高端 只能顶礼膜拜
2012-10-24 06:59
0
雪    币: 130
活跃值: (61)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
膜拜楼主
2012-10-24 08:44
0
雪    币: 227
活跃值: (120)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
16
感谢分享
更好奇那个线怎么做的
http://www.podgizmo.com/ 这个?
国内有么
2012-10-24 12:52
0
雪    币: 1098
活跃值: (193)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
17
这个也可以的。但是淘宝网上有更便宜的。电路是按参考文献1的pdf上的线路连上的。
2012-10-24 14:50
0
雪    币: 8026
活跃值: (2511)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
没有玛尼的路过
2012-10-24 19:52
0
雪    币: 93908
活跃值: (200199)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
19
Thanks for share.
上传的附件:
2012-10-25 01:11
0
雪    币: 28
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
必须顶礼膜拜!
2012-10-28 00:51
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
真的是膜拜啊!!
2012-11-24 15:23
0
雪    币: 225
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
围观 mark一下
2012-11-27 16:55
0
雪    币: 178
活跃值: (144)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
学习了,回头调试下touch
2013-1-5 13:45
0
雪    币: 261
活跃值: (83)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
24
越了狱了,然后再调试内核,目的只能是写软件或者是程序了,而不是研究JB。话说能不能逆向一下那个evasi0n或者是以前的几款越狱软件,看看究竟是用了什么方法,什么原理,什么BUG来越狱ios设备的。
2013-2-25 09:29
0
雪    币: 1098
活跃值: (193)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
25
好好研究ios hacker's handbook 就知道原理的。论坛上有这书。要用很多个漏洞才能完成越狱的。
2013-2-28 09:36
0
游客
登录 | 注册 方可回帖
返回
//