天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧安全 >> 正文

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

2008-2-18cnbeta佚名

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

  
  =================================
  注意:此文为技术分析,不带任何偏向立场
  由本文反汇编某厂商的病毒文件或曰恶意竞争文件而导致的
  任何法律问题,本人一概不负责 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个文件,又都是静态分析...所以估计难免会有错误...还请高手指正...

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com

关注天下网吧微信,了解网吧网咖经营管理,安装维护:


本文来源:cnbeta 作者:佚名

声明
本文来源地址:0
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com.,本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行