|
| |
精品推荐 |
 |
|
| |
|
|
|
|
雅虎助手是这样迫害兔子和360安全卫士
|
日期:2007年5月3日 作者: 查看:[大字体
中字体 小字体]
|
这几天研究了一下雅虎助手是如何干扰360卫士的,发现如果安装雅虎助手的时候不安装3721就不会有问题,看来问题出在3721上了。于是在安装雅虎助手的时候选择安装3721,结果问题果然出现了,联想到前几天在360论坛上看到vcmfc提到雅虎助手/3721通过一个系统CBT钩子干扰“360安全卫士”和“兔子”,于是特别留意了一下系统钩子运行的情况。安装了雅虎助手之后,我先运行了一个自编的系统钩子检查程序AntiHook.exe,果然立刻发现了雅虎助手安装的钩子,见下图:
 【图antihook.gif】 yhelper.dll没有加密措施,对“360安全卫士”和“兔子”的迫害代码随处可见,比如,下面的代码是从Runonce中删除“兔子”和“360”的启动项,干扰这两个程序的运行:
.text:53002C9E loc_53002C9E: ; CODE XREF: sub_53002993+285 .text:53002C9E mov esi, ds:SHDeleteValueA .text:53002CA4 mov ebx, offset pszSubKey ; "SOFTWARE\\Microsoft\\Windows\\CurrentVersi"... .text:53002CA9 push offset pszValue ; "Super Rabbit Winspeed" .text:53002CAE mov edi, 80000002h .text:53002CB3 push ebx ; pszSubKey .text:53002CB4 push edi ; hkey .text:53002CB5 call esi ; SHDeleteValueA .text:53002CB7 push offset a360safe_0 ; "360Safe" .text:53002CBC push ebx ; pszSubKey .text:53002CBD push edi ; hkey .text:53002CBE call esi ; SHDeleteValueA .text:53002CC0 pop ebp .text:53002CC1 pop ebx 上面的代码只是小手段,下面才是真正导致“360安全卫士”和“兔子”无法运行的“罪魁祸首”,这段代码运行的时候yhelper.dll钩子已经被安装(钩)到应用程序进程空间中了,所以已经可以访问被钩程序进程空间中的资源了,来看看代码:
.text:53001BF2 loc_53001BF2: ; CODE XREF: DllMain(x,x,x)+50j .text:53001BF2 mov ecx, offset unk_53006740 .text:53001BF7 call sub_53002E25 .text:53001BFC push 1 ; int .text:53001BFE push offset aWinspeed ; "WINSPEED" .text:53001C03 call sub_53002993 .text:53001C08 push 1 ; int .text:53001C0A push offset a360safe ; "360SAFE" .text:53001C0F call sub_53002993 .text:53001C14 add esp, 10h .text:53001C17 jmp short loc_53001C42 .text:53001C19 ; --------------------------------------------------------------------------- 关键点是函数sub_53002993,这个函数接受一个字符串参数,就是“360安全卫士”和“兔子”的进程名称,sub_53002993是函数做什么呢?很简单,就是先调用GetModuleFileName()得到当前Hook的进程名称,然后通过字符串比较确定是不是“360安全卫士”和“兔子”。如果是就通过API钩子的方式Hook以下API:
DeleteFileA TerminateProcess RegDeleteKeyA RegDeleteValueA OpenProcess DeleteFileW MoveFileExW MoveFileW MoveFileExA MoveFileWithProgressA MoveFileWithProgressW RegDeleteKeyW RegDeleteValueW ShellExecuteA 采用的方式很老套,就是修改API函数的前五个字节为一个跳转语句,跳到钩子程序中的处理函数,在处理函数中根据情况进行一下过滤。下面以雅虎助手用于替换DeleteFileA的处理函数为例,看看它都做了些什么。这个处理函数功能很简单,就是过滤一下要删除的文件,当检测到“兔子”和“safe360”在删除与自己相关的东西时就不执行删除工作,直接返回成功欺骗这两个程序,看看对DeleteFileA的处理函数:
上一篇:Direct3D 10系统初级入门之背景介绍
下一篇:软件架构训练基础教程之导语
|
| 雅虎助手是这样迫害兔子和360安全卫士 相关文章: |
|
|
|
| 雅虎助手是这样迫害兔子和360安全卫士 相关软件: |
|
|
|
|