回首页
◎ 设为首页  
◎ 收藏本站  
◎ 联系我们  
首页 理财故事 专家点金 精打细算 我家财经 参考案例 生活 黄金 银行 保险 外汇 股票 基金 债券 期货 彩票 社保
论坛 创业人生 答疑解惑 商机无限 名人之路 科技致富 职场 收藏 古玩 字画 邮品 赏石 珠宝 旅游 汽车 科普 法规
网址 家居装饰 时尚丽人 家庭健康 大众饮食 电脑网络 数码 建站 娱乐 笑料 图片 文学 文摘 游戏 轶事 影音 链接
    首 页  理财之道  激情创业  银行保险  证券投资  收藏博览  消费指南  政策法规  休闲娱乐  科技之家  网站社区  
  当前位置:首 页 >> 科技之家 >> 电脑网络 >> 手工查杀熊猫烧香变种gYAef.exe的过程
热 门 排 行
实战Photoshop 给..
QQ空间动态皮肤-JAY图..
明明白白 Windows系统..
QQ空间最新神之花匠代码
Windows系统“无法打..推荐
2款可爱的QQ空间FLASH..
Windows XP关机故障全..推荐
看六款恶意程序清理软..推荐
SQL全称是“结构化查..
菜鸟谈 新手如何装一..
最 近 更 新
微软Win7操作系统将于..
Vista优化大师做Vista..
菜鸟上手:网络电话Sk..
IE浏览器十种防黑技巧推荐
VISTA换XP的用户关注..
世界之窗浏览器常用技..
IE7.0浏览器使用的9..
Windows操作系统文件..
Win XP系统中如何重置..
无线局域网的五点注意..
相 关 链 接
理财 基金 债券
金市 汇市 保险
收藏 期货 银行
     
最 新 推 荐
IE浏览器十种防黑技巧推荐
用Windows XP自带工具..推荐
BIOS里一些常用功能设..推荐
让你的Windows XP继续..推荐
卡巴优化设置及常见问..推荐
电脑死机大全,看完你..推荐
批量更改Windows操作..推荐
解密拼音输入法8大妙用推荐
访问Windows XP共享出..推荐
菜鸟升级 Windows XP..推荐
站 内 搜 索
关键词

搜索方式

搜索范围

精确匹配
手工查杀熊猫烧香变种gYAef.exe的过程

来源:居家理财网 等级:默认等级
发布于2007-03-16 11:00 被读174次 【字体: 】〖 访问论坛
背景
  在windows平台下,应用程序通常使用API函数来进行文件访问,创建,打开,读写文件。从kernel32的CreateFile/ReadFile/WriteFile函数,到本地系统服务,再到FileSystem及其FilterDriver,经历了很多层次。在每个层次上,都存在着安全防护软件,病毒或者后门作监视或者过滤的机会。作为安全产品开发者,我们需要比别人走得更远,因此我们需要一个底层的“windows平台内核级文件访问”的方法来确保我们能够看到正确的干净的文件系统。

直接访问FSD的内核级别文件访问
  FSD(FileSystemDriver)层是文件API函数经过本地系统服务层(native API)最后到达的驱动层次。如果我们可以模仿操作系统,在我们自己的驱动程序里直接向FSD发送IRP,就可以绕过那些native API 和win32 API了,也就可以绕过设置在这些层次上面的API钩子等监控措施。

文件的Create和Open
  文件的Create和Open可以通过发送IRP_MJ_CREATE给FSD,或者调用IoCreateFile函数来完成。Create和Open的区别实际上在于IoCreateFile/IRP_MJ_CREATE的一个参数Disposition的取值。
  通过发送IRP_MJ_CREATE给FSD的方法与此类似,可以参考IFSDDK document的IRP_MJ_CREATE说明。不同于上面方法的是需要自己创建一个FILE_OBJECT,好于上面方法的是这种方法不需要一个HANDLE,HANDLE是线程依赖的,FileObject则是线程无关。

文件的Read和Write
  我们通过给FSD发送IRP_MJ_READ来读取文件,给FSD发送IRP_MJ_WRITE来改写文件。
  如果我们是通过一个HANDLE来执行(如使用IoCreateFile打开的文件),就要先用ObReferenceObjectByHandle函数来获得这个Handle对应的FileObject。我们只能给FileObject发送IRP。
  之后我们使用IoAllocateIrp分配一个IRP。根据FileObject->DeviceObject->Flags的值,我们判断目标文件系统使用什么样的IO方式。
  对每种不同的IO方式使用不同的地址传递方式。随后我们填充IRP内的各个参数域,就可以发送IRP了。
  接着要考虑如果IRP不能及时完成,会异步的返回的情况,我们安装一个CompletionRoutine,在CompletionRoutine里面设置一个事件为已激活,通知我们的主线程读取或者写入操作已经完成。
  现在可以发送IRP了。如果不采取特殊的措施的话,IRP发送目标是FileObject对应的DeviceObject。发送后,等待IRP的完成并且释放资源,返回。

文件的Delete
  Delete实际上是通过向FSD发送IRP_MJ_SET_INFORMATION的IRP,并把IrpSp->Parameters.SetFile.FileInformationClass设置为FileDispositionInformation,用一个FILE_DISPOSITION_INFORMATION结构填充buffer来执行的。

  文件的Rename
  类似于Delete,Rename是向FSD发送IRP_MJ_SET_INFORMATION的IRP,把IrpSp->Parameters.SetFile.FileInformationClass设置为FileRenameInformation,填充buffer为FILE_RENAME_INFORMATION结构。



综上,于是我们可以在驱动里面通过发送IRP来直接访问文件系统了,绕过了native API 和win32 API层次。

  绕过文件系统过滤驱动和钩子

  有了以上的内容,我们目前可以直接给FSD发送请求操作文件。但是这还不够,因为有很多的杀毒软件或者监视工具使用FSD Filter Driver或者FSD Hook的办法来监控文件操作

  对付文件系统过滤驱动

  文件系统过滤驱动Attach在正常的文件系统之上,监视和过滤我们的文件访问。文件系统驱动栈就是由这一连串的Attach起来的过滤驱动组成。我们可以用IoGetRelatedDeviceObject这个函数来获得一个FileObject对应的最底层的那个功能驱动对象(FDO)。但是这样虽然绕过了那些过滤驱动,却同时也绕过了正常的FSD如Ntfs/Fastfat,因为正常的FSD也是作为一个过滤驱动存在的。磁盘文件对象的对应的最底层的FDO是Ftdisk.sys,它已经因为过于底层而不能处理我们投递的IRP请求。
  其实正常的FSD信息存储在一个Vpb结构中,我们可以使用IoGetBaseFileSystemDeviceObject这个未公开的内核函数来得到它。它就是我们发送IRP的目标了。


  对付替换DispatchRoutine的FSD Hook

  这是一种常用的FSD Hook方式。我们需要得到原本的DispatchRoutine,向原本的DispatchRoutine发送我们的IRP。这里提供一个思路:我们可以读取原本FSD驱动的.INIT段或者.TEXT段,查找其DriverEntry函数,在它的DriverEntry函数中肯定设置了自己的DriverObject的各个DispatchRoutine。在这个函数中我们就能找到我们想要的DispatchRoutine的地址。只需要使用特征码搜索的方法就可以搜索到这个值。


  对付Inline Hook DispatchRoutine函数本身的FSD Hook

  这种Hook方法比较狠毒,但不是非常常见于安全产品中,一般应用在木马和rootkit上,比如我自己写的rootkit。它没有更改DriverObject里面的DispatchRoutine的函数指针,而是向函数开头写入汇编指令的JMP来跳转函数。对付它的基本思路就是读取存在磁盘上的FSD的文件,加载到内存一份干净的备份,察看我们要调用的DispatchRoutine开头的几个字节和这个干净备份是否一致。如果不一致,尤其是存在JMP,RET,INT3一类的汇编指令的时候,很可能就是存在了Inline Hook。(但要充分考虑重定位的情况。)如果存在Inline Hook,我们就把干净的函数开头拷贝过来覆盖掉被感染的函数头。然后在发送IRP,就不会被Inline Hook监视或篡改了。

出处:网络文摘

(您想天天免费看到如此及时全面的资讯吗?请点击此处将居家理财网加入您的收藏夹就可以了。点击此处将居家理财网设为您的上网首页。)
  居家理财网-- www.jj86.com

※非常感谢您阅读本页!※内容仅供参考,不构成任何行为依据※!暂无相关专题

上一篇:在Windows Vista中查看.hlp帮助文件
下一篇:超级必杀技让Windows XP系统更加安全

共有评论 0 条 网友评分 0分 查看全部

【发表评论】 评分:1分 2分 3分 4分 5分


 版权申明
1、 发表文章作品必须依法行事;所有文章及相关评论仅代表作者本人观点,与本站立场无关。
2、 本站刊登该文章只为交流之用,无任何营利目的,如有侵犯或不妥,请直接与我们联系。
3、 原创文章或评论版权归本站和作者共有;转载的文章及其它作品,版权归原发表单位及作者所有。
4、 由于来自于网上部分文章无法查证原作者和出处,如署名或出处有误,请直接与我们联系。
5、 如果转载,务必注明作者与出处;从本站转载请标注:文章来源:居家理财网
论坛内容更精彩,欢迎参与讨论交流!
网址大全 网上投稿 广告服务 服务条款 人才招聘 笑话大全 设为首页 加入收藏夹 友情链接 网站建设
本站永久域名:☆www.jj86.com Rss 2.0
      Copyright © 2004-2005 居家理财网 All Right Reserved.吉ICP备05003931号
     
 推荐↑ 关闭╳
 推荐↑ 关闭╳