阅读:3813回复:14
请问有没有人了解"硬盘保护卡克星"的原理
我从朋友处得到一份,测试了一下,可以在还原保护状态下直接写磁盘
再分析了一下,发现,加载了一个驱动,通过驱动写的,用devicetree查看,这个驱动连一个设备都没有创建,什么都没有。太奇怪了。 也不是用的一般方法,直接写\\Device\\Harddisk0\\DR0。。 找不出他是用的什么办法。感觉太奇怪了。可能我的分析也不对。现传上他的程序和驱动。麻烦那位高手看一下。谢谢。。 期待你的答案/ |
|
|
沙发#
发布于:2008-01-19 15:38
应该是直接IO 。估计只能用于老式IDE ,新的SATA可能不行。
|
|
|
板凳#
发布于:2008-01-19 18:49
直接IO访问 0x1f2- 0x1f7号端口得到硬盘信息
然后直接IO访问 0xf1,Disk Controller 来写入数据 |
|
|
地板#
发布于:2008-01-20 02:29
直接IO,那么,我可以用winio.sys来实现相同的东西了。请问一下,有没有办法禁止他直接IO呢。谢谢二位老大
|
|
地下室#
发布于:2008-01-20 10:03
CPU 自PENTIUM后引入了IO断点 ,所以可以从DR里着手处理IO拦截,如果是新的CPU支持VM技术的话,可以直接从VM 里VMM控制。
|
|
|
5楼#
发布于:2008-01-20 11:50
引用第4楼wowocock于2008-01-20 10:03发表的 : 请问一下,DR是什么呀。谢谢。。初次接触这方面的。 |
|
6楼#
发布于:2008-01-20 13:27
我刚才研究了一下,WINIO的方法,他是利用Ke386IoSetAccessProcess
Ke386SetIoAccessMap 来设置许可某个应用程序直接IO操作。我的理解是对的吧。 如果说,这个硬盘保护克星,也是用这个办法,那怎么防止呢?好像没有什么好办法了。5555555555555555 各位给个意见吧。。路过的朋友 |
|
7楼#
发布于:2008-01-20 14:32
DRX断点~~哼哼哈黑~
|
|
|
8楼#
发布于:2008-01-20 19:41
引用第7楼killvxk于2008-01-20 14:32发表的 : 版主,给个资料吧。就三个字母,我搞不定呀。谢谢 |
|
9楼#
发布于:2008-01-20 20:35
DR0-DR7寄存器,端口断点
自己看吧~ |
|
|
10楼#
发布于:2008-01-20 20:35
|
|
|
11楼#
发布于:2008-01-20 20:38
|
|
|
12楼#
发布于:2008-03-08 12:43
最近很多人对实时监控的程序感兴趣,而且zjjmj2002大侠也放了一个出来,我也把我的代码放出来...
通过ssdt hook实现 对进程创建,注册表修改和内核模块加载的监控... hook 了ZwCreateProcess 其实很多方法不用调用ZwCreateProcess而创建进程 更好的办法是再hook NtCreateSection 我懒得改了 具体参考codeproject上的文章Hooking the native API and controlling process creation on a system-wide basis 注册表监控就是hook了ZwSetValueKey 没什么说的 内核监控仅仅 hook了ZwLoadDriver 其它进入ring0的方法没有监控........ 现在只能算是一个Demo 骗骗观众罢了 等有时间再完善 其实 写这类的程序关键是封了进入ring0的方法 守住ring0这块高地 其它的什么都不怕....... |
|
13楼#
发布于:2008-03-14 00:32
SSDT HOOK,太土了~~
DRX不行啊,还是用VM吧 |
|
|
14楼#
发布于:2008-03-14 10:41
SSDT HOOK还是不错的,只要能控制别人驱动的加载,把SSDT HOOK好好利用下,也是可以化腐朽为神奇的,嘿嘿......
|
|
|