MuseHero
驱动小牛
驱动小牛
  • 注册日期2005-04-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望156点
  • 贡献值0点
  • 好评度136点
  • 原创分0分
  • 专家分0分
阅读:1901回复:14

各位过年好,请教个XP下没事,在2003下却有的问题,请进:

楼主#
更多 发布于:2007-03-02 12:17
  恢复FSD-HOOK时,在XP下没有问题,但在2003下,读取NTFS.sys的内存代码时会蓝,一读就蓝~问题就出在自NTFS搜索IRP原地址时的第一句读取代码~
请教各位老大,在2003下进行内存代码搜索与XP下有什么不同么?
应该如何解决呢?谢谢了~
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-03-03 11:15
我们都是采用智能搜索技术,不能依赖于写死的机器码,嘿嘿......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
doskey
论坛版主
论坛版主
  • 注册日期2004-12-08
  • 最后登录2016-04-05
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望302点
  • 贡献值0点
  • 好评度300点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-03 11:54
弄个反汇编引擎
MuseHero
驱动小牛
驱动小牛
  • 注册日期2005-04-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望156点
  • 贡献值0点
  • 好评度136点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-04 13:34
嘿,偶只是用的笨方法,直接分析机器码来提取地址的~但现在的问题是,在2003与2000下都不能读NTfs.sys的内存代码,一读就蓝,而不是分析出错~
两位老大指点一下儿,在2003下读内存时需要做什么其它工作么?
我试过用MmGetPhysicalAddress 但好像没啥子用处~~
MuseHero
驱动小牛
驱动小牛
  • 注册日期2005-04-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望156点
  • 贡献值0点
  • 好评度136点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-03-04 14:45
知道为什么出错了,但更不明白了。
我用的方法是先得到Ntfs的基址,再通过DOS头、PE头找到程序执行入口地址。然后从入口地址处开始搜索IRP的原始地址。
在XP下运行正常,但到了2003下,得到程序入口地址后,一读取就蓝屏,后来检查发现,那个地址虽然的确是在NTFS.sys的区域内,但指向的却是空数据。
汗~~怎么会这样呢~~用WinDbg看那个地址的数据是一大片的“?”~~
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2007-03-04 17:02
为什么要读ntfs.sys的内存代码呢?
内存的IRP地址可以直接通过 DriverObject->MajorFunction得到嘛!
然后再读磁盘文件,对比,
驱动开发者 呵呵
MuseHero
驱动小牛
驱动小牛
  • 注册日期2005-04-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望156点
  • 贡献值0点
  • 好评度136点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-03-04 18:59
为什么要读ntfs.sys的内存代码呢?
内存的IRP地址可以直接通过 DriverObject->MajorFunction得到嘛!
然后再读磁盘文件,对比,
+++++++++++++++++++++++++++++++++++++++++++++

老大,它不是把DriverObject->MajorFunction处的处理函数地址改成它的了么~~我想取得原始的处理函数地址,不是要从代码中取么~还有其它方法么?
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2007-03-05 09:41
原始的处理函数地址直接分析磁盘文件呀,为什么要通过内存?如果它也搜索到内存的那个初始化MajorFunction的地方把那个改了,你不就挂了,呵呵
驱动开发者 呵呵
GNiDiA
驱动小牛
驱动小牛
  • 注册日期2006-10-11
  • 最后登录2017-10-09
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望145点
  • 贡献值0点
  • 好评度124点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2007-03-05 09:47
入口代码在INIT节,加载完被丢弃了,为什么不从文件中读呢
MuseHero
驱动小牛
驱动小牛
  • 注册日期2005-04-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望156点
  • 贡献值0点
  • 好评度136点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-03-05 22:38
原始的处理函数地址直接分析磁盘文件呀,为什么要通过内存?如果它也搜索到内存的那个初始化MajorFunction的地方把那个改了,你不就挂了,呵呵
_______________________________________

汗,我的脑子真是木了,都说可以通过内存代码找到原始函数地址,我就傻呼呼的照做了~谢谢~~
直接分析文件的确比内存更好使~



入口代码在INIT节,加载完被丢弃了,为什么不从文件中读呢
————————————————————————————

原来那段代码会被丢弃的,怪不得查看时得到的全是空呢,但不明白的是为什么在XP下可以找到但在2K3下就不行了。
有些是可以从文件中读取,但却还是离不开内存读取,因为有时要把内存中的与文件中的比较一下子~比如检查对服务函数的INLINE~


我试试从文件中找原始服务函数址再定位内存中的代码来检查INLINE,看是否可行~~去做试验了,谢谢各位的帮助~谢谢~
MuseHero
驱动小牛
驱动小牛
  • 注册日期2005-04-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望156点
  • 贡献值0点
  • 好评度136点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-03-05 22:46
原始的处理函数地址直接分析磁盘文件呀,为什么要通过内存?如果它也搜索到内存的那个初始化MajorFunction的地方把那个改了,你不就挂了,呵呵
————————————————————————————————

嘿,忘记说了。我不怕它改那个地址,我取原始函数地址只是为了恢复与检查INLINE用。我加了对跳转地址所在的区域判断,即使它改了那里的地址,也会被发现的,除非他把他的代码写到NTfs.sys的代码空间内~ ^-^ 再JMP到那段位于NTFS.sys内存空间的代码处。

呵呵,有时会犯傻,有时也有点小聪明~~
再次感谢WQXNETQIQI~~
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
11楼#
发布于:2007-03-06 09:03
人家对文件系统做了HOOK,你还能读到文件吗??自己实现FS再说吧.
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
12楼#
发布于:2007-03-06 10:19
文件系统HOOK了就直接硬盘访问
驱动开发者 呵呵
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
13楼#
发布于:2007-03-06 11:47
引用第12楼WQXNETQIQI2007-03-06 10:19发表的“”:
文件系统HOOK了就直接硬盘访问

hook硬盘驱动,你就直接IO吧,自己实现对付IDE,SATA,SCSI的硬盘,包括DMA,自己还是实现个MINI OS吧,嘿嘿......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
MuseHero
驱动小牛
驱动小牛
  • 注册日期2005-04-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望156点
  • 贡献值0点
  • 好评度136点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2007-03-07 14:32
hook硬盘驱动,你就直接IO吧,自己实现对付IDE,SATA,SCSI的硬盘,包括DMA,自己还是实现个MINI OS吧,嘿嘿......
 
 
_________________________________

汗~~刀来剑往的几个回合下来,才发现~只有自己写操作系统是最好的办法~ ^-^
     
游客

返回顶部