首页
论坛
课程
招聘
雪    币: 1066
活跃值: 活跃值 (18)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝

[原创]如何调试iOS内核

2012-10-23 11:38 40583

[原创]如何调试iOS内核

2012-10-23 11:38
40583
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


2020,给你一个诚意满满的夏令营!

上传的附件:
最新回复 (41)
雪    币: 579
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ydfivy 活跃值 2012-10-23 12:09
2
0
附件无效啊。
雪    币: 1066
活跃值: 活跃值 (18)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
zhuliang 活跃值 5 2012-10-23 12:13
3
0
哪个附件无效呢?我试了都能下载的。
雪    币: 34
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
蓝色妖女 活跃值 2012-10-23 13:17
4
0
真的是高科技的东西啊
雪    币: 244
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
BoyXiao 活跃值 2012-10-23 13:24
5
0
只能顶礼膜拜了
雪    币: 19
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Artmiss 活跃值 2012-10-23 13:50
6
0
前排占位膜拜,顺便学习一下~
雪    币: 415
活跃值: 活跃值 (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
guobing 活跃值 2012-10-23 14:11
7
0
帮顶,,,果然厉害
雪    币: 849
活跃值: 活跃值 (10)
能力值: ( LV12,RANK:310 )
在线值:
发帖
回帖
粉丝
yuansunxue 活跃值 6 2012-10-23 15:07
8
0
玩不起
雪    币: 123
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kmsmxpro 活跃值 2012-10-23 15:11
9
0
新东西,高科技,学习
雪    币: 347
活跃值: 活跃值 (11)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
xPLK 活跃值 3 2012-10-23 16:35
10
0
才在虚拟机把Mac装上的路过……
雪    币: 91
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
swlilike 活跃值 2012-10-23 17:50
11
0
本本装MAC 硬盘差点 废掉的 飞过
雪    币: 3571
活跃值: 活跃值 (42)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
hoyer 活跃值 2012-10-23 21:35
12
0
ios  高科技。
雪    币: 5047
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
GeminiZane 活跃值 2012-10-23 22:23
13
0
-___-#
搞iso那必須的軟硬件都來啊...
雪    币: 220
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
messen 活跃值 2012-10-24 06:59
14
0
高端 只能顶礼膜拜
雪    币: 124
活跃值: 活跃值 (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ouyangtian 活跃值 2012-10-24 08:44
15
0
膜拜楼主
雪    币: 199
活跃值: 活跃值 (10)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
hellok 活跃值 3 2012-10-24 12:52
16
0
感谢分享
更好奇那个线怎么做的
http://www.podgizmo.com/ 这个?
国内有么
雪    币: 1066
活跃值: 活跃值 (18)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
zhuliang 活跃值 5 2012-10-24 14:50
17
0
这个也可以的。但是淘宝网上有更便宜的。电路是按参考文献1的pdf上的线路连上的。
雪    币: 2576
活跃值: 活跃值 (77)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
option 活跃值 2012-10-24 19:52
18
0
没有玛尼的路过
雪    币: 15013
活跃值: 活跃值 (1504)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
linhanshi 活跃值 2012-10-25 01:11
19
0
Thanks for share.
上传的附件:
雪    币: 23
活跃值: 活跃值 (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
雅蠛蝶 活跃值 2012-10-28 00:51
20
0
必须顶礼膜拜!
雪    币: 6
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
menfon 活跃值 2012-11-24 15:23
21
0
真的是膜拜啊!!
雪    币: 225
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
polelf 活跃值 2012-11-27 16:55
22
0
围观 mark一下
雪    币: 179
活跃值: 活跃值 (14)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
pmma 活跃值 1 2013-1-5 13:45
23
0
学习了,回头调试下touch
雪    币: 254
活跃值: 活跃值 (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
hacker一疒亻 活跃值 2013-2-25 09:29
24
0
越了狱了,然后再调试内核,目的只能是写软件或者是程序了,而不是研究JB。话说能不能逆向一下那个evasi0n或者是以前的几款越狱软件,看看究竟是用了什么方法,什么原理,什么BUG来越狱ios设备的。
雪    币: 1066
活跃值: 活跃值 (18)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
zhuliang 活跃值 5 2013-2-28 09:36
25
0
好好研究ios hacker's handbook 就知道原理的。论坛上有这书。要用很多个漏洞才能完成越狱的。
雪    币: 254
活跃值: 活跃值 (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
hacker一疒亻 活跃值 2013-2-28 15:06
26
0
[QUOTE=zhuliang;1146595]好好研究ios hacker's handbook 就知道原理的QUOTE]

这本书的原版我拥有的时间远远先于这个版块成立的时间,不过这本书的网间翻译只进行到了第二章就停止了,那个翻译小组群也没有动静了。

有好些的英文术语看不太懂,话说比较费力……  

不过我之前回复你的原因不在于是否要了解越狱的原理,因为就算看懂了那本书也不能实现越狱,这种事只有少数几位才能做出来,毕竟需要的工具、知识量、技巧以及IOS设备和系统的频繁升级的干扰等,还是变数太多了……   我的意思是你发布这篇调试内核的文章的实际作用是什么?  

因为你的文章讲述得一切是在越狱之后才能进行的,那么这个时候已经不是用来指导或者是窥看如何越狱的了(后者可能不全面),而只能是用来开发软件的,那么问题是哪一类软件的开发会需要到内核方面的内容呢?  想学习一下……

再有一点也确实需要哪位大牛可以把前几代越狱软件逆向一下,以便一看其“尊容”

还有一点就是我也想学习一下你用得那个线是具体是如何制作得?   包括配件的购买渠道最好也能分享一下,这一切对于一个不曾搞过电路的人来说很重要。
雪    币: 52
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
abeyy 活跃值 2013-11-7 12:03
27
0
那些搞越狱的, 一开始是没有越狱设备的啊, 是如何调试的呢
雪    币: 47
活跃值: 活跃值 (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
vangoals 活跃值 2013-12-23 11:00
28
0
这个问题问得好啊,我也想知道
雪    币: 223
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sybl 活跃值 2013-12-28 21:23
29
0
可以调试IO7固件不呢?
雪    币: 1066
活跃值: 活跃值 (18)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
zhuliang 活跃值 5 2013-12-29 10:35
30
0
可以是可以的。但是有好几个地方要修改。初学者往往很难做到。
内核要patch,而patch内核的.sh文件要修改。这要求对iOS理解得比较深入才能达到。
雪    币: 353
活跃值: 活跃值 (27)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
jerryxjtu 活跃值 6 2013-12-30 16:49
31
0
从这个列表上看,要调试iOS7,只能上IPHONE4...
http://theiphonewiki.com/wiki/VFDecrypt_Keys
ITOUCH4G的good old day啊
雪    币: 356
活跃值: 活跃值 (40)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
proteas 活跃值 2 2014-5-13 16:20
32
0
内核上需要低于iOS5,系统上在OS X Mavericks 下已经不适用了。
雪    币: 9
活跃值: 活跃值 (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
kgxxx 活跃值 2014-5-15 20:21
33
0
超神了~
雪    币: 413
活跃值: 活跃值 (21)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
大头和尚 活跃值 2014-7-11 18:58
34
0
软硬通吃,高高手。
雪    币: 1313
活跃值: 活跃值 (21)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
CRoot 活跃值 2014-7-11 19:44
35
0
不明觉厉 走过 还得继续学习才能搞掂啊
雪    币: 195
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
SoBeIt 活跃值 2014-8-23 01:29
36
0
用红雪修改iPhone 4的bootrom启动参数, 只要有ipsw固件文件, ios 7也没问题吧, 只要越过狱的.
雪    币: 1066
活跃值: 活跃值 (18)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
zhuliang 活跃值 5 2014-8-24 19:32
37
0
这个你要试过才知道。
据我了解,针对iOS7是不行的。
红雪引导的过程是要patch内核的,如果它没有iOS7内核的解密key,或者它不知道patch哪里,没法引导iOS7的。

我一般都是用自己的程序引导的,不用红雪。
雪    币: 304
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zxc 活跃值 2015-3-6 18:05
38
0
你好,使用这个代理在mac还是会产生大量kdp_transaction (kdp_attach): transaction timed out错误。
gdb-1821 使用的是xcode最后一个支持gdb的版本。
不知道为什么显示汇编是arm. 已经设置了-arch armv7.  不能自动切换到thumb 模式,造成感觉设置断点无效。
首次停下来后conntinue就跑飞了。 不知道是gdb问题还是代理问题,还是都有问题。请问你是如何解决的。
雪    币: 0
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
海洋hiya 活跃值 2016-7-28 15:25
39
0
版主, 想咨询你一下, 有办法在应用程序内打开高通diag端口吗?(设备已越狱)
雪    币: 196
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xudongsaar 活跃值 2017-3-19 14:15
40
0
ios调试线网上有没有购买推荐的地方?
雪    币: 2
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
方振箱包 活跃值 2017-3-24 09:36
41
0
路过
雪    币: 100
活跃值: 活跃值 (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
schroep 活跃值 2017-10-9 22:28
42
0
老大,这电阻需要多少瓦啊?
游客
登录 | 注册 方可回帖
返回