资源交流吧:VIP  | 网站首页 | 文章中心 | 下载中心 | 图片中心 | 雁过留声 | 音乐无限 | 互动书吧 | BT下载 | 留学频道 |  {$Wap}
您现在的位置: 九佰度在线 九佰度空间 >> 文章中心 >> 黑客前沿 >> 黑客教程 >> 文章正文 用户登录 新用户注册
3721驻留机制简单研究         ★★★ 【字体:


3721驻留机制简单研究

作者:未知    文章来源:CnXHacker.Net    点击数:    更新时间:2006-6-7
0
Quaful@水木清华  

简单研究了一下3721的机制,写在这里,作为心得笔记吧。大部分收获都来自  
Softice + 反汇编,不一定适用于某些版本。  

1. CnsMin.dll的驻留方式  

3721的核心文件:CnsMin.dll  
通常存在于<Windows Directory>\Downloaded Program Files下。  

通过注册表Run键值加载:Rundll32 <dir>\CnsMin.dll, Rundll32  

CnsMin.dll提供了一个函数Rundll32供Rundll32.exe调用  
但这个函数只是调用一个真正的驻留函数Rundll32Main()。  

Rundll32Main()伪代码:  

void Rundll32Main()  
{  
hMutex = CreateMutex("CNSMINMUTEX");  
        if(ERROR_ALREADY_EXISTS)  
        {  
                CloseHandle(hMutex);  
                exit;  
        }  
        if(IsWindowsNT()) {  
                SetProcessSecurityInfo();  
        }  
        else {  
                RegisterProcessAsService();  
        }  
        CheckVersion();  
          
        // CnsMinKP.sys/vxd 内核驱动程序,保护3721关键文件和注册表项不被删除  
        ContactWithCnsMinKPDriver();  
          
        // 关键的hook,负责将CnsMin.dll注入其他进程空间  
        InstallCBTHook();  
          
        // 关键的hook,负责将CnsMin.dll注入其他进程空间  
        InstallCallWndProcHook();  
          
        // CnsMinIO.dll 负责IE地址栏下方的提示  
        InitCnsMinIO();  
          
        // 一些注册表信息  
        InitRegistry();  
          
        // 保护CnsMin.dll的钩子不被卸载或抢先  
        InstallGuardTimer();  

        CreateMsgWindow();  

        // Message loop  
        while (true)  
        {  
                GetMessage(&msg);  
                TranslateMessage(&msg);  
                DispatchMessage(&msg);  
        }  
}  

CnsMin主要是通过WH_CBT和WH_CALLWNDPROC两个全局钩子注入IE进程空间的。注入  
IE后,又安装了WH_KEYBOARD,WH_DEBUG等钩子。其中对3721实现其“实名转换”  
有用的是WH_KEYBOARD。这是一个本地钩子。  

CnsMin为了保证自己的优先级最高,用了一个定时器函数反复安装钩子,无疑会造成  
系统性能的下降。  

我曾经尝试过自己安装一个WH_DEBUG钩子阻止3721钩子的调用,确实起到了效果,  
立即可以使3721失效。但这种方法3721仍然驻留IE进程内,属于指标不治本的方法。  

强制结束Rundll32进程,可以暂时卸载3721的驻留代码。但CnsMin.dll通过COM注册已经  
嵌入IE组件中,重新启动IE后,该进程又会重新启动。  

2. 3721的防删除手段  
  文件系统驱动:CnsMinKP*.sys 针对NT/2000/XP有不同版本(98下面是CnsMinKP.vxd)  
  通常存在于<System directory>\drivers\目录。  

  驱动程序,由Windows启动时加载。  

  该驱动程序过滤了对文件和注册表的删除操作。试图删除3721的关键文件和注册表项时,  
直接返回一个TRUE,使Windows认为删除已经成功,但文件和注册表实际上还是在那里。  
  该驱动程序还有一个黑名单(保存在某个外部文件中),阻止Windows读取其他3721的  
竞争对手的插件文件。  

  目前还没有找到停止该驱动的方法。  

  删除方法:在Windows启动前(例如,98下面退出到DOS)删除CnsMinKP*.sys文件。  
注意:3721具有自恢复能力。某些关键文件被删除后,其它模块会试图从3721网站重新  
下载。所以彻底删除前需要断开网络连接。  

3. 针对目前版本的删除步骤:  
a) 运行3721自己提供的删除程序。可以删掉大部分的文件。  
b) 从DOS启动,删除残存文件,如CnsMin.dll,CnsMinKP*.*等  
   可能的目录:Downloaded Program Files目录,Program Files\3721目录,drivers目录  
c) 启动Windows,进入桌面时Windows会报告一些模块找不到的错误,不用理会,删除  
   注册表中3721的值。  
   可能的位置:HKEY_CURRENT_USER: Software\3721  
   HKEY_LOCAL_MACHINE: Windows\CurrentVersion\Run  
                       SYSTEM\CurrentControlSet  
   另外还零散的藏了一些,用关键字查找。 

[1]

文章录入:qq007    责任编辑:qq007 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     本类热门文章
    普通文章泰航空姐在曼谷新国际机场屡11-22
    普通文章俄罗斯最后一颗军事间谍卫星11-22
    普通文章英国成为欧洲最大性奴交易市11-22
    普通文章朝鲜称将坚决报复日本对其实11-22
    普通文章中情局被指谋杀肯尼迪兄弟 11-22
    普通文章布什访问印尼引起大规模抗议11-22
    普通文章东南亚许多儿童成为卖淫活动11-22
    普通文章英国妇女两次怀上三胞胎医学11-22
     最新推荐文章
    普通文章泰航空姐在曼谷新国际机场屡11-22
    普通文章俄罗斯最后一颗军事间谍卫星11-22
    普通文章英国成为欧洲最大性奴交易市11-22
    普通文章朝鲜称将坚决报复日本对其实11-22
    普通文章中情局被指谋杀肯尼迪兄弟 11-22
    普通文章布什访问印尼引起大规模抗议11-22
    普通文章东南亚许多儿童成为卖淫活动11-22
    普通文章英国妇女两次怀上三胞胎医学11-22
     最新文章
    普通文章泰航空姐在曼谷新国际机场屡11-22
    普通文章俄罗斯最后一颗军事间谍卫星11-22
    普通文章英国成为欧洲最大性奴交易市11-22
    普通文章朝鲜称将坚决报复日本对其实11-22
    普通文章中情局被指谋杀肯尼迪兄弟 11-22
    普通文章布什访问印尼引起大规模抗议11-22
    普通文章东南亚许多儿童成为卖淫活动11-22
    普通文章英国妇女两次怀上三胞胎医学11-22
     文章评论(评论内容只代表网友观点,与本站立场无关!发表评论
    007在线工作室 版权所有 未经许可 严禁复制本站页面以及盗取资源链接
    Copyright© 2005-2006 使用800*600像素访问本站将达到最佳效果 苏ICP备05042773号