emu in blogjava

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  171 随笔 :: 103 文章 :: 1052 评论 :: 2 Trackbacks

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

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

Yahoo新闻主题 =================================
注意:此文为技术分析,不带任何偏向立场
由本文反汇编某厂商的病毒文件或曰恶意竞争文件而导致的
任何法律问题,本人一概不负责 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个文件,又都是静态分析...所以估计难免会有错误...还请高手指正...
posted on 2006-11-09 02:06 emu 阅读(1392) 评论(2)  编辑  收藏

评论

# re: 细数3721(雅虎助手)两年来的流氓升级史 2006-11-09 02:11 emu
做得出卑劣无耻的事,就要经得起无穷无尽的无情的拷问。  回复  更多评论
  

# re: 细数3721(雅虎助手)两年来的流氓升级史 2007-10-19 16:48 冷月独行446278
没用的,感染该病毒后并不是只有那个文件带用病毒的!所有驱动器的根目录下都有病毒文件,还有你在这台电脑上用过的U盘根目录上也会有,甚至在染毒后用这台电脑刻出来的光盘上都会1带病毒的!我在一台新本本上感染了该病毒重装了五次系统才搞定的!
首先拔掉网线,用DOS工具盘或98盘启动后对所有驱动器进行格式化操作(如果对分区操作熟悉的话先重新分区一下,不熟悉可在格式化后重启前输入FDISK /MBR对主引导区进行重写操作),然后安装操作系统和必须的驱动程序,然后安装杀毒软件(本人做IT行业十几年了,个人电脑推荐用瑞星的,服务器推荐用NORTON)并升级到最新版本,到这里最好先用GHOST备份一下,然后安装常用的软件,可能的话尽量不要用不清楚是否带毒的U盘或后期刻录的光盘上的软件安装,可到官方网站下载所需的软件或用早期确定没有病毒的光盘软件安装,如果U盘或光盘上有重要数据最后才拷贝到硬盘上杀毒处理后使用,如果没有重要数据U盘直接格掉,光盘就送给垃圾桶吧!对于硬盘上有重要数据的网友就不能对硬盘分区或对C盘进行格式化了,可用WIN98盘或DOS盘启动计算机对C盘进行格式化操作,并执行FDISK /MBR后重启计算机安装系统和必要的驱动,然后安装杀毒软件并升级到最新版本,所有过程均不得对其他驱动器上文件进行操作,包括双击某个驱动器都会使系统重新染毒!数据的处理最好先找个没有重要数据的驱动器(如F盘)点右键先格式化,然后拷贝其他驱动器上的数据到这个驱动器上,现格式化数据已经备份的驱动器,如果一个一个搞定,最后再搞自己的习惯重新整理数据就行了!切记打开驱动器不可用左键,必须用右键选择!(71975777)
  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: