输入您的搜索字词 提交搜索表单

这几天研究了一下雅虎助手是如何干扰360卫士的,发现如果安装雅虎助手的时候不安装3721就不会有问题,看来问题出在3721上了。于是在安装雅虎助手的时候选择安装3721,结果问题果然出现了,联想到前几天在360论坛上看到vcmfc提到雅虎助手/3721通过一个系统CBT钩子干扰“360安全卫士”和“兔子”,于是特别留意了一下系统钩子运行的情况。安装了雅虎助手之后,我先运行了一个自编的系统钩子检查程序AntiHook.exe,果然立刻发现了雅虎助手安装的钩子,见下图:

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的处理函数:
.text:5300217B ; int __stdcall YhDeleteFileA(char *)
.text:5300217B YhDeleteFileA   proc near               ; 函数名字是我命名的
               .......................................    ;省略一些代码
.text:530021C9                 mov     esi, ds:strstr
.text:530021CF                 lea     eax, [ebp+var_104]
.text:530021D5                 push    offset aCns_0   ; "CNS"
.text:530021DA                 push    eax             ; char *
.text:530021DB                 call    esi ; strstr ;名字里有没有“cns”?
.text:530021DD                 add     esp, 14h
.text:530021E0                 test    eax, eax
.text:530021E2                 pop     edi
.text:530021E3                 jnz     short loc_53002228 ;是雅虎的文件,就直接跳转到返回点
.text:530021E5                 lea     eax, [ebp+var_104]
.text:530021EB                 push    offset aYahoo   ; "YAHOO"
.text:530021F0                 push    eax             ; char *
.text:530021F1                 call    esi ; strstr  ;名字里有没有“yahoo”?
.text:530021F3                 pop     ecx
.text:530021F4                 test    eax, eax
.text:530021F6                 pop     ecx
.text:530021F7                 jnz     short loc_53002228 ;是雅虎的文件,就直接跳转到返回点
.text:530021F9                 lea     eax, [ebp+var_104]
.text:530021FF                 push    offset a3721    ; "3721"
.text:53002204                 push    eax             ; char *
.text:53002205                 call    esi ; strstr  ;名字里有没有“3721”?
.text:53002207                 pop     ecx
.text:53002208                 test    eax, eax
.text:5300220A                 pop     ecx
.text:5300220B                 jnz     short loc_53002228 ;是雅虎的文件,就直接跳转到返回点
.text:5300220D                 lea     eax, [ebp+var_104]
.text:53002213                 push    offset aV       ; "雅虎"
.text:53002218                 push    eax             ; char *
.text:53002219                 call    esi ; strstr  ;名字里有没有“雅虎”?
.text:5300221B                 pop     ecx
.text:5300221C                 test    eax, eax
.text:5300221E                 pop     ecx
.text:5300221F                 jnz     short loc_53002228 ;是雅虎的文件,就直接跳转到返回点
.text:53002221                 push    [ebp+arg_0] ;
.text:53002224                 call    ebx ; unk_530070A4,调用保存在530070A4地址处的真正的DeleteFileA
.text:53002226                 jmp     short loc_53002232
.text:53002228 ; ---------------------------------------------------------------------------
.text:53002228 ; 雅虎文件的返回点
.text:53002228 loc_53002228:                           ;
.text:53002228                                         ; 如果要删除的文件名包含yahoo的关键字,就转到这里
.text:53002228                 push    1               ;直接返回1表示成功,欺骗safe360和兔子以为文件已经删除
.text:5300222A                 pop     eax
.text:5300222B                 jmp     short loc_53002232
               .......................................    ;省略一些代码
.text:53002232
.text:53002232 loc_53002232:                           ;
.text:53002232                 pop     esi
.text:53002233                 pop     ebx
.text:53002234                 leave
.text:53002235                 retn    4
.text:53002235 YhDeleteFileA   endp

现在明白了吧,“360安全卫士”和“兔子”一旦被钩上这个钩子,正常的功能就丧失了,因为所有与雅虎助手和3721相关的文件,注册表和进程都无法删除了。做软件的人都知道,在系统中安装钩子会影响系统的性能,一般都不会采用这种方法实现软件的功能,而雅虎助手和3721使用系统钩子与自己的本身功能没有任何关系,仅仅是为了干扰别人的软件就采用这种方式安装系统钩子,是不是太过分了?这种对其它软件的破坏是赤裸裸的,就根据这一点,“360安全卫士”和“兔子”就足以将雅虎助手和3721告上法庭。

看看雅虎助手是如何迫害“兔子”和“360安全卫士”的相关推荐

  1. 全面剖析雅虎助手以及网络实名的流氓行径(6)

    10.后台运行的消息钩子 有兴趣的人可以看看图中的钩子类型,看看雅虎助手利用的大量钩子函数在干些什么.(图20) 11.植入浏览器右键菜单的"雅虎搜索"菜单项 12.雅虎助手yas ...

  2. 细数3721(雅虎助手)两年来的流氓升级史

    =================================刚才分析了Yahoo上网助手的34号patch包,找到一些同360安全卫士PK的有意思的东西,便对上网助手的patch感兴趣起来了,想 ...

  3. MJ0011技术分析:细数3721(雅虎助手)两年来的流氓升级史

    http://www.cnbeta.com/modules.php?name=News&file=article&sid=16554 ========================= ...

  4. uniaccess安全助手卸载_如何彻底卸载360

    今天,小编为小伙伴分享:彻底卸载360安全卫士的方法. 相信许多小伙伴都遇到过卸载完360安全卫士,它又会重新自动安装的情况? 那是为什么呢? 可以在360自动安装的时候,稍微关注一下. 它通过的是哪 ...

  5. 怎样使用计算机的桌面助手,360安全卫士如何整理电脑桌面?360桌面助手使用说明...

    很多电脑用户平时在收发文件或者安装软件的时候,往往都会贪图一时的方便就将它们扔在桌面.可是时间久了,文件多了,快捷图标也多了,就会让整个电脑桌面很凌乱,找个文件或者图标都要找半天.360桌面助手恰可以 ...

  6. win7关闭开机启动项_老司机给你传授 win7系统设置开机不启动360安全卫士只启动软件小助手的图文教程 -win7系统使用教程...

    win7旗舰版是用户量最大的一款操作系统:有不少人在使用中都遇见了win7系统设置开机不启动360安全卫士只启动软件小助手的问题,太多的用户是不想看到win7系统设置开机不启动360安全卫士只启动软件 ...

  7. 提取360安全卫士中的360手机助手(绿色化)

    作为一个Android手机用户,电脑里面没装几个手机助手,出门都不好意思跟人打招呼.现在已经用过了豌豆荚手机助手.腾讯的应用助手forAndroid还有就是360手机助手. 个人感觉,豌豆荚的优点是整 ...

  8. adb连接手机时,端口被360手机助手占用,无法连接的问题

    一.问题描述: adb连接手机时,端口被占用,无法连接,如下图所示: adb server version (31) doesn't match this client (40); killing.. ...

  9. QQ能上网,网页不行总解决办法

    一.网络设置的问题 这种原因比较多出现在需要手动指定IP.网关.DNS服务器联网方式下,及使用代理服务器上网的.仔细检查计算机的网络设置. 二.DNS服务器的问题 当IE无法浏览网页时,可先尝试用IP ...

  10. 作为360老员工,谈谈和周鸿祎的接触和印象

    最近看前BOSS周鸿祎的新闻不少,才在微博点评"中国首位00后CEO":无知无畏狂妄自大,该点醒他! ,被很多媒体报道和雷军的点评做比较.还有回应360借壳上市传闻,网上议论纷纷. ...

最新文章

  1. linux 符号链接攻击防御简介
  2. php安装redis扩展详细步骤 不会可以加QQ
  3. 【clickhouse】MergeTree storage require data path INCOORRECT_FILE_NAME
  4. cs寄存器 x86 特权模式_Windows操作系统管理进程和线程:内核模式和用户模式
  5. 在React / React Native中使用构造函数与getInitialState有什么区别?
  6. html5 拖放游戏,HTML5拖放API实现拖放排序的实例代码
  7. 提高网速软件测试简历,测试局域网网速的方法
  8. 开题报告、论文摘要、摘要翻译、论文结论怎么写?
  9. sonic云真机通过linux系统接入苹果手机
  10. C语言【数据结构】栈和队列【OJ题(C++)、选择题】
  11. 屏幕后期特效——Blood(角色死亡闪血)
  12. 苹果计算机转换,便携毕亚兹苹果计算机转换器,超极本的少接口都能转换身份...
  13. springboot(入门后进阶)启动-事件-事件监控-系统参数
  14. 最近组织游泳社的体会
  15. Python处理今日头条保存的无法打开图片,今日头条web图片转换为JPG图片
  16. Zoom网页端,电脑客户端,平板手机端有什么区别与应用
  17. 全国个别城市ID代码
  18. 如何从零开始用 C++ 开发一款游戏引擎?
  19. 教师网络计算机研修培训总结,教师远程培训个人研修总结
  20. 生活随记-给亲戚讲她父母的往事

热门文章

  1. 树莓派安装centos系统
  2. python问卷调查数据分析_如何用excel统计调查问卷
  3. 前端测试之用户体验测试
  4. MSP430+CC2500低功耗注意细节
  5. Pygame教程系列三:绘制文本篇
  6. 远程桌面连接下拉框IP地址删除
  7. 基于FreeMarker+aspose的Word模板制作及打印
  8. Cuda与GPU显卡驱动版本一览
  9. 如何成功移植cleanflight、INAV到keil开发环境
  10. cad详图怎么画_CAD标准图框怎么画