-
-
[旧帖] 非常棘手的自校验 0.00雪花
-
发表于: 2007-4-7 17:32 3919
-
小弟也曾破过几个小软件,近日应朋友之求帮其破一软件。却遇到了非常棘手的带自校验的软件,求高人指点。
软件加的是ASPack 2.12壳,用工具轻松脱掉。但一运行,便退出,猜其有自校验,于是用OD载入
刚载入的代码:
00432BB9 >/$ 55 PUSH EBP
00432BBA |. 8BEC MOV EBP,ESP
00432BBC |. 6A FF PUSH -1
00432BBE |. 68 10734700 PUSH 1111111.00477310
00432BC3 |. 68 B48A4300 PUSH 1111111.00438AB4 ; SE 处理程序安装
00432BC8 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00432BCE |. 50 PUSH EAX
00432BCF |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP
00432BD6 |. 83EC 58 SUB ESP,58
00432BD9 |. 53 PUSH EBX
00432BDA |. 56 PUSH ESI
00432BDB |. 57 PUSH EDI
00432BDC |. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
00432BDF |. FF15 CCD24600 CALL DWORD PTR DS:[<&kernel32.GetVersion>; kernel32.GetVersion
00432BE5 |. 33D2 XOR EDX,EDX
00432BE7 |. 8AD4 MOV DL,AH
00432BE9 |. 8915 CC074900 MOV DWORD PTR DS:[4907CC],EDX
00432BEF |. 8BC8 MOV ECX,EAX
00432BF1 |. 81E1 FF000000 AND ECX,0FF
00432BF7 |. 890D C8074900 MOV DWORD PTR DS:[4907C8],ECX
00432BFD |. C1E1 08 SHL ECX,8
00432C00 |. 03CA ADD ECX,EDX
00432C02 |. 890D C4074900 MOV DWORD PTR DS:[4907C4],ECX
00432C08 |. C1E8 10 SHR EAX,10
00432C0B |. A3 C0074900 MOV DWORD PTR DS:[4907C0],EAX
00432C10 |. 6A 01 PUSH 1
00432C12 |. E8 234C0000 CALL 1111111.0043783A
00432C17 |. 59 POP ECX
00432C18 |. 85C0 TEST EAX,EAX
00432C1A 75 08 JNZ SHORT 1111111.00432C24
00432C1C |. 6A 1C PUSH 1C
00432C1E |. E8 C3000000 CALL 1111111.00432CE6
00432C23 |. 59 POP ECX
00432C24 |> E8 03430000 CALL 1111111.00436F2C
00432C29 |. 85C0 TEST EAX,EAX
00432C2B 75 08 JNZ SHORT 1111111.00432C35
00432C2D |. 6A 10 PUSH 10
00432C2F |. E8 B2000000 CALL 1111111.00432CE6
00432C34 |. 59 POP ECX
00432C35 |> 33F6 XOR ESI,ESI
00432C37 |. 8975 FC MOV DWORD PTR SS:[EBP-4],ESI
00432C3A |. E8 DE7C0000 CALL 1111111.0043A91D
00432C3F |. FF15 E0D14600 CALL DWORD PTR DS:[<&kernel32.GetCommand>; [GetCommandLineA
00432C45 |. A3 F41E4900 MOV DWORD PTR DS:[491EF4],EAX
00432C4A |. E8 9C7B0000 CALL 1111111.0043A7EB
00432C4F |. A3 B0074900 MOV DWORD PTR DS:[4907B0],EAX
00432C54 |. E8 45790000 CALL 1111111.0043A59E
00432C59 |. E8 87780000 CALL 1111111.0043A4E5
00432C5E |. E8 A7000000 CALL 1111111.00432D0A
00432C63 |. 8975 D0 MOV DWORD PTR SS:[EBP-30],ESI
00432C66 |. 8D45 A4 LEA EAX,DWORD PTR SS:[EBP-5C]
00432C69 |. 50 PUSH EAX ; /pStartupinfo
00432C6A |. FF15 E4D14600 CALL DWORD PTR DS:[<&kernel32.GetStartup>; \GetStartupInfoA
00432C70 |. E8 18780000 CALL 1111111.0043A48D
00432C75 |. 8945 9C MOV DWORD PTR SS:[EBP-64],EAX
00432C78 |. F645 D0 01 TEST BYTE PTR SS:[EBP-30],1
00432C7C |. 74 06 JE SHORT 1111111.00432C84
00432C7E |. 0FB745 D4 MOVZX EAX,WORD PTR SS:[EBP-2C]
00432C82 |. EB 03 JMP SHORT 1111111.00432C87
00432C84 |> 6A 0A PUSH 0A
00432C86 |. 58 POP EAX
00432C87 |> 50 PUSH EAX
00432C88 |. FF75 9C PUSH DWORD PTR SS:[EBP-64]
00432C8B |. 56 PUSH ESI
00432C8C |. 56 PUSH ESI ; /pModule
00432C8D |. FF15 E4D24600 CALL DWORD PTR DS:[<&kernel32.GetModuleH>; \GetModuleHandleA
00432C93 |. 50 PUSH EAX
00432C94 |. E8 0E020100 CALL 1111111.00442EA7 ; 出错
用F8单步到432C94出错,估计有防OD调试的代码。
在432C94下断,重新载入,按F9,到断点,按F7进入
00442EA7 /$ FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00442EAB |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00442EAF |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00442EB3 |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00442EB7 |. E8 E3AD0000 CALL 1111111.0044DC9F ; 出错
00442EBC \. C2 1000 RETN 10
00442EBF /$ E8 CBD40100 CALL 1111111.0046038F
00442EC4 |. 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
00442EC8 |. 85C9 TEST ECX,ECX
00442ECA |. 8848 14 MOV BYTE PTR DS:[EAX+14],CL
00442ECD |. 75 08 JNZ SHORT 1111111.00442ED7
00442ECF |. 6A FD PUSH -3
00442ED1 |. E8 2E24FFFF CALL 1111111.00435304
00442ED6 |. 59 POP ECX
00442ED7 |> 6A 01 PUSH 1
00442ED9 |. 58 POP EAX
00442EDA \. C2 0800 RETN 8
再按F8单步,到442EB7时,再次出错,取消上个断点,在此下断。重新载入F9运行到断点
F7进入
0044DC9F /$ 53 PUSH EBX
0044DCA0 |. 56 PUSH ESI
0044DCA1 |. 57 PUSH EDI
0044DCA2 |. 83CB FF OR EBX,FFFFFFFF
0044DCA5 |. E8 A7CDFFFF CALL 1111111.0044AA51
0044DCAA |. 8BF0 MOV ESI,EAX
0044DCAC |. E8 DE260100 CALL 1111111.0046038F
0044DCB1 |. FF7424 1C PUSH DWORD PTR SS:[ESP+1C]
0044DCB5 |. 8B78 04 MOV EDI,DWORD PTR DS:[EAX+4]
0044DCB8 |. FF7424 1C PUSH DWORD PTR SS:[ESP+1C]
0044DCBC |. FF7424 1C PUSH DWORD PTR SS:[ESP+1C]
0044DCC0 |. FF7424 1C PUSH DWORD PTR SS:[ESP+1C]
0044DCC4 |. E8 404C0100 CALL 1111111.00462909
0044DCC9 |. 85C0 TEST EAX,EAX
0044DCCB |. 74 3B JE SHORT 1111111.0044DD08
0044DCCD |. 85FF TEST EDI,EDI
0044DCCF |. 74 0E JE SHORT 1111111.0044DCDF
0044DCD1 |. 8B07 MOV EAX,DWORD PTR DS:[EDI]
0044DCD3 |. 8BCF MOV ECX,EDI
0044DCD5 |. FF90 84000000 CALL DWORD PTR DS:[EAX+84]
0044DCDB |. 85C0 TEST EAX,EAX
0044DCDD |. 74 29 JE SHORT 1111111.0044DD08
0044DCDF |> 8B06 MOV EAX,DWORD PTR DS:[ESI]
0044DCE1 |. 8BCE MOV ECX,ESI
0044DCE3 |. FF50 50 CALL DWORD PTR DS:[EAX+50] ; 出错
0044DCE6 |. 85C0 TEST EAX,EAX
0044DCE8 |. 75 15 JNZ SHORT 1111111.0044DCFF
0044DCEA |. 8B4E 1C MOV ECX,DWORD PTR DS:[ESI+1C]
0044DCED |. 85C9 TEST ECX,ECX
0044DCEF |. 74 05 JE SHORT 1111111.0044DCF6
0044DCF1 |. 8B01 MOV EAX,DWORD PTR DS:[ECX]
0044DCF3 |. FF50 58 CALL DWORD PTR DS:[EAX+58]
0044DCF6 |> 8B06 MOV EAX,DWORD PTR DS:[ESI]
0044DCF8 |. 8BCE MOV ECX,ESI
0044DCFA |. FF50 68 CALL DWORD PTR DS:[EAX+68]
0044DCFD |. EB 07 JMP SHORT 1111111.0044DD06
0044DCFF |> 8B06 MOV EAX,DWORD PTR DS:[ESI]
0044DD01 |. 8BCE MOV ECX,ESI
0044DD03 |. FF50 54 CALL DWORD PTR DS:[EAX+54]
0044DD06 |> 8BD8 MOV EBX,EAX
0044DD08 |> E8 3F820100 CALL 1111111.00465F4C
0044DD0D |. 5F POP EDI
0044DD0E |. 8BC3 MOV EAX,EBX
0044DD10 |. 5E POP ESI
0044DD11 |. 5B POP EBX
0044DD12 \. C2 1000 RETN 10
单步到44DCE3,再次出错,重复以上步聚,进入出错的CALL
00420E30 . 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00420E36 . 6A FF PUSH -1
00420E38 . 68 1BA44600 PUSH 1111111.0046A41B
00420E3D . 50 PUSH EAX
00420E3E . 64:8925 00000>MOV DWORD PTR FS:[0],ESP
00420E45 . 81EC B0000000 SUB ESP,0B0
00420E4B . 53 PUSH EBX
00420E4C . 55 PUSH EBP
00420E4D . 56 PUSH ESI
00420E4E . 57 PUSH EDI
00420E4F . 8BE9 MOV EBP,ECX
00420E51 . 6A 00 PUSH 0
00420E53 . E8 E5420400 CALL 1111111.0046513D
00420E58 . 85C0 TEST EAX,EAX
00420E5A 75 11 JNZ SHORT 1111111.00420E6D
00420E5C . 6A FF PUSH -1
00420E5E . 50 PUSH EAX
00420E5F . 6A 68 PUSH 68
00420E61 . E8 C1180300 CALL 1111111.00452727
00420E66 . 33C0 XOR EAX,EAX
00420E68 . E9 E2060000 JMP 1111111.0042154F
00420E6D > 68 F8854800 PUSH 1111111.004885F8 ; /FileName = "BugReport.dll"
00420E72 . FF15 84D34600 CALL DWORD PTR DS:[<&kernel32.LoadLibrar>; \LoadLibraryA
00420E78 . 85C0 TEST EAX,EAX
00420E7A . 75 13 JNZ SHORT 1111111.00420E8F
00420E7C . 50 PUSH EAX ; /Arg3
00420E7D . 50 PUSH EAX ; |Arg2
00420E7E . 68 E0854800 PUSH 1111111.004885E0 ; |Arg1 = 004885E0
00420E83 . E8 67180300 CALL 1111111.004526EF ; \1111111.004526EF
00420E88 . 33C0 XOR EAX,EAX
00420E8A . E9 C0060000 JMP 1111111.0042154F
00420E8F > 68 CC854800 PUSH 1111111.004885CC ; /ProcNameOrOrdinal = "StartMyException"
00420E94 . 50 PUSH EAX ; |hModule
00420E95 . FF15 88D34600 CALL DWORD PTR DS:[<&kernel32.GetProcAdd>; \GetProcAddress
00420E9B . 8BF8 MOV EDI,EAX
00420E9D . A1 80974800 MOV EAX,DWORD PTR DS:[489780]
00420EA2 . 894424 10 MOV DWORD PTR SS:[ESP+10],EAX
00420EA6 . 68 81000000 PUSH 81 ; /Arg1 = 00000081
00420EAB . 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14] ; |
00420EAF . C78424 CC0000>MOV DWORD PTR SS:[ESP+CC],0 ; |
00420EBA . E8 41990200 CALL 1111111.0044A800 ; \1111111.0044A800
00420EBF . 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
00420EC3 . 51 PUSH ECX
00420EC4 . 68 AC764800 PUSH 1111111.004876AC ; ASCII "VolleyMail"
00420EC9 . FFD7 CALL EDI
00420ECB . 83C4 08 ADD ESP,8
00420ECE . 8D9D C8000000 LEA EBX,DWORD PTR SS:[EBP+C8]
00420ED4 . 896C24 30 MOV DWORD PTR SS:[ESP+30],EBP
00420ED8 . 68 04010000 PUSH 104 ; /BufSize = 104 (260.)
00420EDD . 53 PUSH EBX ; |Buffer
00420EDE . E8 29E80100 CALL <JMP.&WS2_32.gethostname> ; \gethostname
00420EE3 . 803B 00 CMP BYTE PTR DS:[EBX],0
00420EE6 75 22 JNZ SHORT 1111111.00420F0A
00420EE8 . BF B8854800 MOV EDI,1111111.004885B8 ; ASCII "mail.volleymail.com"
00420EED . 83C9 FF OR ECX,FFFFFFFF
00420EF0 . 33C0 XOR EAX,EAX
00420EF2 . F2:AE REPNE SCAS BYTE PTR ES:[EDI]
00420EF4 . F7D1 NOT ECX
00420EF6 . 2BF9 SUB EDI,ECX
00420EF8 . 8BD1 MOV EDX,ECX
00420EFA . 8BF7 MOV ESI,EDI
00420EFC . 8BFB MOV EDI,EBX
00420EFE . C1E9 02 SHR ECX,2
00420F01 . F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
00420F03 . 8BCA MOV ECX,EDX
00420F05 . 83E1 03 AND ECX,3
00420F08 . F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
00420F0A > 8BCD MOV ECX,EBP
00420F0C . E8 BC0F0400 CALL 1111111.00461ECD
00420F11 . 6A 00 PUSH 0
00420F13 . 68 FFF3EF00 PUSH 0EFF3FF
00420F18 . 8BCD MOV ECX,EBP
00420F1A . E8 370F0400 CALL 1111111.00461E56
00420F1F . 6A 01 PUSH 1 ; /Arg2 = 00000001
00420F21 . 6A 00 PUSH 0 ; |Arg1 = 00000000
00420F23 . E8 386E0000 CALL 1111111.00427D60 ; \1111111.00427D60
00420F28 . 8B45 78 MOV EAX,DWORD PTR SS:[EBP+78]
00420F2B . 50 PUSH EAX ; /MutexName
00420F2C . 6A 01 PUSH 1 ; |InitialOwner = TRUE
00420F2E . 6A 00 PUSH 0 ; |pSecurity = NULL
00420F30 . FF15 F8D24600 CALL DWORD PTR DS:[<&kernel32.CreateMute>; \CreateMutexA
00420F36 . FF15 FCD24600 CALL DWORD PTR DS:[<&kernel32.GetLastErr>; [GetLastError
00420F3C . 3D B7000000 CMP EAX,0B7
00420F41 . 75 19 JNZ SHORT 1111111.00420F5C
00420F43 . 6A 10 PUSH 10 ; /Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
00420F45 . 68 AC854800 PUSH 1111111.004885AC ; |Title = "错误提示"
00420F4A . 68 88854800 PUSH 1111111.00488588 ; |Text = "VolleyMail邮件群发专家已经在运行!"
00420F4F . 6A 00 PUSH 0 ; |hOwner = NULL
00420F51 . FF15 68D64600 CALL DWORD PTR DS:[<&user32.MessageBoxA>>; \MessageBoxA
00420F57 . E9 67050000 JMP 1111111.004214C3
00420F5C > 6A 68 PUSH 68
00420F5E . E8 26540200 CALL 1111111.00446389
00420F63 . 83C4 04 ADD ESP,4
00420F66 . 894424 28 MOV DWORD PTR SS:[ESP+28],EAX
00420F6A . 85C0 TEST EAX,EAX
00420F6C . C68424 C80000>MOV BYTE PTR SS:[ESP+C8],1
00420F74 . 74 0D JE SHORT 1111111.00420F83
00420F76 . 6A 00 PUSH 0
00420F78 . 8BC8 MOV ECX,EAX
00420F7A . E8 D1BAFFFF CALL 1111111.0041CA50
00420F7F . 8BF0 MOV ESI,EAX
00420F81 . EB 02 JMP SHORT 1111111.00420F85
00420F83 > 33F6 XOR ESI,ESI
00420F85 > 6A 00 PUSH 0
00420F87 . 68 DA000000 PUSH 0DA
00420F8C . 8BCE MOV ECX,ESI
00420F8E . C68424 D00000>MOV BYTE PTR SS:[ESP+D0],0
00420F96 . E8 1DB40200 CALL 1111111.0044C3B8
00420F9B . 6A 05 PUSH 5
00420F9D . 8BCE MOV ECX,ESI
00420F9F . E8 AF890200 CALL 1111111.00449953
00420FA4 . 8D4C24 3C LEA ECX,DWORD PTR SS:[ESP+3C]
00420FA8 . E8 A0A30200 CALL 1111111.0044B34D
00420FAD . 68 1C664800 PUSH 1111111.0048661C ; ASCII "Cache.MX"
00420FB2 . 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
00420FB6 . 68 50E54800 PUSH 1111111.0048E550
00420FBB . 51 PUSH ECX
00420FBC . C68424 D40000>MOV BYTE PTR SS:[ESP+D4],2
00420FC4 . E8 1B950200 CALL 1111111.0044A4E4
00420FC9 . 8B00 MOV EAX,DWORD PTR DS:[EAX]
00420FCB . 6A 00 PUSH 0 ; /Arg3 = 00000000
00420FCD . 68 40800000 PUSH 8040 ; |Arg2 = 00008040
00420FD2 . 50 PUSH EAX ; |Arg1
00420FD3 . 8D4C24 48 LEA ECX,DWORD PTR SS:[ESP+48] ; |
00420FD7 . C68424 D40000>MOV BYTE PTR SS:[ESP+D4],3 ; |
00420FDF . E8 DEA30200 CALL 1111111.0044B3C2 ; \1111111.0044B3C2
00420FE4 . 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
00420FE8 . 8BF8 MOV EDI,EAX
00420FEA . C68424 C80000>MOV BYTE PTR SS:[ESP+C8],2
00420FF2 . E8 58920200 CALL 1111111.0044A24F
00420FF7 . 85FF TEST EDI,EDI
00420FF9 . 74 48 JE SHORT 1111111.00421043
00420FFB . 8D4C24 3C LEA ECX,DWORD PTR SS:[ESP+3C]
00420FFF . E8 65AB0200 CALL 1111111.0044BB69
00421004 . 8BF8 MOV EDI,EAX
00421006 . B8 25499224 MOV EAX,24924925
0042100B . F7E7 MUL EDI
0042100D . 8BC7 MOV EAX,EDI
0042100F . 57 PUSH EDI
00421010 . 2BC2 SUB EAX,EDX
00421012 . D1E8 SHR EAX,1
00421014 . 03C2 ADD EAX,EDX
00421016 . C1E8 06 SHR EAX,6
00421019 . 8985 08020000 MOV DWORD PTR SS:[EBP+208],EAX
0042101F . E8 65530200 CALL 1111111.00446389
00421024 . 8B5424 40 MOV EDX,DWORD PTR SS:[ESP+40]
00421028 . 83C4 04 ADD ESP,4
0042102B . 8D4C24 3C LEA ECX,DWORD PTR SS:[ESP+3C]
0042102F . 8985 00020000 MOV DWORD PTR SS:[EBP+200],EAX
00421035 . 57 PUSH EDI
00421036 . 50 PUSH EAX
00421037 . FF52 34 CALL DWORD PTR DS:[EDX+34]
0042103A . 8D4C24 3C LEA ECX,DWORD PTR SS:[ESP+3C]
0042103E . E8 AFA60200 CALL 1111111.0044B6F2
00421043 68 586A4800 PUSH 1111111.00486A58 ; ASCII "InitProg.dll"
00421048 FF15 84D34600 CALL DWORD PTR DS:[<&kernel32.LoadLibrar>; kernel32.LoadLibraryA 把DLL脱壳后,一运行到此,OD就出错,无法再调试,隐藏也不行。
0042104E . 8BD8 MOV EBX,EAX
00421050 . 85DB TEST EBX,EBX
00421052 75 11 JNZ SHORT 1111111.00421065
00421054 . 50 PUSH EAX ; /Arg3
00421055 . 50 PUSH EAX ; |Arg2
00421056 . 68 70794800 PUSH 1111111.00487970 ; |Arg1 = 00487970
0042105B . E8 8F160300 CALL 1111111.004526EF ; \1111111.004526EF
00421060 . E9 4D040000 JMP 1111111.004214B2
00421065 > 8B3D 88D34600 MOV EDI,DWORD PTR DS:[<&kernel32.GetProc>; kernel32.GetProcAddress
0042106B . 68 7C854800 PUSH 1111111.0048857C ; /ProcNameOrOrdinal = "InitEnvir"
00421070 . 53 PUSH EBX ; |hModule
00421071 . FFD7 CALL EDI ; \GetProcAddress
00421073 . 8D4C24 54 LEA ECX,DWORD PTR SS:[ESP+54]
00421077 . 68 6C854800 PUSH 1111111.0048856C ; ASCII "VolleyMail.exe"
0042107C . 8D5424 34 LEA EDX,DWORD PTR SS:[ESP+34]
00421080 . 51 PUSH ECX
00421081 . 52 PUSH EDX
00421082 . C74424 60 D8D>MOV DWORD PTR SS:[ESP+60],0DDD8
0042108A . FFD0 CALL EAX ; 进入发现来到了程序的一个DLL中,自校验就是在这个DLL中完成的。
0042108C . 85C0 TEST EAX,EAX
0042108E . 75 11 JNZ SHORT 1111111.004210A1
00421090 . B9 C4090000 MOV ECX,9C4
00421095 . BF 2300FF00 MOV EDI,0FF0023
0042109A . F3:AB REP STOS DWORD PTR ES:[EDI]
0042109C . E9 11040000 JMP 1111111.004214B2
004210A1 > 68 5C854800 PUSH 1111111.0048855C ; ASCII "GetMachineCode"
004210A6 . 53 PUSH EBX
004210A7 . FFD7 CALL EDI
004210A9 . 8BD0 MOV EDX,EAX
跟入42108A的CALL
00D22040 > 6A FF PUSH -1
00D22042 68 4D8ED300 PUSH InitProg.00D38E4D
00D22047 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
00D2204D 50 PUSH EAX
00D2204E 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
00D22055 81EC B0000000 SUB ESP,0B0
00D2205B 53 PUSH EBX
00D2205C 55 PUSH EBP
00D2205D 68 8001D400 PUSH InitProg.00D40180 ; ASCII "etide.51.net"
00D22062 E8 E9FDFFFF CALL InitProg.00D21E50
00D22067 8B8424 CC000000 MOV EAX,DWORD PTR SS:[ESP+CC]
00D2206E 8B8C24 C8000000 MOV ECX,DWORD PTR SS:[ESP+C8]
00D22075 68 80000000 PUSH 80
00D2207A 8D5424 3C LEA EDX,DWORD PTR SS:[ESP+3C]
00D2207E 52 PUSH EDX
00D2207F 6A 00 PUSH 0
00D22081 8901 MOV DWORD PTR DS:[ECX],EAX
00D22083 FF15 38A2D300 CALL DWORD PTR DS:[D3A238] ; kernel32.GetModuleFileNameA
00D22089 8D4424 38 LEA EAX,DWORD PTR SS:[ESP+38]
00D2208D 50 PUSH EAX
00D2208E 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00D22092 E8 AF180100 CALL InitProg.00D33946
00D22097 6A 5C PUSH 5C
00D22099 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00D2209D C78424 C4000000>MOV DWORD PTR SS:[ESP+C4],0
00D220A8 E8 5FD10000 CALL InitProg.00D2F20C
00D220AD 40 INC EAX
00D220AE 50 PUSH EAX
00D220AF 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00D220B3 51 PUSH ECX
00D220B4 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
00D220B8 E8 D7D00000 CALL InitProg.00D2F194
软件加的是ASPack 2.12壳,用工具轻松脱掉。但一运行,便退出,猜其有自校验,于是用OD载入
刚载入的代码:
00432BB9 >/$ 55 PUSH EBP
00432BBA |. 8BEC MOV EBP,ESP
00432BBC |. 6A FF PUSH -1
00432BBE |. 68 10734700 PUSH 1111111.00477310
00432BC3 |. 68 B48A4300 PUSH 1111111.00438AB4 ; SE 处理程序安装
00432BC8 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00432BCE |. 50 PUSH EAX
00432BCF |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP
00432BD6 |. 83EC 58 SUB ESP,58
00432BD9 |. 53 PUSH EBX
00432BDA |. 56 PUSH ESI
00432BDB |. 57 PUSH EDI
00432BDC |. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP
00432BDF |. FF15 CCD24600 CALL DWORD PTR DS:[<&kernel32.GetVersion>; kernel32.GetVersion
00432BE5 |. 33D2 XOR EDX,EDX
00432BE7 |. 8AD4 MOV DL,AH
00432BE9 |. 8915 CC074900 MOV DWORD PTR DS:[4907CC],EDX
00432BEF |. 8BC8 MOV ECX,EAX
00432BF1 |. 81E1 FF000000 AND ECX,0FF
00432BF7 |. 890D C8074900 MOV DWORD PTR DS:[4907C8],ECX
00432BFD |. C1E1 08 SHL ECX,8
00432C00 |. 03CA ADD ECX,EDX
00432C02 |. 890D C4074900 MOV DWORD PTR DS:[4907C4],ECX
00432C08 |. C1E8 10 SHR EAX,10
00432C0B |. A3 C0074900 MOV DWORD PTR DS:[4907C0],EAX
00432C10 |. 6A 01 PUSH 1
00432C12 |. E8 234C0000 CALL 1111111.0043783A
00432C17 |. 59 POP ECX
00432C18 |. 85C0 TEST EAX,EAX
00432C1A 75 08 JNZ SHORT 1111111.00432C24
00432C1C |. 6A 1C PUSH 1C
00432C1E |. E8 C3000000 CALL 1111111.00432CE6
00432C23 |. 59 POP ECX
00432C24 |> E8 03430000 CALL 1111111.00436F2C
00432C29 |. 85C0 TEST EAX,EAX
00432C2B 75 08 JNZ SHORT 1111111.00432C35
00432C2D |. 6A 10 PUSH 10
00432C2F |. E8 B2000000 CALL 1111111.00432CE6
00432C34 |. 59 POP ECX
00432C35 |> 33F6 XOR ESI,ESI
00432C37 |. 8975 FC MOV DWORD PTR SS:[EBP-4],ESI
00432C3A |. E8 DE7C0000 CALL 1111111.0043A91D
00432C3F |. FF15 E0D14600 CALL DWORD PTR DS:[<&kernel32.GetCommand>; [GetCommandLineA
00432C45 |. A3 F41E4900 MOV DWORD PTR DS:[491EF4],EAX
00432C4A |. E8 9C7B0000 CALL 1111111.0043A7EB
00432C4F |. A3 B0074900 MOV DWORD PTR DS:[4907B0],EAX
00432C54 |. E8 45790000 CALL 1111111.0043A59E
00432C59 |. E8 87780000 CALL 1111111.0043A4E5
00432C5E |. E8 A7000000 CALL 1111111.00432D0A
00432C63 |. 8975 D0 MOV DWORD PTR SS:[EBP-30],ESI
00432C66 |. 8D45 A4 LEA EAX,DWORD PTR SS:[EBP-5C]
00432C69 |. 50 PUSH EAX ; /pStartupinfo
00432C6A |. FF15 E4D14600 CALL DWORD PTR DS:[<&kernel32.GetStartup>; \GetStartupInfoA
00432C70 |. E8 18780000 CALL 1111111.0043A48D
00432C75 |. 8945 9C MOV DWORD PTR SS:[EBP-64],EAX
00432C78 |. F645 D0 01 TEST BYTE PTR SS:[EBP-30],1
00432C7C |. 74 06 JE SHORT 1111111.00432C84
00432C7E |. 0FB745 D4 MOVZX EAX,WORD PTR SS:[EBP-2C]
00432C82 |. EB 03 JMP SHORT 1111111.00432C87
00432C84 |> 6A 0A PUSH 0A
00432C86 |. 58 POP EAX
00432C87 |> 50 PUSH EAX
00432C88 |. FF75 9C PUSH DWORD PTR SS:[EBP-64]
00432C8B |. 56 PUSH ESI
00432C8C |. 56 PUSH ESI ; /pModule
00432C8D |. FF15 E4D24600 CALL DWORD PTR DS:[<&kernel32.GetModuleH>; \GetModuleHandleA
00432C93 |. 50 PUSH EAX
00432C94 |. E8 0E020100 CALL 1111111.00442EA7 ; 出错
用F8单步到432C94出错,估计有防OD调试的代码。
在432C94下断,重新载入,按F9,到断点,按F7进入
00442EA7 /$ FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00442EAB |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00442EAF |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00442EB3 |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00442EB7 |. E8 E3AD0000 CALL 1111111.0044DC9F ; 出错
00442EBC \. C2 1000 RETN 10
00442EBF /$ E8 CBD40100 CALL 1111111.0046038F
00442EC4 |. 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
00442EC8 |. 85C9 TEST ECX,ECX
00442ECA |. 8848 14 MOV BYTE PTR DS:[EAX+14],CL
00442ECD |. 75 08 JNZ SHORT 1111111.00442ED7
00442ECF |. 6A FD PUSH -3
00442ED1 |. E8 2E24FFFF CALL 1111111.00435304
00442ED6 |. 59 POP ECX
00442ED7 |> 6A 01 PUSH 1
00442ED9 |. 58 POP EAX
00442EDA \. C2 0800 RETN 8
再按F8单步,到442EB7时,再次出错,取消上个断点,在此下断。重新载入F9运行到断点
F7进入
0044DC9F /$ 53 PUSH EBX
0044DCA0 |. 56 PUSH ESI
0044DCA1 |. 57 PUSH EDI
0044DCA2 |. 83CB FF OR EBX,FFFFFFFF
0044DCA5 |. E8 A7CDFFFF CALL 1111111.0044AA51
0044DCAA |. 8BF0 MOV ESI,EAX
0044DCAC |. E8 DE260100 CALL 1111111.0046038F
0044DCB1 |. FF7424 1C PUSH DWORD PTR SS:[ESP+1C]
0044DCB5 |. 8B78 04 MOV EDI,DWORD PTR DS:[EAX+4]
0044DCB8 |. FF7424 1C PUSH DWORD PTR SS:[ESP+1C]
0044DCBC |. FF7424 1C PUSH DWORD PTR SS:[ESP+1C]
0044DCC0 |. FF7424 1C PUSH DWORD PTR SS:[ESP+1C]
0044DCC4 |. E8 404C0100 CALL 1111111.00462909
0044DCC9 |. 85C0 TEST EAX,EAX
0044DCCB |. 74 3B JE SHORT 1111111.0044DD08
0044DCCD |. 85FF TEST EDI,EDI
0044DCCF |. 74 0E JE SHORT 1111111.0044DCDF
0044DCD1 |. 8B07 MOV EAX,DWORD PTR DS:[EDI]
0044DCD3 |. 8BCF MOV ECX,EDI
0044DCD5 |. FF90 84000000 CALL DWORD PTR DS:[EAX+84]
0044DCDB |. 85C0 TEST EAX,EAX
0044DCDD |. 74 29 JE SHORT 1111111.0044DD08
0044DCDF |> 8B06 MOV EAX,DWORD PTR DS:[ESI]
0044DCE1 |. 8BCE MOV ECX,ESI
0044DCE3 |. FF50 50 CALL DWORD PTR DS:[EAX+50] ; 出错
0044DCE6 |. 85C0 TEST EAX,EAX
0044DCE8 |. 75 15 JNZ SHORT 1111111.0044DCFF
0044DCEA |. 8B4E 1C MOV ECX,DWORD PTR DS:[ESI+1C]
0044DCED |. 85C9 TEST ECX,ECX
0044DCEF |. 74 05 JE SHORT 1111111.0044DCF6
0044DCF1 |. 8B01 MOV EAX,DWORD PTR DS:[ECX]
0044DCF3 |. FF50 58 CALL DWORD PTR DS:[EAX+58]
0044DCF6 |> 8B06 MOV EAX,DWORD PTR DS:[ESI]
0044DCF8 |. 8BCE MOV ECX,ESI
0044DCFA |. FF50 68 CALL DWORD PTR DS:[EAX+68]
0044DCFD |. EB 07 JMP SHORT 1111111.0044DD06
0044DCFF |> 8B06 MOV EAX,DWORD PTR DS:[ESI]
0044DD01 |. 8BCE MOV ECX,ESI
0044DD03 |. FF50 54 CALL DWORD PTR DS:[EAX+54]
0044DD06 |> 8BD8 MOV EBX,EAX
0044DD08 |> E8 3F820100 CALL 1111111.00465F4C
0044DD0D |. 5F POP EDI
0044DD0E |. 8BC3 MOV EAX,EBX
0044DD10 |. 5E POP ESI
0044DD11 |. 5B POP EBX
0044DD12 \. C2 1000 RETN 10
单步到44DCE3,再次出错,重复以上步聚,进入出错的CALL
00420E30 . 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
00420E36 . 6A FF PUSH -1
00420E38 . 68 1BA44600 PUSH 1111111.0046A41B
00420E3D . 50 PUSH EAX
00420E3E . 64:8925 00000>MOV DWORD PTR FS:[0],ESP
00420E45 . 81EC B0000000 SUB ESP,0B0
00420E4B . 53 PUSH EBX
00420E4C . 55 PUSH EBP
00420E4D . 56 PUSH ESI
00420E4E . 57 PUSH EDI
00420E4F . 8BE9 MOV EBP,ECX
00420E51 . 6A 00 PUSH 0
00420E53 . E8 E5420400 CALL 1111111.0046513D
00420E58 . 85C0 TEST EAX,EAX
00420E5A 75 11 JNZ SHORT 1111111.00420E6D
00420E5C . 6A FF PUSH -1
00420E5E . 50 PUSH EAX
00420E5F . 6A 68 PUSH 68
00420E61 . E8 C1180300 CALL 1111111.00452727
00420E66 . 33C0 XOR EAX,EAX
00420E68 . E9 E2060000 JMP 1111111.0042154F
00420E6D > 68 F8854800 PUSH 1111111.004885F8 ; /FileName = "BugReport.dll"
00420E72 . FF15 84D34600 CALL DWORD PTR DS:[<&kernel32.LoadLibrar>; \LoadLibraryA
00420E78 . 85C0 TEST EAX,EAX
00420E7A . 75 13 JNZ SHORT 1111111.00420E8F
00420E7C . 50 PUSH EAX ; /Arg3
00420E7D . 50 PUSH EAX ; |Arg2
00420E7E . 68 E0854800 PUSH 1111111.004885E0 ; |Arg1 = 004885E0
00420E83 . E8 67180300 CALL 1111111.004526EF ; \1111111.004526EF
00420E88 . 33C0 XOR EAX,EAX
00420E8A . E9 C0060000 JMP 1111111.0042154F
00420E8F > 68 CC854800 PUSH 1111111.004885CC ; /ProcNameOrOrdinal = "StartMyException"
00420E94 . 50 PUSH EAX ; |hModule
00420E95 . FF15 88D34600 CALL DWORD PTR DS:[<&kernel32.GetProcAdd>; \GetProcAddress
00420E9B . 8BF8 MOV EDI,EAX
00420E9D . A1 80974800 MOV EAX,DWORD PTR DS:[489780]
00420EA2 . 894424 10 MOV DWORD PTR SS:[ESP+10],EAX
00420EA6 . 68 81000000 PUSH 81 ; /Arg1 = 00000081
00420EAB . 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14] ; |
00420EAF . C78424 CC0000>MOV DWORD PTR SS:[ESP+CC],0 ; |
00420EBA . E8 41990200 CALL 1111111.0044A800 ; \1111111.0044A800
00420EBF . 8B4C24 10 MOV ECX,DWORD PTR SS:[ESP+10]
00420EC3 . 51 PUSH ECX
00420EC4 . 68 AC764800 PUSH 1111111.004876AC ; ASCII "VolleyMail"
00420EC9 . FFD7 CALL EDI
00420ECB . 83C4 08 ADD ESP,8
00420ECE . 8D9D C8000000 LEA EBX,DWORD PTR SS:[EBP+C8]
00420ED4 . 896C24 30 MOV DWORD PTR SS:[ESP+30],EBP
00420ED8 . 68 04010000 PUSH 104 ; /BufSize = 104 (260.)
00420EDD . 53 PUSH EBX ; |Buffer
00420EDE . E8 29E80100 CALL <JMP.&WS2_32.gethostname> ; \gethostname
00420EE3 . 803B 00 CMP BYTE PTR DS:[EBX],0
00420EE6 75 22 JNZ SHORT 1111111.00420F0A
00420EE8 . BF B8854800 MOV EDI,1111111.004885B8 ; ASCII "mail.volleymail.com"
00420EED . 83C9 FF OR ECX,FFFFFFFF
00420EF0 . 33C0 XOR EAX,EAX
00420EF2 . F2:AE REPNE SCAS BYTE PTR ES:[EDI]
00420EF4 . F7D1 NOT ECX
00420EF6 . 2BF9 SUB EDI,ECX
00420EF8 . 8BD1 MOV EDX,ECX
00420EFA . 8BF7 MOV ESI,EDI
00420EFC . 8BFB MOV EDI,EBX
00420EFE . C1E9 02 SHR ECX,2
00420F01 . F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
00420F03 . 8BCA MOV ECX,EDX
00420F05 . 83E1 03 AND ECX,3
00420F08 . F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
00420F0A > 8BCD MOV ECX,EBP
00420F0C . E8 BC0F0400 CALL 1111111.00461ECD
00420F11 . 6A 00 PUSH 0
00420F13 . 68 FFF3EF00 PUSH 0EFF3FF
00420F18 . 8BCD MOV ECX,EBP
00420F1A . E8 370F0400 CALL 1111111.00461E56
00420F1F . 6A 01 PUSH 1 ; /Arg2 = 00000001
00420F21 . 6A 00 PUSH 0 ; |Arg1 = 00000000
00420F23 . E8 386E0000 CALL 1111111.00427D60 ; \1111111.00427D60
00420F28 . 8B45 78 MOV EAX,DWORD PTR SS:[EBP+78]
00420F2B . 50 PUSH EAX ; /MutexName
00420F2C . 6A 01 PUSH 1 ; |InitialOwner = TRUE
00420F2E . 6A 00 PUSH 0 ; |pSecurity = NULL
00420F30 . FF15 F8D24600 CALL DWORD PTR DS:[<&kernel32.CreateMute>; \CreateMutexA
00420F36 . FF15 FCD24600 CALL DWORD PTR DS:[<&kernel32.GetLastErr>; [GetLastError
00420F3C . 3D B7000000 CMP EAX,0B7
00420F41 . 75 19 JNZ SHORT 1111111.00420F5C
00420F43 . 6A 10 PUSH 10 ; /Style = MB_OK|MB_ICONHAND|MB_APPLMODAL
00420F45 . 68 AC854800 PUSH 1111111.004885AC ; |Title = "错误提示"
00420F4A . 68 88854800 PUSH 1111111.00488588 ; |Text = "VolleyMail邮件群发专家已经在运行!"
00420F4F . 6A 00 PUSH 0 ; |hOwner = NULL
00420F51 . FF15 68D64600 CALL DWORD PTR DS:[<&user32.MessageBoxA>>; \MessageBoxA
00420F57 . E9 67050000 JMP 1111111.004214C3
00420F5C > 6A 68 PUSH 68
00420F5E . E8 26540200 CALL 1111111.00446389
00420F63 . 83C4 04 ADD ESP,4
00420F66 . 894424 28 MOV DWORD PTR SS:[ESP+28],EAX
00420F6A . 85C0 TEST EAX,EAX
00420F6C . C68424 C80000>MOV BYTE PTR SS:[ESP+C8],1
00420F74 . 74 0D JE SHORT 1111111.00420F83
00420F76 . 6A 00 PUSH 0
00420F78 . 8BC8 MOV ECX,EAX
00420F7A . E8 D1BAFFFF CALL 1111111.0041CA50
00420F7F . 8BF0 MOV ESI,EAX
00420F81 . EB 02 JMP SHORT 1111111.00420F85
00420F83 > 33F6 XOR ESI,ESI
00420F85 > 6A 00 PUSH 0
00420F87 . 68 DA000000 PUSH 0DA
00420F8C . 8BCE MOV ECX,ESI
00420F8E . C68424 D00000>MOV BYTE PTR SS:[ESP+D0],0
00420F96 . E8 1DB40200 CALL 1111111.0044C3B8
00420F9B . 6A 05 PUSH 5
00420F9D . 8BCE MOV ECX,ESI
00420F9F . E8 AF890200 CALL 1111111.00449953
00420FA4 . 8D4C24 3C LEA ECX,DWORD PTR SS:[ESP+3C]
00420FA8 . E8 A0A30200 CALL 1111111.0044B34D
00420FAD . 68 1C664800 PUSH 1111111.0048661C ; ASCII "Cache.MX"
00420FB2 . 8D4C24 1C LEA ECX,DWORD PTR SS:[ESP+1C]
00420FB6 . 68 50E54800 PUSH 1111111.0048E550
00420FBB . 51 PUSH ECX
00420FBC . C68424 D40000>MOV BYTE PTR SS:[ESP+D4],2
00420FC4 . E8 1B950200 CALL 1111111.0044A4E4
00420FC9 . 8B00 MOV EAX,DWORD PTR DS:[EAX]
00420FCB . 6A 00 PUSH 0 ; /Arg3 = 00000000
00420FCD . 68 40800000 PUSH 8040 ; |Arg2 = 00008040
00420FD2 . 50 PUSH EAX ; |Arg1
00420FD3 . 8D4C24 48 LEA ECX,DWORD PTR SS:[ESP+48] ; |
00420FD7 . C68424 D40000>MOV BYTE PTR SS:[ESP+D4],3 ; |
00420FDF . E8 DEA30200 CALL 1111111.0044B3C2 ; \1111111.0044B3C2
00420FE4 . 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
00420FE8 . 8BF8 MOV EDI,EAX
00420FEA . C68424 C80000>MOV BYTE PTR SS:[ESP+C8],2
00420FF2 . E8 58920200 CALL 1111111.0044A24F
00420FF7 . 85FF TEST EDI,EDI
00420FF9 . 74 48 JE SHORT 1111111.00421043
00420FFB . 8D4C24 3C LEA ECX,DWORD PTR SS:[ESP+3C]
00420FFF . E8 65AB0200 CALL 1111111.0044BB69
00421004 . 8BF8 MOV EDI,EAX
00421006 . B8 25499224 MOV EAX,24924925
0042100B . F7E7 MUL EDI
0042100D . 8BC7 MOV EAX,EDI
0042100F . 57 PUSH EDI
00421010 . 2BC2 SUB EAX,EDX
00421012 . D1E8 SHR EAX,1
00421014 . 03C2 ADD EAX,EDX
00421016 . C1E8 06 SHR EAX,6
00421019 . 8985 08020000 MOV DWORD PTR SS:[EBP+208],EAX
0042101F . E8 65530200 CALL 1111111.00446389
00421024 . 8B5424 40 MOV EDX,DWORD PTR SS:[ESP+40]
00421028 . 83C4 04 ADD ESP,4
0042102B . 8D4C24 3C LEA ECX,DWORD PTR SS:[ESP+3C]
0042102F . 8985 00020000 MOV DWORD PTR SS:[EBP+200],EAX
00421035 . 57 PUSH EDI
00421036 . 50 PUSH EAX
00421037 . FF52 34 CALL DWORD PTR DS:[EDX+34]
0042103A . 8D4C24 3C LEA ECX,DWORD PTR SS:[ESP+3C]
0042103E . E8 AFA60200 CALL 1111111.0044B6F2
00421043 68 586A4800 PUSH 1111111.00486A58 ; ASCII "InitProg.dll"
00421048 FF15 84D34600 CALL DWORD PTR DS:[<&kernel32.LoadLibrar>; kernel32.LoadLibraryA 把DLL脱壳后,一运行到此,OD就出错,无法再调试,隐藏也不行。
0042104E . 8BD8 MOV EBX,EAX
00421050 . 85DB TEST EBX,EBX
00421052 75 11 JNZ SHORT 1111111.00421065
00421054 . 50 PUSH EAX ; /Arg3
00421055 . 50 PUSH EAX ; |Arg2
00421056 . 68 70794800 PUSH 1111111.00487970 ; |Arg1 = 00487970
0042105B . E8 8F160300 CALL 1111111.004526EF ; \1111111.004526EF
00421060 . E9 4D040000 JMP 1111111.004214B2
00421065 > 8B3D 88D34600 MOV EDI,DWORD PTR DS:[<&kernel32.GetProc>; kernel32.GetProcAddress
0042106B . 68 7C854800 PUSH 1111111.0048857C ; /ProcNameOrOrdinal = "InitEnvir"
00421070 . 53 PUSH EBX ; |hModule
00421071 . FFD7 CALL EDI ; \GetProcAddress
00421073 . 8D4C24 54 LEA ECX,DWORD PTR SS:[ESP+54]
00421077 . 68 6C854800 PUSH 1111111.0048856C ; ASCII "VolleyMail.exe"
0042107C . 8D5424 34 LEA EDX,DWORD PTR SS:[ESP+34]
00421080 . 51 PUSH ECX
00421081 . 52 PUSH EDX
00421082 . C74424 60 D8D>MOV DWORD PTR SS:[ESP+60],0DDD8
0042108A . FFD0 CALL EAX ; 进入发现来到了程序的一个DLL中,自校验就是在这个DLL中完成的。
0042108C . 85C0 TEST EAX,EAX
0042108E . 75 11 JNZ SHORT 1111111.004210A1
00421090 . B9 C4090000 MOV ECX,9C4
00421095 . BF 2300FF00 MOV EDI,0FF0023
0042109A . F3:AB REP STOS DWORD PTR ES:[EDI]
0042109C . E9 11040000 JMP 1111111.004214B2
004210A1 > 68 5C854800 PUSH 1111111.0048855C ; ASCII "GetMachineCode"
004210A6 . 53 PUSH EBX
004210A7 . FFD7 CALL EDI
004210A9 . 8BD0 MOV EDX,EAX
跟入42108A的CALL
00D22040 > 6A FF PUSH -1
00D22042 68 4D8ED300 PUSH InitProg.00D38E4D
00D22047 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
00D2204D 50 PUSH EAX
00D2204E 64:8925 0000000>MOV DWORD PTR FS:[0],ESP
00D22055 81EC B0000000 SUB ESP,0B0
00D2205B 53 PUSH EBX
00D2205C 55 PUSH EBP
00D2205D 68 8001D400 PUSH InitProg.00D40180 ; ASCII "etide.51.net"
00D22062 E8 E9FDFFFF CALL InitProg.00D21E50
00D22067 8B8424 CC000000 MOV EAX,DWORD PTR SS:[ESP+CC]
00D2206E 8B8C24 C8000000 MOV ECX,DWORD PTR SS:[ESP+C8]
00D22075 68 80000000 PUSH 80
00D2207A 8D5424 3C LEA EDX,DWORD PTR SS:[ESP+3C]
00D2207E 52 PUSH EDX
00D2207F 6A 00 PUSH 0
00D22081 8901 MOV DWORD PTR DS:[ECX],EAX
00D22083 FF15 38A2D300 CALL DWORD PTR DS:[D3A238] ; kernel32.GetModuleFileNameA
00D22089 8D4424 38 LEA EAX,DWORD PTR SS:[ESP+38]
00D2208D 50 PUSH EAX
00D2208E 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00D22092 E8 AF180100 CALL InitProg.00D33946
00D22097 6A 5C PUSH 5C
00D22099 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
00D2209D C78424 C4000000>MOV DWORD PTR SS:[ESP+C4],0
00D220A8 E8 5FD10000 CALL InitProg.00D2F20C
00D220AD 40 INC EAX
00D220AE 50 PUSH EAX
00D220AF 8D4C24 10 LEA ECX,DWORD PTR SS:[ESP+10]
00D220B3 51 PUSH ECX
00D220B4 8D4C24 18 LEA ECX,DWORD PTR SS:[ESP+18]
00D220B8 E8 D7D00000 CALL InitProg.00D2F194
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
看原图
赞赏
雪币:
留言: