阅读:1902回复:14
各位过年好,请教个XP下没事,在2003下却有的问题,请进:
恢复FSD-HOOK时,在XP下没有问题,但在2003下,读取NTFS.sys的内存代码时会蓝,一读就蓝~问题就出在自NTFS搜索IRP原地址时的第一句读取代码~
请教各位老大,在2003下进行内存代码搜索与XP下有什么不同么? 应该如何解决呢?谢谢了~ ![]() |
|
沙发#
发布于:2007-03-03 11:15
我们都是采用智能搜索技术,不能依赖于写死的机器码,嘿嘿......
|
|
|
板凳#
发布于:2007-03-03 11:54
![]() |
|
地板#
发布于:2007-03-04 13:34
嘿,偶只是用的笨方法,直接分析机器码来提取地址的~但现在的问题是,在2003与2000下都不能读NTfs.sys的内存代码,一读就蓝,而不是分析出错~
两位老大指点一下儿,在2003下读内存时需要做什么其它工作么? 我试过用MmGetPhysicalAddress 但好像没啥子用处~~ |
|
地下室#
发布于:2007-03-04 14:45
知道为什么出错了,但更不明白了。
我用的方法是先得到Ntfs的基址,再通过DOS头、PE头找到程序执行入口地址。然后从入口地址处开始搜索IRP的原始地址。 在XP下运行正常,但到了2003下,得到程序入口地址后,一读取就蓝屏,后来检查发现,那个地址虽然的确是在NTFS.sys的区域内,但指向的却是空数据。 汗~~怎么会这样呢~~用WinDbg看那个地址的数据是一大片的“?”~~ ![]() |
|
5楼#
发布于:2007-03-04 17:02
为什么要读ntfs.sys的内存代码呢?
内存的IRP地址可以直接通过 DriverObject->MajorFunction得到嘛! 然后再读磁盘文件,对比, |
|
|
6楼#
发布于:2007-03-04 18:59
为什么要读ntfs.sys的内存代码呢?
内存的IRP地址可以直接通过 DriverObject->MajorFunction得到嘛! 然后再读磁盘文件,对比, +++++++++++++++++++++++++++++++++++++++++++++ 老大,它不是把DriverObject->MajorFunction处的处理函数地址改成它的了么~~我想取得原始的处理函数地址,不是要从代码中取么~还有其它方法么? ![]() |
|
7楼#
发布于:2007-03-05 09:41
原始的处理函数地址直接分析磁盘文件呀,为什么要通过内存?如果它也搜索到内存的那个初始化MajorFunction的地方把那个改了,你不就挂了,呵呵
|
|
|
8楼#
发布于:2007-03-05 09:47
入口代码在INIT节,加载完被丢弃了,为什么不从文件中读呢
|
|
9楼#
发布于:2007-03-05 22:38
原始的处理函数地址直接分析磁盘文件呀,为什么要通过内存?如果它也搜索到内存的那个初始化MajorFunction的地方把那个改了,你不就挂了,呵呵
_______________________________________ 汗,我的脑子真是木了,都说可以通过内存代码找到原始函数地址,我就傻呼呼的照做了~谢谢~~ 直接分析文件的确比内存更好使~ 入口代码在INIT节,加载完被丢弃了,为什么不从文件中读呢 ———————————————————————————— 原来那段代码会被丢弃的,怪不得查看时得到的全是空呢,但不明白的是为什么在XP下可以找到但在2K3下就不行了。 有些是可以从文件中读取,但却还是离不开内存读取,因为有时要把内存中的与文件中的比较一下子~比如检查对服务函数的INLINE~ 我试试从文件中找原始服务函数址再定位内存中的代码来检查INLINE,看是否可行~~去做试验了,谢谢各位的帮助~谢谢~ |
|
10楼#
发布于:2007-03-05 22:46
原始的处理函数地址直接分析磁盘文件呀,为什么要通过内存?如果它也搜索到内存的那个初始化MajorFunction的地方把那个改了,你不就挂了,呵呵
———————————————————————————————— 嘿,忘记说了。我不怕它改那个地址,我取原始函数地址只是为了恢复与检查INLINE用。我加了对跳转地址所在的区域判断,即使它改了那里的地址,也会被发现的,除非他把他的代码写到NTfs.sys的代码空间内~ ^-^ 再JMP到那段位于NTFS.sys内存空间的代码处。 呵呵,有时会犯傻,有时也有点小聪明~~ 再次感谢WQXNETQIQI~~ |
|
11楼#
发布于:2007-03-06 09:03
人家对文件系统做了HOOK,你还能读到文件吗??自己实现FS再说吧.
|
|
|
12楼#
发布于:2007-03-06 10:19
文件系统HOOK了就直接硬盘访问
|
|
|
13楼#
发布于:2007-03-06 11:47
引用第12楼WQXNETQIQI于2007-03-06 10:19发表的“”: hook硬盘驱动,你就直接IO吧,自己实现对付IDE,SATA,SCSI的硬盘,包括DMA,自己还是实现个MINI OS吧,嘿嘿...... |
|
|
14楼#
发布于:2007-03-07 14:32
hook硬盘驱动,你就直接IO吧,自己实现对付IDE,SATA,SCSI的硬盘,包括DMA,自己还是实现个MINI OS吧,嘿嘿......
_________________________________ 汗~~刀来剑往的几个回合下来,才发现~只有自己写操作系统是最好的办法~ ^-^ ![]() ![]() ![]() |
|