oaoidc.com
返回列表 发帖

内核的破解

最近本人正在利用业余时间进行着这项工作,我也知道在国外有很多的爱好者已经有了很为深入的研究,但是相关的公开介绍相当稀少。我也是刚开始,或许在认识与研究上出现了不少偏差,还请大家多多指正!先行谢过。

目前OS X的内核破解方法基本有两种,一种是比较直接的采用反汇编的方法对内核进行修改;另一种是根据苹果公司公布的XNU Kernel源码进行相关的修改工作。

当然,两种方法都会有一定局限性。

第一种方法, 极其类似于硬件玩家们的超频工作,采用对BIOS参数的调整组合,一步一步的测试而最终达成目的。是一个修改,测试,再修改,再测试的过程。它的局限在于,对于内核组成的全局感不强,另外,需要对x86的汇编语言十分熟悉;

第二种方法,由于苹果公司在发布一个新的版本内核后,就会在网上公布上一个版本的内核源码。不过,请注意,XNU的源码并不是全部公开的。还有相当数量的内容是以二进制码的形式提供的。这样就为源码的重编译增加了难度,使得很多东西还是得采用反编译的方法来修改。

接着说。
我目前所做的采用第一种方法。
首先,要找到一个原版的内核,这个容易,上苹果网站上下升级包,然后用Pacifist把原版的内核Mach_kernel取出。注意,这时的内核是一个Universal Binary文件,包括了两套代码PPC的和i386的。

苹果公司为大家提供了一个工具-Lipo来做一些基本的Universal Bin文件处理。具体介绍请参阅:
http://developer.apple.com/docum ... es/man1/lipo.1.html
我先用Lipo对原始的内核文件进行了i386平台代码的剥离。生成了一个只有一半左右的新文件。然后,上网去找相应的其它爱好者已经做好的破解文件。这里要注意一下,目前有部分破解内核是基于XNU源码进行修改后重新编译了的,文件大小上会有不同。

[ 本帖最后由 Envying 于 2008-4-25 09:04 编辑 ]
黑苹果大叔的博客
谢绝回答任何PM
MB: GA-P35-DS3R CPU: Intel PD E6300 2.8GHz RAM: 4GB DDRII-800 Video: GF9400GT 1GB
HD: SG320GB (MBR winXP); SG500GB (MBR 10.5.7); SG500GB (10.6)
Onboard Audio & LAN
Sleep in 10.5.7 but no sleep in 10.6

下一步你需要两样工具程序,一个是文件比较软件,我自己用的是UltraEdit里的UltraCompare,当然这一类的软件很多。另一个是反编译软件(要能反编译Mach-O文件的),我目前知道的有两种,HTE和IDA Pro,我现在用HTE。

[ 本帖最后由 Envying 于 2008-4-25 09:05 编辑 ]
附件: 您需要登录才可以下载或查看附件。没有帐号?入住远景
黑苹果大叔的博客
谢绝回答任何PM
MB: GA-P35-DS3R CPU: Intel PD E6300 2.8GHz RAM: 4GB DDRII-800 Video: GF9400GT 1GB
HD: SG320GB (MBR winXP); SG500GB (MBR 10.5.7); SG500GB (10.6)
Onboard Audio & LAN
Sleep in 10.5.7 but no sleep in 10.6

TOP

从文件的比较来看,基本的出发点是将一些不利于非苹果设备的初始化认证,比较,出错调用进行代码屏蔽。与之相关主要是与CPUID有关的如rdmsr, wrmsr, mfence, clflush等一类操作, 这部分主要是与AMD CPU或Nforce Chipset相关的。还有就是HPET的支持部分,有FSB的确认部分。我主要比较了目前的ToH,Nforce的破解内核。

[ 本帖最后由 Envying 于 2008-4-25 11:39 编辑 ]
黑苹果大叔的博客
谢绝回答任何PM
MB: GA-P35-DS3R CPU: Intel PD E6300 2.8GHz RAM: 4GB DDRII-800 Video: GF9400GT 1GB
HD: SG320GB (MBR winXP); SG500GB (MBR 10.5.7); SG500GB (10.6)
Onboard Audio & LAN
Sleep in 10.5.7 but no sleep in 10.6

TOP

嘿嘿,真不知道苹果公司总裁SPJ的所谓Leopard的从上到下的64位这一说法应该如何理解,很明显Mach_kernel本身是基于i386指令集的。
看到去年在chaos集会上的一篇文章。有几点说法提供给大家参考:
64 bit
• The Mac OS X kernel is not 64 bit.
• It supports 64 bit user land applications.
• The kernel code is 32 bit with tiny 64 bit parts for user support.
黑苹果大叔的博客
谢绝回答任何PM
MB: GA-P35-DS3R CPU: Intel PD E6300 2.8GHz RAM: 4GB DDRII-800 Video: GF9400GT 1GB
HD: SG320GB (MBR winXP); SG500GB (MBR 10.5.7); SG500GB (10.6)
Onboard Audio & LAN
Sleep in 10.5.7 but no sleep in 10.6

TOP

有兴趣的同学可以看看这篇文章,不过是英语版的。
附件: 您需要登录才可以下载或查看附件。没有帐号?入住远景
黑苹果大叔的博客
谢绝回答任何PM
MB: GA-P35-DS3R CPU: Intel PD E6300 2.8GHz RAM: 4GB DDRII-800 Video: GF9400GT 1GB
HD: SG320GB (MBR winXP); SG500GB (MBR 10.5.7); SG500GB (10.6)
Onboard Audio & LAN
Sleep in 10.5.7 but no sleep in 10.6

TOP

感谢分享,给大家提供了入手的基础。

TOP

回复 6# 的帖子

不客气,有兴趣的大家一起研究,学习。今后还请多指教!
黑苹果大叔的博客
谢绝回答任何PM
MB: GA-P35-DS3R CPU: Intel PD E6300 2.8GHz RAM: 4GB DDRII-800 Video: GF9400GT 1GB
HD: SG320GB (MBR winXP); SG500GB (MBR 10.5.7); SG500GB (10.6)
Onboard Audio & LAN
Sleep in 10.5.7 but no sleep in 10.6

TOP

看来感兴趣的人的确不多,哈哈!
黑苹果大叔的博客
谢绝回答任何PM
MB: GA-P35-DS3R CPU: Intel PD E6300 2.8GHz RAM: 4GB DDRII-800 Video: GF9400GT 1GB
HD: SG320GB (MBR winXP); SG500GB (MBR 10.5.7); SG500GB (10.6)
Onboard Audio & LAN
Sleep in 10.5.7 but no sleep in 10.6

TOP

支持,我们需要自己的专家。

TOP

帮顶,最近实在没时间折腾

TOP

支持,继续

支持,继续吧

TOP

支持lz,不过偶只是玩玩,呵呵

TOP

感兴趣的人很多,可是语言的局限让人止步。

强烈支持!希望中国有真正的软件业。

顺便问一声,现在中国有软件业吗?

TOP

回复 13# 的帖子

多谢大家支持!

希望不要把我这种个人行为上升到民族层次。我这只限于个人爱好,发贴是希望能找到一些同道中人交流,互相学习。
黑苹果大叔的博客
谢绝回答任何PM
MB: GA-P35-DS3R CPU: Intel PD E6300 2.8GHz RAM: 4GB DDRII-800 Video: GF9400GT 1GB
HD: SG320GB (MBR winXP); SG500GB (MBR 10.5.7); SG500GB (10.6)
Onboard Audio & LAN
Sleep in 10.5.7 but no sleep in 10.6

TOP

帮你顶一下

TOP

这个要顶,但太深奥了,不懂,呵呵

TOP

楼主是专家,本菜鸟学习

TOP

返回列表