20楼#
发布于:2005-02-08 11:38
估计它最多在各种操作系统的各个部分做些检测,除非不让进ring0,否则,再多的检测也没用。我如果对付,它总不能让调试器无法工作吧,我hook系统,设置硬件断点,它能耐我何? 这样做理论上问题不打,实际还要测试了才知道 不知兄弟可否这样实验过? |
|
|
21楼#
发布于:2005-02-11 17:21
[quote]估计它最多在各种操作系统的各个部分做些检测,除非不让进ring0,否则,再多的检测也没用。我如果对付,它总不能让调试器无法工作吧,我hook系统,设置硬件断点,它能耐我何? 这样做理论上问题不打,实际还要测试了才知道 不知兄弟可否这样实验过? [/quote] softice的bpm就是这样实做的 |
|
|
22楼#
发布于:2005-02-14 17:11
[quote]光听微软胡咧咧,那还是高手吗? 不知道你有什么好办法??? 我虽然把INTEL EM64T和AMD64的手册都看了一遍,还是没想通MS是如何在CPU硬件级别上实现的..... 请指点...... [/quote] 我也看了一下AMD64的手册,发现它推荐驱动辅助的函数lib工作在ring 1和2,这样便限制了特权指令的使用,也许这便是MS的硬件级的实现。 |
|
|
23楼#
发布于:2005-02-16 10:21
wowocock和AllenZh在吗?我觉得驱动可以在ring 1,2实现,类似ntdll.dll仅仅是一个包装,只能调用ring0中特定的例程实现,这样限制了特权指令的使用。你们觉得目前的驱动中有哪些通过这样方法不能实现呢?
|
|
|
24楼#
发布于:2005-02-16 10:30
wowocock和AllenZh在吗?我觉得驱动可以在ring 1,2实现,类似ntdll.dll仅仅是一个包装,只能调用ring0中特定的例程实现,这样限制了特权指令的使用。你们觉得目前的驱动中有哪些通过这样方法不能实现呢? 你这是比较理想的方法,不过现在看来不现实. 按照INTEL的建议本来是那么做最好,这样普通驱动程序无法修改系统核心的数据结构,也不用担心什么核心级别的ROOTKIT了. 但是当初为了兼容其他CPU,所以现在的WINDOWS和LINUX都只用了RING0和RING3,而应用层调用核心服务或者通过中断门,或者通过X86-32下的SYSENTER,SYSEXIT或者X86-64下的SYSCALL,SYSRET来实现. 由于通过门切换,需要进行特权检查等步骤,所以在XP以后就采用了后面的方法.但是他们只能在0,3之间进行切换,如果位于1,2就无法使用.只能通过门的方法,但你认为要通过那么多门来调用系统服务方便吗???? 所以现在只能一条道跑到黑而已..... |
|
|
25楼#
发布于:2005-02-16 11:50
[quote]wowocock和AllenZh在吗?我觉得驱动可以在ring 1,2实现,类似ntdll.dll仅仅是一个包装,只能调用ring0中特定的例程实现,这样限制了特权指令的使用。你们觉得目前的驱动中有哪些通过这样方法不能实现呢? 你这是比较理想的方法,不过现在看来不现实. 按照INTEL的建议本来是那么做最好,这样普通驱动程序无法修改系统核心的数据结构,也不用担心什么核心级别的ROOTKIT了. 但是当初为了兼容其他CPU,所以现在的WINDOWS和LINUX都只用了RING0和RING3,而应用层调用核心服务或者通过中断门,或者通过X86-32下的SYSENTER,SYSEXIT或者X86-64下的SYSCALL,SYSRET来实现. 由于通过门切换,需要进行特权检查等步骤,所以在XP以后就采用了后面的方法.但是他们只能在0,3之间进行切换,如果位于1,2就无法使用.只能通过门的方法,但你认为要通过那么多门来调用系统服务方便吗???? 所以现在只能一条道跑到黑而已..... [/quote] AMD64中手册就是这么说的,这么说你认为MS不会在用这种方法实现Patching policy for x64-based systems |
|
|
上一页
下一页