paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
阅读:2293回复:14

文件过滤驱动是否能在系统启动的时候创建读写自己的日志文件?[b]百分相送,需要完整的例子。[/b]

楼主#
更多 发布于:2005-02-03 16:33
文件过滤驱动是否能在系统启动的时候创建读写自己的日志文件,例如拦截IRP_MJ_CREATE,当系统调用KERNEL32.dll时候进入我的MyCreate函数中,这个时候我将文件名写入日志,这个时候会蓝屏并自动reboot,有谁知道为什么?怎么解决这个问题?百分相送,需要完整的例子。filter@redsec.org

注释:当启动启动完也就是显示出桌面的时候读写日志文件操作一切正常,读写操作用ZwCreateFile,ZwWriteFile,ZwReadFile函数完成。
驱动启动类型为start:0

[编辑 -  2/18/05 by  paladinii]
Ideas for life!
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-02-03 16:50
驱动也是需要其它内核组件支撑的,一个驱动在支持它的核心系统组件没有被加载时是不可能work的。
如果有这种需求,建议还是采用动态加载驱动,例如可以写一个控制台服务,让服务来加载驱动,因为这时候加载,系统的很多底层服务都已经开始work了,可能会解决你的问题。
在交流中学习。。。
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-02-03 17:00
fslife,我见过一种这样的过滤驱动,比如你把KERNEL32.DLL破坏或者修改了,你看看系统还能正常启动不?这个时候如果有我说的那个过滤驱动可以用好的KERNEL32.dll覆盖损坏的KERNEL32.dll使得系统可以正常启动,这样的驱动我是见过的,他用的ZwCreateFile等函数完成覆盖操作的?我是这么理解的?你有什么好的建议?完成覆盖操作还有什么好的方法?

[编辑 -  2/3/05 by  paladinii]
Ideas for life!
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-06 13:30
 [url] http://www.driverdevelop.com/forum/html_86570.html?1107667604[/url]

怎么没人来拿分吗?还是我的问题太难了??
Ideas for life!
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-02-07 09:28
fslife,我见过一种这样的过滤驱动,比如你把KERNEL32.DLL破坏或者修改了,你看看系统还能正常启动不?这个时候如果有我说的那个过滤驱动可以用好的KERNEL32.dll覆盖损坏的KERNEL32.dll使得系统可以正常启动,这样的驱动我是见过的,他用的ZwCreateFile等函数完成覆盖操作的?我是这么理解的?你有什么好的建议?完成覆盖操作还有什么好的方法?

[编辑 -  2/3/05 by  paladinii]

KERNEL32.DLL坏了它属于Win32层的东西,系统虽然启动不起来,但根本关系不大,就是ntdll.dll坏了,也根本没关系,它也属于Win32层的东西。只要ntoskrnl.exe这个东东不坏,系统0级就能工作,至于恢复这两个文件,对于ntoskrnl.exe简直小意思,全部文件操作都是通过KERNEL32.DLL->ntdll.dll->(INT 2E)ntoskrnl.exe,最终是ntoskrnl.exe处理。
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2005-02-07 09:51
如果要实现开机系统文件保护的话,最好的方法是用自己的启动代替WINDOWS的启动,一般从MBR开始层层检测保护NTLDR,NTDTECT,NTOSKRNL,HAL,驱动程序,系统DLL等......
当然也可以从硬件开始加入对MBR的保护......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-02-07 10:27
如果要实现开机系统文件保护的话,最好的方法是用自己的启动代替WINDOWS的启动,一般从MBR开始层层检测保护NTLDR,NTDTECT,NTOSKRNL,HAL,驱动程序,系统DLL等......
当然也可以从硬件开始加入对MBR的保护......

保护都是相对的,除非CPU可以设口令!!嘻嘻。。。
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-02-10 20:17
 
KERNEL32.DLL坏了它属于Win32层的东西,系统虽然启动不起来,但根本关系不大,就是ntdll.dll坏了,也根本没关系,它也属于Win32层的东西。只要ntoskrnl.exe这个东东不坏,系统0级就能工作,至于恢复这两个文件,对于ntoskrnl.exe简直小意思,全部文件操作都是通过KERNEL32.DLL->ntdll.dll->(INT 2E)ntoskrnl.exe,最终是ntoskrnl.exe处理。

我的问题是怎么恢复这个文件?怎样在它之前启动我的file filter driver其它的方案不考虑,只要能实现我说的方法就可以。
哪位有好的方法?高分赐教!
Ideas for life!
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-02-13 17:10
[quote] KERNEL32.DLL坏了它属于Win32层的东西,系统虽然启动不起来,但根本关系不大,就是ntdll.dll坏了,也根本没关系,它也属于Win32层的东西。只要ntoskrnl.exe这个东东不坏,系统0级就能工作,至于恢复这两个文件,对于ntoskrnl.exe简直小意思,全部文件操作都是通过KERNEL32.DLL->ntdll.dll->(INT 2E)ntoskrnl.exe,最终是ntoskrnl.exe处理。

我的问题是怎么恢复这个文件?怎样在它之前启动我的file filter driver其它的方案不考虑,只要能实现我说的方法就可以。
哪位有好的方法?高分赐教! [/quote]
只用ntoskrnl.exe输出的函数从已备份好的文件中,覆盖即可。
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-02-16 19:02
 
只用ntoskrnl.exe输出的函数从已备份好的文件中,覆盖即可。


现在的关键的问题是,怎么保证我的文件过滤驱动在被损坏的文件(例如:Kernel32.dll)之前启动?而不是怎么恢复。多谢指教。

[编辑 -  2/16/05 by  paladinii]
Ideas for life!
SupermiLG
驱动牛犊
驱动牛犊
  • 注册日期2003-01-28
  • 最后登录2006-02-03
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-02-18 02:09
呵呵,我觉得大家有个坏毛病,老是把话题扯得远得不得了,呵呵。
对于你的问题,是个很明显的Create重入现象,以前有帖子回答过这种重入问题的解决之道,就是自己建立
IRP_Create然后下传.这样不光解决重入问题,也同时解决了在你没有NtCreateFile()系统调用时,打开或创建文件的方法。不过,自己建立IRP是个很复杂的过程,挺麻烦的(我好像以前贴过这个代码),除此之外,我觉得,应该别无它法。而这种方法因该是很见成效的,可惜我现在不再学校,如果我回学校还记得的话,我给你贴一份代码好了。

在精华区里的《有狠心的同志请看看〉〉里有回复

[编辑 -  2/18/05 by  SupermiLG]

[编辑 -  2/18/05 by  SupermiLG]
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-02-18 09:00
SupermiLG兄弟说得很对是因为IRP_MJ_CREATE重入导致系统自动的重起。关于Building IRP我倒是没有问题。 现在问题是怎么使我的过滤驱动在KERNEL32.DLL之前启动,并截获系统对KERNEL32.DLL的调用请求。?另外最好把你的代码发过来给我参考一下。多谢了!

另外,wowocock老大,
如果要实现开机系统文件保护的话,最好的方法是用自己的启动代替WINDOWS的启动,一般从MBR开始层层检测保护NTLDR,NTDTECT,NTOSKRNL,HAL,驱动程序,系统DLL等......
当然也可以从硬件开始加入对MBR的保护......

你这段话对我很有启发,能不能在详细的说说怎样用自己的启动代替WINDOWS的启动?或者给点相关的资料,多谢了。分数有的是,我会在开几个贴子到时只要大家去随便留言就会给分的。当然大家都不是冲着分来的分数只是我对大家表达感谢的一种方式罢了。多谢大家的帮助和指点。

[编辑 -  2/18/05 by  paladinii]
Ideas for life!
paladinii
驱动中牛
驱动中牛
  • 注册日期2003-10-28
  • 最后登录2012-03-09
  • 粉丝0
  • 关注0
  • 积分282分
  • 威望74点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-02-22 13:57
大虾们快显身阿!我的问题谁能帮我啊?
Ideas for life!
idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-05-17 14:08
高明!
[b]万水千山总是情,回个帖子行不行?[/b]
idaxsy
驱动大牛
驱动大牛
  • 注册日期2004-12-09
  • 最后登录2006-03-17
  • 粉丝0
  • 关注0
  • 积分386分
  • 威望54点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-05-17 15:46
 
如果要实现开机系统文件保护的话,最好的方法是用自己的启动代替WINDOWS的启动,一般从MBR开始层层检测保护NTLDR,NTDTECT,NTOSKRNL,HAL,驱动程序,系统DLL等......
当然也可以从硬件开始加入对MBR的保护......



这样做针对哪些客户呢?
[b]万水千山总是情,回个帖子行不行?[/b]
游客

返回顶部