网站建设维护网页设计,花卉电子商务网站建设策划书,网站建设所需的硬件设备,下载app刚才分析了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可以下载
注意:此文为技术分析,不带任何偏向立场
由…刚才分析了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可以下载
注意:此文为技术分析,不带任何偏向立场
由本文反汇编某厂商的病毒文件或曰恶意竞争文件而导致的
任何法律问题,本人一概不负责 by MJ0011 其他编号的想必是迫于压力又或是某些不可告人的原因
被撤消了(就象之前分析的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 [ediesi], 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, [ebppszSubKey]
.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, [ebppszSubKey]
.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安装程序重新安装
(urlhttp://user.3721.com/soft/patch09.htm?fb0
和http://user.3721.com/soft/patch09.htm?fb1
)
(可能针对某些清理软件的破坏)
6.
10号patch
日期 12/10/04 11:07:21
同样是一个check模块
会检查3721的组件是否正常,若被破坏,则自动释放出patch10.exe(包含在DLL资源中)并执行
部分代码:
push offset s_SAssist3721 ; %sassist3721
lea eax, [ebpvar_568]
push edi ; size_t
push eax ; char *
call ebx ; _snprintf
push esi
push offset s_SAssistRepair ; %sassistrepair.dll
lea eax, [ebppszPath]
push edi ; size_t
push eax ; char *
call ebx ; _snprintf
add esp, 20h
lea eax, [ebppszPath]
push eax ; pszPath
call ds:PathFileExistsA
;检查上面几个dll是否存在
test eax, eax
jz loc_100022D3
lea eax, [ebpBuffer]
push eax
push offset s_SPatch10_exe ; %spatch10.exe
lea eax, [ebpFileName]
push edi ; size_t
push eax ; char *
call ebx ; _snprintf
add esp, 10h
lea eax, [ebpFileName]
push eax ; lpFileName
...............
................
lea eax, [ebphObject]
push eax ; lpProcessInformation
lea eax, [ebpStartupInfo]
push eax ; lpStartupInfo
push esi ; lpCurrentDirectory
push esi ; lpEnvironment
push esi ; dwCreationFlags
push esi ; bInheritHandles
push esi ; lpThreadAttributes
lea eax, [ebpCommandLine]
push esi ; lpProcessAttributes
push eax ; lpCommandLine
push esi ; lpApplicationName
call ds:CreateProcessA
;执行patch10.exe
cmp [ebphObject], 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, [esp754hpvData]
or ecx, 0FFFFFFFFh
xor eax, eax
add esp, 10h
repne scasb
not ecx
dec ecx
lea edx, [esp744hpvData]
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, [ebppszValue]
movsd
movsd
movsd
movsd
movsw
movsb
push 3Ch
xor eax, eax
pop ecx
lea edi, [ebpvar_F5]
rep stosd
stosb
push 0Ah
mov esi, offset s_B108c94af3523 ; B108C94AF35239CAF0C2B5588CFFD3B4DB1B2FC...
pop ecx
lea edi, [ebppszSubKey]
rep movsd
movsb
push 36h
xor eax, eax
pop ecx
lea edi, [ebpvar_1E3]
rep stosd
stosw
stosb
mov esi, 82h
lea eax, [ebppszValue]
push esi ; int
push eax ; char *
call sub_10001067
lea eax, [ebppszSubKey]
push esi ; int
push eax ; char *
call sub_10001067
mov esi, offset s_No ; no
lea edi, [ebppvData]
movsw
movsb
push 40h
xor eax, eax
pop ecx
lea edi, [ebp-411h]
rep stosd
stosb
lea eax, [ebppvData]
push eax ; char *
call strlen
add esp, 14h
push eax ; cbData
lea eax, [ebppvData]
push eax ; pvData
lea eax, [ebppszValue]
push 1 ; dwType
push eax ; pszValue
lea eax, [ebppszSubKey]
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?nameNewsfilearticlesid16531 Yahoo上网助手自杀式破坏360safe的程序代码分析
完了
分析这多,累死偶也...后面几个懒得列代码了
偶把3721的老底给揭了...不知道某厂商会不会派杀手追杀偶...
其中还涉及到yahoo与tencent,很棒,360间PK,争夺客户端...
因为匆匆分析这18个文件,又都是静态分析...所以估计难免会有错误...还请高手指正...