赛迪网 > IT技术 IT技术关注 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

清清楚楚之3721驻留机制简单研究

发布时间:2006.08.22 06:08     来源:赛迪网    作者:佚名

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

1. CnsMin.dll的驻留方式

3721的核心文件:CnsMin.dll

通常存在于\Downloaded ProgramFiles下。通过注册表Run键值加载:Rundll32
\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),通常存在于\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。

  另外还零散的藏了一些,用关键字查找。

(t116)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 雅虎中国与3721卷入侵权官司遭索赔500万 (08-19) · 双重打击:郁闷的雅虎如何应对 (08-17)
· 手工解决3721造成的XP系统崩溃问题 (08-17) · 3721百度淘宝难逃流氓软件之咎 (08-12)
· 阿里巴巴首次设立代理制 意图安抚3721渠道 (08-08) · 中国机械网诉3721背后:网络服务公信力缺位 (11-19)
· 3721被认定为病毒 (11-03) · 发财——都是被逼出来的 (10-08)
· 3721公司将正式更名 产品都将逐一归到雅虎 (09-20) · Yahoo暗箭难防!微软官方推出删除3721工具 (09-14)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管