////////////////////////////////////////////////////////////////////////////////////////////
文件名称:手脱UPX变形壳的三种方法
目标程序:加UPX变形壳的病毒样本
操作环境:Windows XP-SP2
使用工具:Ollydbg 1.10版
编写作者:Coderui
编写时间:2008年04月28日
联系方式:coderui@163.com
作者博客:http://hi.baidu.com/coderui
---------------------------------------------------------------------------------------------
对于现在的UPX壳来说,想手动脱它就是2-3秒时间的事,很简单。下边再次列举出三种简单方法,供想入门的新手朋友学习参考。
1:利用ESP守恒定律下硬件断点。
2:程序载入停在入口处后,直接向下翻看汇编代码,会发现明显的标志性特征代码“POPAD”,紧随其后的几行代码中有一处“JMP”跳转指令,该“JMP”跳转指令所指向的地址就是程序的真正入口点了。
3:单步执行直接跟踪代码指令运行,遇到回条不要跳,直接[F4]到下一行(只适合标准UPX壳)。
下边是一段完整的UPX变形解压壳代码,使用PEID查壳显示为“未知壳”。
----------------------------------------------------------------------
00446120 > 60 PUSHAD ; 程序载入后停在这里
00446121 BE 00D04100 MOV ESI,nuhuo11.0041D000
00446126 8DBE 0040FEFF LEA EDI,DWORD PTR DS:[ESI+FFFE4000]
0044612C 57 PUSH EDI
0044612D 89E5 MOV EBP,ESP
0044612F 8D9C24 80C1FFFF LEA EBX,DWORD PTR SS:[ESP-3E80]
00446136 31C0 XOR EAX,EAX
00446138 50 PUSH EAX
00446139 39DC CMP ESP,EBX
0044613B ^ 75 FB JNZ SHORT nuhuo11.00446138
0044613D 46 INC ESI
0044613E 46 INC ESI
0044613F 53 PUSH EBX
00446140 68 974A0400 PUSH 44A97
00446145 57 PUSH EDI
00446146 83C3 04 ADD EBX,4
00446149 53 PUSH EBX
0044614A 68 17910200 PUSH 29117
0044614F 56 PUSH ESI
00446150 83C3 04 ADD EBX,4
00446153 53 PUSH EBX
00446154 50 PUSH EAX
00446155 C703 03000200 MOV DWORD PTR DS:[EBX],20003
0044615B 90 NOP
0044615C 90 NOP
0044615D 90 NOP
0044615E 90 NOP
0044615F 90 NOP
00446160 55 PUSH EBP
00446161 57 PUSH EDI
00446162 56 PUSH ESI
00446163 53 PUSH EBX
00446164 83EC 7C SUB ESP,7C
00446167 8B9424 90000000 MOV EDX,DWORD PTR SS:[ESP+90]
0044616E C74424 74 00000>MOV DWORD PTR SS:[ESP+74],0
00446176 C64424 73 00 MOV BYTE PTR SS:[ESP+73],0
0044617B 8BAC24 9C000000 MOV EBP,DWORD PTR SS:[ESP+9C]
00446182 8D42 04 LEA EAX,DWORD PTR DS:[EDX+4]
00446185 894424 78 MOV DWORD PTR SS:[ESP+78],EAX
00446189 B8 01000000 MOV EAX,1
0044618E 0FB64A 02 MOVZX ECX,BYTE PTR DS:[EDX+2]
00446192 89C3 MOV EBX,EAX
00446194 D3E3 SHL EBX,CL
00446196 89D9 MOV ECX,EBX
00446198 49 DEC ECX
00446199 894C24 6C MOV DWORD PTR SS:[ESP+6C],ECX
0044619D 0FB64A 01 MOVZX ECX,BYTE PTR DS:[EDX+1]
004461A1 D3E0 SHL EAX,CL
004461A3 48 DEC EAX
004461A4 894424 68 MOV DWORD PTR SS:[ESP+68],EAX
004461A8 8B8424 A8000000 MOV EAX,DWORD PTR SS:[ESP+A8]
004461AF 0FB632 MOVZX ESI,BYTE PTR DS:[EDX]
004461B2 C745 00 0000000>MOV DWORD PTR SS:[EBP],0
004461B9 C74424 60 00000>MOV DWORD PTR SS:[ESP+60],0
004461C1 C700 00000000 MOV DWORD PTR DS:[EAX],0
004461C7 B8 00030000 MOV EAX,300
004461CC 897424 64 MOV DWORD PTR SS:[ESP+64],ESI
004461D0 C74424 5C 01000>MOV DWORD PTR SS:[ESP+5C],1
004461D8 C74424 58 01000>MOV DWORD PTR SS:[ESP+58],1
004461E0 C74424 54 01000>MOV DWORD PTR SS:[ESP+54],1
004461E8 C74424 50 01000>MOV DWORD PTR SS:[ESP+50],1
004461F0 0FB64A 01 MOVZX ECX,BYTE PTR DS:[EDX+1]
004461F4 01F1 ADD ECX,ESI
004461F6 D3E0 SHL EAX,CL
004461F8 8D88 36070000 LEA ECX,DWORD PTR DS:[EAX+736]
004461FE 394C24 74 CMP DWORD PTR SS:[ESP+74],ECX
00446202 73 0E JNB SHORT nuhuo11.00446212
00446204 8B4424 78 MOV EAX,DWORD PTR SS:[ESP+78]
00446208 66:C700 0004 MOV WORD PTR DS:[EAX],400
0044620D 83C0 02 ADD EAX,2
00446210 ^ E2 F6 LOOPD SHORT nuhuo11.00446208
00446212 8B9C24 94000000 MOV EBX,DWORD PTR SS:[ESP+94]
00446219 31FF XOR EDI,EDI
0044621B C74424 48 FFFFF>MOV DWORD PTR SS:[ESP+48],-1
00446223 89DA MOV EDX,EBX
00446225 039424 98000000 ADD EDX,DWORD PTR SS:[ESP+98]
0044622C 895424 4C MOV DWORD PTR SS:[ESP+4C],EDX
00446230 31D2 XOR EDX,EDX
00446232 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
00446236 0F84 7C090000 JE nuhuo11.00446BB8
0044623C 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
0044623F C1E7 08 SHL EDI,8
00446242 42 INC EDX
00446243 43 INC EBX
00446244 09C7 OR EDI,EAX
00446246 83FA 04 CMP EDX,4
00446249 ^ 7E E7 JLE SHORT nuhuo11.00446232
0044624B 8B8C24 A4000000 MOV ECX,DWORD PTR SS:[ESP+A4]
00446252 394C24 74 CMP DWORD PTR SS:[ESP+74],ECX
00446256 0F83 64090000 JNB nuhuo11.00446BC0
0044625C 8B7424 74 MOV ESI,DWORD PTR SS:[ESP+74]
00446260 237424 6C AND ESI,DWORD PTR SS:[ESP+6C]
00446264 8B4424 60 MOV EAX,DWORD PTR SS:[ESP+60]
00446268 8B5424 78 MOV EDX,DWORD PTR SS:[ESP+78]
0044626C C1E0 04 SHL EAX,4
0044626F 897424 44 MOV DWORD PTR SS:[ESP+44],ESI
00446273 01F0 ADD EAX,ESI
00446275 817C24 48 FFFFF>CMP DWORD PTR SS:[ESP+48],0FFFFFF
0044627D 8D2C42 LEA EBP,DWORD PTR DS:[EDX+EAX*2]
00446280 77 18 JA SHORT nuhuo11.0044629A
00446282 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
00446286 0F84 2C090000 JE nuhuo11.00446BB8
0044628C C16424 48 08 SHL DWORD PTR SS:[ESP+48],8
00446291 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
00446294 C1E7 08 SHL EDI,8
00446297 43 INC EBX
00446298 09C7 OR EDI,EAX
0044629A 8B4424 48 MOV EAX,DWORD PTR SS:[ESP+48]
0044629E 66:8B55 00 MOV DX,WORD PTR SS:[EBP]
004462A2 C1E8 0B SHR EAX,0B
004462A5 0FB7CA MOVZX ECX,DX
004462A8 0FAFC1 IMUL EAX,ECX
004462AB 39C7 CMP EDI,EAX
004462AD 0F83 DD010000 JNB nuhuo11.00446490
004462B3 894424 48 MOV DWORD PTR SS:[ESP+48],EAX
004462B7 B8 00080000 MOV EAX,800
004462BC 29C8 SUB EAX,ECX
004462BE 8A4C24 64 MOV CL,BYTE PTR SS:[ESP+64]
004462C2 C1F8 05 SAR EAX,5
004462C5 BE 01000000 MOV ESI,1
004462CA 8D0402 LEA EAX,DWORD PTR DS:[EDX+EAX]
004462CD 0FB65424 73 MOVZX EDX,BYTE PTR SS:[ESP+73]
004462D2 66:8945 00 MOV WORD PTR SS:[EBP],AX
004462D6 8B4424 74 MOV EAX,DWORD PTR SS:[ESP+74]
004462DA 234424 68 AND EAX,DWORD PTR SS:[ESP+68]
004462DE 8B6C24 78 MOV EBP,DWORD PTR SS:[ESP+78]
004462E2 D3E0 SHL EAX,CL
004462E4 B9 08000000 MOV ECX,8
004462E9 2B4C24 64 SUB ECX,DWORD PTR SS:[ESP+64]
004462ED D3FA SAR EDX,CL
004462EF 01D0 ADD EAX,EDX
004462F1 69C0 00060000 IMUL EAX,EAX,600
004462F7 837C24 60 06 CMP DWORD PTR SS:[ESP+60],6
004462FC 8D8405 6C0E0000 LEA EAX,DWORD PTR SS:[EBP+EAX+E6C]
00446303 894424 14 MOV DWORD PTR SS:[ESP+14],EAX
00446307 0F8E CA000000 JLE nuhuo11.004463D7
0044630D 8B4424 74 MOV EAX,DWORD PTR SS:[ESP+74]
00446311 2B4424 5C SUB EAX,DWORD PTR SS:[ESP+5C]
00446315 8B9424 A0000000 MOV EDX,DWORD PTR SS:[ESP+A0]
0044631C 0FB60402 MOVZX EAX,BYTE PTR DS:[EDX+EAX]
00446320 894424 40 MOV DWORD PTR SS:[ESP+40],EAX
00446324 D16424 40 SHL DWORD PTR SS:[ESP+40],1
00446328 8B4C24 40 MOV ECX,DWORD PTR SS:[ESP+40]
0044632C 8D1436 LEA EDX,DWORD PTR DS:[ESI+ESI]
0044632F 8B6C24 14 MOV EBP,DWORD PTR SS:[ESP+14]
00446333 81E1 00010000 AND ECX,100
00446339 817C24 48 FFFFF>CMP DWORD PTR SS:[ESP+48],0FFFFFF
00446341 8D444D 00 LEA EAX,DWORD PTR SS:[EBP+ECX*2]
00446345 894C24 3C MOV DWORD PTR SS:[ESP+3C],ECX
00446349 8D2C10 LEA EBP,DWORD PTR DS:[EAX+EDX]
0044634C 77 18 JA SHORT nuhuo11.00446366
0044634E 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
00446352 0F84 60080000 JE nuhuo11.00446BB8
00446358 C16424 48 08 SHL DWORD PTR SS:[ESP+48],8
0044635D 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
00446360 C1E7 08 SHL EDI,8
00446363 43 INC EBX
00446364 09C7 OR EDI,EAX
00446366 8B4424 48 MOV EAX,DWORD PTR SS:[ESP+48]
0044636A 66:8B8D 0002000>MOV CX,WORD PTR SS:[EBP+200]
00446371 C1E8 0B SHR EAX,0B
00446374 0FB7F1 MOVZX ESI,CX
00446377 0FAFC6 IMUL EAX,ESI
0044637A 39C7 CMP EDI,EAX
0044637C 73 23 JNB SHORT nuhuo11.004463A1
0044637E 894424 48 MOV DWORD PTR SS:[ESP+48],EAX
00446382 B8 00080000 MOV EAX,800
00446387 29F0 SUB EAX,ESI
00446389 89D6 MOV ESI,EDX
0044638B C1F8 05 SAR EAX,5
0044638E 837C24 3C 00 CMP DWORD PTR SS:[ESP+3C],0
00446393 8D0401 LEA EAX,DWORD PTR DS:[ECX+EAX]
00446396 66:8985 0002000>MOV WORD PTR SS:[EBP+200],AX
0044639D 74 22 JE SHORT nuhuo11.004463C1
0044639F EB 2E JMP SHORT nuhuo11.004463CF
004463A1 294424 48 SUB DWORD PTR SS:[ESP+48],EAX
004463A5 29C7 SUB EDI,EAX
004463A7 89C8 MOV EAX,ECX
004463A9 8D72 01 LEA ESI,DWORD PTR DS:[EDX+1]
004463AC 66:C1E8 05 SHR AX,5
004463B0 66:29C1 SUB CX,AX
004463B3 837C24 3C 00 CMP DWORD PTR SS:[ESP+3C],0
004463B8 66:898D 0002000>MOV WORD PTR SS:[EBP+200],CX
004463BF 74 0E JE SHORT nuhuo11.004463CF
004463C1 81FE FF000000 CMP ESI,0FF
004463C7 ^ 0F8E 57FFFFFF JLE nuhuo11.00446324
004463CD EB 79 JMP SHORT nuhuo11.00446448
004463CF 81FE FF000000 CMP ESI,0FF
004463D5 7F 71 JG SHORT nuhuo11.00446448
004463D7 8D1436 LEA EDX,DWORD PTR DS:[ESI+ESI]
004463DA 8B6C24 14 MOV EBP,DWORD PTR SS:[ESP+14]
004463DE 01D5 ADD EBP,EDX
004463E0 817C24 48 FFFFF>CMP DWORD PTR SS:[ESP+48],0FFFFFF
004463E8 77 18 JA SHORT nuhuo11.00446402
004463EA 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
004463EE 0F84 C4070000 JE nuhuo11.00446BB8
004463F4 C16424 48 08 SHL DWORD PTR SS:[ESP+48],8
004463F9 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
004463FC C1E7 08 SHL EDI,8
004463FF 43 INC EBX
00446400 09C7 OR EDI,EAX
00446402 8B4424 48 MOV EAX,DWORD PTR SS:[ESP+48]
00446406 66:8B4D 00 MOV CX,WORD PTR SS:[EBP]
0044640A C1E8 0B SHR EAX,0B
0044640D 0FB7F1 MOVZX ESI,CX
00446410 0FAFC6 IMUL EAX,ESI
00446413 39C7 CMP EDI,EAX
00446415 73 19 JNB SHORT nuhuo11.00446430
00446417 894424 48 MOV DWORD PTR SS:[ESP+48],EAX
0044641B B8 00080000 MOV EAX,800
00446420 29F0 SUB EAX,ESI
00446422 89D6 MOV ESI,EDX
00446424 C1F8 05 SAR EAX,5
00446427 8D0401 LEA EAX,DWORD PTR DS:[ECX+EAX]
0044642A 66:8945 00 MOV WORD PTR SS:[EBP],AX
0044642E ^ EB 9F JMP SHORT nuhuo11.004463CF
00446430 294424 48 SUB DWORD PTR SS:[ESP+48],EAX
00446434 29C7 SUB EDI,EAX
00446436 89C8 MOV EAX,ECX
00446438 8D72 01 LEA ESI,DWORD PTR DS:[EDX+1]
0044643B 66:C1E8 05 SHR AX,5
0044643F 66:29C1 SUB CX,AX
00446442 66:894D 00 MOV WORD PTR SS:[EBP],CX
00446446 ^ EB 87 JMP SHORT nuhuo11.004463CF
00446448 8B5424 74 MOV EDX,DWORD PTR SS:[ESP+74]
0044644C 89F0 MOV EAX,ESI
0044644E 8B8C24 A0000000 MOV ECX,DWORD PTR SS:[ESP+A0]
00446455 884424 73 MOV BYTE PTR SS:[ESP+73],AL
00446459 88040A MOV BYTE PTR DS:[EDX+ECX],AL
0044645C 42 INC EDX
0044645D 837C24 60 03 CMP DWORD PTR SS:[ESP+60],3
00446462 895424 74 MOV DWORD PTR SS:[ESP+74],EDX
00446466 7F 0D JG SHORT nuhuo11.00446475
00446468 C74424 60 00000>MOV DWORD PTR SS:[ESP+60],0
00446470 E9 1B070000 JMP nuhuo11.00446B90
00446475 837C24 60 09 CMP DWORD PTR SS:[ESP+60],9
0044647A 7F 0A JG SHORT nuhuo11.00446486
0044647C 836C24 60 03 SUB DWORD PTR SS:[ESP+60],3
00446481 E9 0A070000 JMP nuhuo11.00446B90
00446486 836C24 60 06 SUB DWORD PTR SS:[ESP+60],6
0044648B E9 00070000 JMP nuhuo11.00446B90
00446490 8B4C24 48 MOV ECX,DWORD PTR SS:[ESP+48]
00446494 29C7 SUB EDI,EAX
00446496 8B7424 60 MOV ESI,DWORD PTR SS:[ESP+60]
0044649A 29C1 SUB ECX,EAX
0044649C 89D0 MOV EAX,EDX
0044649E 66:C1E8 05 SHR AX,5
004464A2 66:29C2 SUB DX,AX
004464A5 81F9 FFFFFF00 CMP ECX,0FFFFFF
004464AB 66:8955 00 MOV WORD PTR SS:[EBP],DX
004464AF 8B6C24 78 MOV EBP,DWORD PTR SS:[ESP+78]
004464B3 8D7475 00 LEA ESI,DWORD PTR SS:[EBP+ESI*2]
004464B7 897424 38 MOV DWORD PTR SS:[ESP+38],ESI
004464BB 77 16 JA SHORT nuhuo11.004464D3
004464BD 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
004464C1 0F84 F1060000 JE nuhuo11.00446BB8
004464C7 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
004464CA C1E7 08 SHL EDI,8
004464CD C1E1 08 SHL ECX,8
004464D0 43 INC EBX
004464D1 09C7 OR EDI,EAX
004464D3 8B6C24 38 MOV EBP,DWORD PTR SS:[ESP+38]
004464D7 89C8 MOV EAX,ECX
004464D9 C1E8 0B SHR EAX,0B
004464DC 66:8B95 8001000>MOV DX,WORD PTR SS:[EBP+180]
004464E3 0FB7EA MOVZX EBP,DX
004464E6 0FAFC5 IMUL EAX,EBP
004464E9 39C7 CMP EDI,EAX
004464EB 73 52 JNB SHORT nuhuo11.0044653F
004464ED 89C6 MOV ESI,EAX
004464EF B8 00080000 MOV EAX,800
004464F4 29E8 SUB EAX,EBP
004464F6 8B6C24 58 MOV EBP,DWORD PTR SS:[ESP+58]
004464FA C1F8 05 SAR EAX,5
004464FD 8B4C24 54 MOV ECX,DWORD PTR SS:[ESP+54]
00446501 8D0402 LEA EAX,DWORD PTR DS:[EDX+EAX]
00446504 8B5424 38 MOV EDX,DWORD PTR SS:[ESP+38]
00446508 894C24 50 MOV DWORD PTR SS:[ESP+50],ECX
0044650C 8B4C24 78 MOV ECX,DWORD PTR SS:[ESP+78]
00446510 66:8982 8001000>MOV WORD PTR DS:[EDX+180],AX
00446517 8B4424 5C MOV EAX,DWORD PTR SS:[ESP+5C]
0044651B 896C24 54 MOV DWORD PTR SS:[ESP+54],EBP
0044651F 894424 58 MOV DWORD PTR SS:[ESP+58],EAX
00446523 31C0 XOR EAX,EAX
00446525 837C24 60 06 CMP DWORD PTR SS:[ESP+60],6
0044652A 0F9FC0 SETG AL
0044652D 81C1 64060000 ADD ECX,664
00446533 8D0440 LEA EAX,DWORD PTR DS:[EAX+EAX*2]
00446536 894424 60 MOV DWORD PTR SS:[ESP+60],EAX
0044653A E9 74020000 JMP nuhuo11.004467B3
0044653F 89CE MOV ESI,ECX
00446541 29C7 SUB EDI,EAX
00446543 29C6 SUB ESI,EAX
00446545 89D0 MOV EAX,EDX
00446547 66:C1E8 05 SHR AX,5
0044654B 8B4C24 38 MOV ECX,DWORD PTR SS:[ESP+38]
0044654F 66:29C2 SUB DX,AX
00446552 81FE FFFFFF00 CMP ESI,0FFFFFF
00446558 66:8991 8001000>MOV WORD PTR DS:[ECX+180],DX
0044655F 77 16 JA SHORT nuhuo11.00446577
00446561 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
00446565 0F84 4D060000 JE nuhuo11.00446BB8
0044656B 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
0044656E C1E7 08 SHL EDI,8
00446571 C1E6 08 SHL ESI,8
00446574 43 INC EBX
00446575 09C7 OR EDI,EAX
00446577 8B6C24 38 MOV EBP,DWORD PTR SS:[ESP+38]
0044657B 89F2 MOV EDX,ESI
0044657D C1EA 0B SHR EDX,0B
00446580 66:8B8D 9801000>MOV CX,WORD PTR SS:[EBP+198]
00446587 0FB7C1 MOVZX EAX,CX
0044658A 0FAFD0 IMUL EDX,EAX
0044658D 39D7 CMP EDI,EDX
0044658F 0F83 E3000000 JNB nuhuo11.00446678
00446595 BD 00080000 MOV EBP,800
0044659A 89D6 MOV ESI,EDX
0044659C 29C5 SUB EBP,EAX
0044659E C74424 34 00080>MOV DWORD PTR SS:[ESP+34],800
004465A6 89E8 MOV EAX,EBP
004465A8 C1F8 05 SAR EAX,5
004465AB 8D0401 LEA EAX,DWORD PTR DS:[ECX+EAX]
004465AE 8B4C24 38 MOV ECX,DWORD PTR SS:[ESP+38]
004465B2 66:8981 9801000>MOV WORD PTR DS:[ECX+198],AX
004465B9 8B4424 60 MOV EAX,DWORD PTR SS:[ESP+60]
004465BD 8B4C24 44 MOV ECX,DWORD PTR SS:[ESP+44]
004465C1 C1E0 05 SHL EAX,5
004465C4 034424 78 ADD EAX,DWORD PTR SS:[ESP+78]
004465C8 81FA FFFFFF00 CMP EDX,0FFFFFF
004465CE 8D2C48 LEA EBP,DWORD PTR DS:[EAX+ECX*2]
004465D1 77 16 JA SHORT nuhuo11.004465E9
004465D3 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
004465D7 0F84 DB050000 JE nuhuo11.00446BB8
004465DD 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
004465E0 C1E7 08 SHL EDI,8
004465E3 C1E6 08 SHL ESI,8
004465E6 43 INC EBX
004465E7 09C7 OR EDI,EAX
004465E9 66:8B95 E001000>MOV DX,WORD PTR SS:[EBP+1E0]
004465F0 89F0 MOV EAX,ESI
004465F2 C1E8 0B SHR EAX,0B
004465F5 0FB7CA MOVZX ECX,DX
004465F8 0FAFC1 IMUL EAX,ECX
004465FB 39C7 CMP EDI,EAX
004465FD 73 60 JNB SHORT nuhuo11.0044665F
004465FF 294C24 34 SUB DWORD PTR SS:[ESP+34],ECX
00446603 C17C24 34 05 SAR DWORD PTR SS:[ESP+34],5
00446608 8B7424 34 MOV ESI,DWORD PTR SS:[ESP+34]
0044660C 894424 48 MOV DWORD PTR SS:[ESP+48],EAX
00446610 837C24 74 00 CMP DWORD PTR SS:[ESP+74],0
00446615 8D0432 LEA EAX,DWORD PTR DS:[EDX+ESI]
00446618 66:8985 E001000>MOV WORD PTR SS:[EBP+1E0],AX
0044661F 0F84 93050000 JE nuhuo11.00446BB8
00446625 31C0 XOR EAX,EAX
00446627 837C24 60 06 CMP DWORD PTR SS:[ESP+60],6
0044662C 8BAC24 A0000000 MOV EBP,DWORD PTR SS:[ESP+A0]
00446633 8B5424 74 MOV EDX,DWORD PTR SS:[ESP+74]
00446637 0F9FC0 SETG AL
0044663A 8D4400 09 LEA EAX,DWORD PTR DS:[EAX+EAX+9]
0044663E 894424 60 MOV DWORD PTR SS:[ESP+60],EAX
00446642 8B4424 74 MOV EAX,DWORD PTR SS:[ESP+74]
00446646 2B4424 5C SUB EAX,DWORD PTR SS:[ESP+5C]
0044664A 8A4405 00 MOV AL,BYTE PTR SS:[EBP+EAX]
0044664E 884424 73 MOV BYTE PTR SS:[ESP+73],AL
00446652 88042A MOV BYTE PTR DS:[EDX+EBP],AL
00446655 42 INC EDX
00446656 895424 74 MOV DWORD PTR SS:[ESP+74],EDX
0044665A E9 31050000 JMP nuhuo11.00446B90
0044665F 29C6 SUB ESI,EAX
00446661 29C7 SUB EDI,EAX
00446663 89D0 MOV EAX,EDX
00446665 66:C1E8 05 SHR AX,5
00446669 66:29C2 SUB DX,AX
0044666C 66:8995 E001000>MOV WORD PTR SS:[EBP+1E0],DX
00446673 E9 1F010000 JMP nuhuo11.00446797
00446678 89C8 MOV EAX,ECX
0044667A 29D6 SUB ESI,EDX
0044667C 66:C1E8 05 SHR AX,5
00446680 8B6C24 38 MOV EBP,DWORD PTR SS:[ESP+38]
00446684 66:29C1 SUB CX,AX
00446687 29D7 SUB EDI,EDX
00446689 81FE FFFFFF00 CMP ESI,0FFFFFF
0044668F 66:898D 9801000>MOV WORD PTR SS:[EBP+198],CX
00446696 77 16 JA SHORT nuhuo11.004466AE
00446698 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
0044669C 0F84 16050000 JE nuhuo11.00446BB8
004466A2 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
004466A5 C1E7 08 SHL EDI,8
004466A8 C1E6 08 SHL ESI,8
004466AB 43 INC EBX
004466AC 09C7 OR EDI,EAX
004466AE 8B4C24 38 MOV ECX,DWORD PTR SS:[ESP+38]
004466B2 89F0 MOV EAX,ESI
004466B4 C1E8 0B SHR EAX,0B
004466B7 66:8B91 B001000>MOV DX,WORD PTR DS:[ECX+1B0]
004466BE 0FB7CA MOVZX ECX,DX
004466C1 0FAFC1 IMUL EAX,ECX
004466C4 39C7 CMP EDI,EAX
004466C6 73 23 JNB SHORT nuhuo11.004466EB
004466C8 89C6 MOV ESI,EAX
004466CA B8 00080000 MOV EAX,800
004466CF 29C8 SUB EAX,ECX
004466D1 8B6C24 38 MOV EBP,DWORD PTR SS:[ESP+38]
004466D5 C1F8 05 SAR EAX,5
004466D8 8D0402 LEA EAX,DWORD PTR DS:[EDX+EAX]
004466DB 66:8985 B001000>MOV WORD PTR SS:[EBP+1B0],AX
004466E2 8B4424 58 MOV EAX,DWORD PTR SS:[ESP+58]
004466E6 E9 A0000000 JMP nuhuo11.0044678B
004466EB 89F1 MOV ECX,ESI
004466ED 29C7 SUB EDI,EAX
004466EF 29C1 SUB ECX,EAX
004466F1 89D0 MOV EAX,EDX
004466F3 66:C1E8 05 SHR AX,5
004466F7 66:29C2 SUB DX,AX
004466FA 8B4424 38 MOV EAX,DWORD PTR SS:[ESP+38]
004466FE 81F9 FFFFFF00 CMP ECX,0FFFFFF
00446704 66:8990 B001000>MOV WORD PTR DS:[EAX+1B0],DX
0044670B 77 16 JA SHORT nuhuo11.00446723
0044670D 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
00446711 0F84 A1040000 JE nuhuo11.00446BB8
00446717 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
0044671A C1E7 08 SHL EDI,8
0044671D C1E1 08 SHL ECX,8
00446720 43 INC EBX
00446721 09C7 OR EDI,EAX
00446723 8B7424 38 MOV ESI,DWORD PTR SS:[ESP+38]
00446727 89C8 MOV EAX,ECX
00446729 C1E8 0B SHR EAX,0B
0044672C 66:8B96 C801000>MOV DX,WORD PTR DS:[ESI+1C8]
00446733 0FB7EA MOVZX EBP,DX
00446736 0FAFC5 IMUL EAX,EBP
00446739 39C7 CMP EDI,EAX
0044673B 73 20 JNB SHORT nuhuo11.0044675D
0044673D 89C6 MOV ESI,EAX
0044673F B8 00080000 MOV EAX,800
00446744 29E8 SUB EAX,EBP
00446746 8B6C24 38 MOV EBP,DWORD PTR SS:[ESP+38]
0044674A C1F8 05 SAR EAX,5
0044674D 8D0402 LEA EAX,DWORD PTR DS:[EDX+EAX]
00446750 66:8985 C801000>MOV WORD PTR SS:[EBP+1C8],AX
00446757 8B4424 54 MOV EAX,DWORD PTR SS:[ESP+54]
0044675B EB 26 JMP SHORT nuhuo11.00446783
0044675D 89CE MOV ESI,ECX
0044675F 29C7 SUB EDI,EAX
00446761 29C6 SUB ESI,EAX
00446763 89D0 MOV EAX,EDX
00446765 66:C1E8 05 SHR AX,5
00446769 66:29C2 SUB DX,AX
0044676C 8B4424 38 MOV EAX,DWORD PTR SS:[ESP+38]
00446770 66:8990 C801000>MOV WORD PTR DS:[EAX+1C8],DX
00446777 8B5424 54 MOV EDX,DWORD PTR SS:[ESP+54]
0044677B 8B4424 50 MOV EAX,DWORD PTR SS:[ESP+50]
0044677F 895424 50 MOV DWORD PTR SS:[ESP+50],EDX
00446783 8B4C24 58 MOV ECX,DWORD PTR SS:[ESP+58]
00446787 894C24 54 MOV DWORD PTR SS:[ESP+54],ECX
0044678B 8B6C24 5C MOV EBP,DWORD PTR SS:[ESP+5C]
0044678F 894424 5C MOV DWORD PTR SS:[ESP+5C],EAX
00446793 896C24 58 MOV DWORD PTR SS:[ESP+58],EBP
00446797 31C0 XOR EAX,EAX
00446799 837C24 60 06 CMP DWORD PTR SS:[ESP+60],6
0044679E 8B4C24 78 MOV ECX,DWORD PTR SS:[ESP+78]
004467A2 0F9FC0 SETG AL
004467A5 81C1 680A0000 ADD ECX,0A68
004467AB 8D4440 08 LEA EAX,DWORD PTR DS:[EAX+EAX*2+8]
004467AF 894424 60 MOV DWORD PTR SS:[ESP+60],EAX
004467B3 81FE FFFFFF00 CMP ESI,0FFFFFF
004467B9 77 16 JA SHORT nuhuo11.004467D1
004467BB 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
004467BF 0F84 F3030000 JE nuhuo11.00446BB8
004467C5 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
004467C8 C1E7 08 SHL EDI,8
004467CB C1E6 08 SHL ESI,8
004467CE 43 INC EBX
004467CF 09C7 OR EDI,EAX
004467D1 66:8B11 MOV DX,WORD PTR DS:[ECX]
004467D4 89F0 MOV EAX,ESI
004467D6 C1E8 0B SHR EAX,0B
004467D9 0FB7EA MOVZX EBP,DX
004467DC 0FAFC5 IMUL EAX,EBP
004467DF 39C7 CMP EDI,EAX
004467E1 73 2F JNB SHORT nuhuo11.00446812
004467E3 894424 48 MOV DWORD PTR SS:[ESP+48],EAX
004467E7 B8 00080000 MOV EAX,800
004467EC 29E8 SUB EAX,EBP
004467EE C16424 44 04 SHL DWORD PTR SS:[ESP+44],4
004467F3 C1F8 05 SAR EAX,5
004467F6 C74424 2C 00000>MOV DWORD PTR SS:[ESP+2C],0
004467FE 8D0402 LEA EAX,DWORD PTR DS:[EDX+EAX]
00446801 66:8901 MOV WORD PTR DS:[ECX],AX
00446804 8B4424 44 MOV EAX,DWORD PTR SS:[ESP+44]
00446808 8D4C01 04 LEA ECX,DWORD PTR DS:[ECX+EAX+4]
0044680C 894C24 10 MOV DWORD PTR SS:[ESP+10],ECX
00446810 EB 72 JMP SHORT nuhuo11.00446884
00446812 29C6 SUB ESI,EAX
00446814 29C7 SUB EDI,EAX
00446816 89D0 MOV EAX,EDX
00446818 66:C1E8 05 SHR AX,5
0044681C 66:29C2 SUB DX,AX
0044681F 81FE FFFFFF00 CMP ESI,0FFFFFF
00446825 66:8911 MOV WORD PTR DS:[ECX],DX
00446828 77 16 JA SHORT nuhuo11.00446840
0044682A 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
0044682E 0F84 84030000 JE nuhuo11.00446BB8
00446834 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
00446837 C1E7 08 SHL EDI,8
0044683A C1E6 08 SHL ESI,8
0044683D 43 INC EBX
0044683E 09C7 OR EDI,EAX
00446840 66:8B51 02 MOV DX,WORD PTR DS:[ECX+2]
00446844 89F0 MOV EAX,ESI
00446846 C1E8 0B SHR EAX,0B
00446849 0FB7EA MOVZX EBP,DX
0044684C 0FAFC5 IMUL EAX,EBP
0044684F 39C7 CMP EDI,EAX
00446851 73 3B JNB SHORT nuhuo11.0044688E
00446853 894424 48 MOV DWORD PTR SS:[ESP+48],EAX
00446857 B8 00080000 MOV EAX,800
0044685C 29E8 SUB EAX,EBP
0044685E C16424 44 04 SHL DWORD PTR SS:[ESP+44],4
00446863 C1F8 05 SAR EAX,5
00446866 C74424 2C 08000>MOV DWORD PTR SS:[ESP+2C],8
0044686E 8D0402 LEA EAX,DWORD PTR DS:[EDX+EAX]
00446871 8B5424 44 MOV EDX,DWORD PTR SS:[ESP+44]
00446875 66:8941 02 MOV WORD PTR DS:[ECX+2],AX
00446879 8D8C11 04010000 LEA ECX,DWORD PTR DS:[ECX+EDX+104]
00446880 894C24 10 MOV DWORD PTR SS:[ESP+10],ECX
00446884 C74424 30 03000>MOV DWORD PTR SS:[ESP+30],3
0044688C EB 2F JMP SHORT nuhuo11.004468BD
0044688E 29C6 SUB ESI,EAX
00446890 29C7 SUB EDI,EAX
00446892 89D0 MOV EAX,EDX
00446894 897424 48 MOV DWORD PTR SS:[ESP+48],ESI
00446898 66:C1E8 05 SHR AX,5
0044689C C74424 2C 10000>MOV DWORD PTR SS:[ESP+2C],10
004468A4 66:29C2 SUB DX,AX
004468A7 C74424 30 08000>MOV DWORD PTR SS:[ESP+30],8
004468AF 66:8951 02 MOV WORD PTR DS:[ECX+2],DX
004468B3 81C1 04020000 ADD ECX,204
004468B9 894C24 10 MOV DWORD PTR SS:[ESP+10],ECX
004468BD 8B4C24 30 MOV ECX,DWORD PTR SS:[ESP+30]
004468C1 BA 01000000 MOV EDX,1
004468C6 894C24 28 MOV DWORD PTR SS:[ESP+28],ECX
004468CA 8D2C12 LEA EBP,DWORD PTR DS:[EDX+EDX]
004468CD 8B7424 10 MOV ESI,DWORD PTR SS:[ESP+10]
004468D1 01EE ADD ESI,EBP
004468D3 817C24 48 FFFFF>CMP DWORD PTR SS:[ESP+48],0FFFFFF
004468DB 77 18 JA SHORT nuhuo11.004468F5
004468DD 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
004468E1 0F84 D1020000 JE nuhuo11.00446BB8
004468E7 C16424 48 08 SHL DWORD PTR SS:[ESP+48],8
004468EC 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
004468EF C1E7 08 SHL EDI,8
004468F2 43 INC EBX
004468F3 09C7 OR EDI,EAX
004468F5 8B4424 48 MOV EAX,DWORD PTR SS:[ESP+48]
004468F9 66:8B16 MOV DX,WORD PTR DS:[ESI]
004468FC C1E8 0B SHR EAX,0B
004468FF 0FB7CA MOVZX ECX,DX
00446902 0FAFC1 IMUL EAX,ECX
00446905 39C7 CMP EDI,EAX
00446907 73 18 JNB SHORT nuhuo11.00446921
00446909 894424 48 MOV DWORD PTR SS:[ESP+48],EAX
0044690D B8 00080000 MOV EAX,800
00446912 29C8 SUB EAX,ECX
00446914 C1F8 05 SAR EAX,5
00446917 8D0402 LEA EAX,DWORD PTR DS:[EDX+EAX]
0044691A 89EA MOV EDX,EBP
0044691C 66:8906 MOV WORD PTR DS:[ESI],AX
0044691F EB 15 JMP SHORT nuhuo11.00446936
00446921 294424 48 SUB DWORD PTR SS:[ESP+48],EAX
00446925 29C7 SUB EDI,EAX
00446927 89D0 MOV EAX,EDX
00446929 66:C1E8 05 SHR AX,5
0044692D 66:29C2 SUB DX,AX
00446930 66:8916 MOV WORD PTR DS:[ESI],DX
00446933 8D55 01 LEA EDX,DWORD PTR SS:[EBP+1]
00446936 8B7424 28 MOV ESI,DWORD PTR SS:[ESP+28]
0044693A 4E DEC ESI
0044693B 897424 28 MOV DWORD PTR SS:[ESP+28],ESI
0044693F ^ 75 89 JNZ SHORT nuhuo11.004468CA
00446941 8A4C24 30 MOV CL,BYTE PTR SS:[ESP+30]
00446945 B8 01000000 MOV EAX,1
0044694A D3E0 SHL EAX,CL
0044694C 29C2 SUB EDX,EAX
0044694E 035424 2C ADD EDX,DWORD PTR SS:[ESP+2C]
00446952 837C24 60 03 CMP DWORD PTR SS:[ESP+60],3
00446957 895424 0C MOV DWORD PTR SS:[ESP+C],EDX
0044695B 0F8F E7010000 JG nuhuo11.00446B48
00446961 834424 60 07 ADD DWORD PTR SS:[ESP+60],7
00446966 83FA 03 CMP EDX,3
00446969 89D0 MOV EAX,EDX
0044696B 7E 05 JLE SHORT nuhuo11.00446972
0044696D B8 03000000 MOV EAX,3
00446972 8B7424 78 MOV ESI,DWORD PTR SS:[ESP+78]
00446976 C1E0 07 SHL EAX,7
00446979 C74424 24 06000>MOV DWORD PTR SS:[ESP+24],6
00446981 8D8406 60030000 LEA EAX,DWORD PTR DS:[ESI+EAX+360]
00446988 894424 08 MOV DWORD PTR SS:[ESP+8],EAX
0044698C B8 01000000 MOV EAX,1
00446991 8D2C00 LEA EBP,DWORD PTR DS:[EAX+EAX]
00446994 8B7424 08 MOV ESI,DWORD PTR SS:[ESP+8]
00446998 01EE ADD ESI,EBP
0044699A 817C24 48 FFFFF>CMP DWORD PTR SS:[ESP+48],0FFFFFF
004469A2 77 18 JA SHORT nuhuo11.004469BC
004469A4 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
004469A8 0F84 0A020000 JE nuhuo11.00446BB8
004469AE C16424 48 08 SHL DWORD PTR SS:[ESP+48],8
004469B3 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
004469B6 C1E7 08 SHL EDI,8
004469B9 43 INC EBX
004469BA 09C7 OR EDI,EAX
004469BC 8B4424 48 MOV EAX,DWORD PTR SS:[ESP+48]
004469C0 66:8B16 MOV DX,WORD PTR DS:[ESI]
004469C3 C1E8 0B SHR EAX,0B
004469C6 0FB7CA MOVZX ECX,DX
004469C9 0FAFC1 IMUL EAX,ECX
004469CC 39C7 CMP EDI,EAX
004469CE 73 18 JNB SHORT nuhuo11.004469E8
004469D0 894424 48 MOV DWORD PTR SS:[ESP+48],EAX
004469D4 B8 00080000 MOV EAX,800
004469D9 29C8 SUB EAX,ECX
004469DB C1F8 05 SAR EAX,5
004469DE 8D0402 LEA EAX,DWORD PTR DS:[EDX+EAX]
004469E1 66:8906 MOV WORD PTR DS:[ESI],AX
004469E4 89E8 MOV EAX,EBP
004469E6 EB 15 JMP SHORT nuhuo11.004469FD
004469E8 294424 48 SUB DWORD PTR SS:[ESP+48],EAX
004469EC 29C7 SUB EDI,EAX
004469EE 89D0 MOV EAX,EDX
004469F0 66:C1E8 05 SHR AX,5
004469F4 66:29C2 SUB DX,AX
004469F7 8D45 01 LEA EAX,DWORD PTR SS:[EBP+1]
004469FA 66:8916 MOV WORD PTR DS:[ESI],DX
004469FD 8B6C24 24 MOV EBP,DWORD PTR SS:[ESP+24]
00446A01 4D DEC EBP
00446A02 896C24 24 MOV DWORD PTR SS:[ESP+24],EBP
00446A06 ^ 75 89 JNZ SHORT nuhuo11.00446991
00446A08 8D50 C0 LEA EDX,DWORD PTR DS:[EAX-40]
00446A0B 83FA 03 CMP EDX,3
00446A0E 891424 MOV DWORD PTR SS:[ESP],EDX
00446A11 0F8E 27010000 JLE nuhuo11.00446B3E
00446A17 89D0 MOV EAX,EDX
00446A19 89D6 MOV ESI,EDX
00446A1B D1F8 SAR EAX,1
00446A1D 83E6 01 AND ESI,1
00446A20 8D48 FF LEA ECX,DWORD PTR DS:[EAX-1]
00446A23 83CE 02 OR ESI,2
00446A26 83FA 0D CMP EDX,0D
00446A29 894C24 20 MOV DWORD PTR SS:[ESP+20],ECX
00446A2D 7F 1C JG SHORT nuhuo11.00446A4B
00446A2F 8B6C24 78 MOV EBP,DWORD PTR SS:[ESP+78]
00446A33 D3E6 SHL ESI,CL
00446A35 01D2 ADD EDX,EDX
00446A37 893424 MOV DWORD PTR SS:[ESP],ESI
00446A3A 8D4475 00 LEA EAX,DWORD PTR SS:[EBP+ESI*2]
00446A3E 29D0 SUB EAX,EDX
00446A40 05 5E050000 ADD EAX,55E
00446A45 894424 04 MOV DWORD PTR SS:[ESP+4],EAX
00446A49 EB 56 JMP SHORT nuhuo11.00446AA1
00446A4B 8D50 FB LEA EDX,DWORD PTR DS:[EAX-5]
00446A4E 817C24 48 FFFFF>CMP DWORD PTR SS:[ESP+48],0FFFFFF
00446A56 77 18 JA SHORT nuhuo11.00446A70
00446A58 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
00446A5C 0F84 56010000 JE nuhuo11.00446BB8
00446A62 C16424 48 08 SHL DWORD PTR SS:[ESP+48],8
00446A67 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
00446A6A C1E7 08 SHL EDI,8
00446A6D 43 INC EBX
00446A6E 09C7 OR EDI,EAX
00446A70 D16C24 48 SHR DWORD PTR SS:[ESP+48],1
00446A74 01F6 ADD ESI,ESI
00446A76 3B7C24 48 CMP EDI,DWORD PTR SS:[ESP+48]
00446A7A 72 07 JB SHORT nuhuo11.00446A83
00446A7C 2B7C24 48 SUB EDI,DWORD PTR SS:[ESP+48]
00446A80 83CE 01 OR ESI,1
00446A83 4A DEC EDX
00446A84 ^ 75 C8 JNZ SHORT nuhuo11.00446A4E
00446A86 8B4424 78 MOV EAX,DWORD PTR SS:[ESP+78]
00446A8A C1E6 04 SHL ESI,4
00446A8D 893424 MOV DWORD PTR SS:[ESP],ESI
00446A90 05 44060000 ADD EAX,644
00446A95 C74424 20 04000>MOV DWORD PTR SS:[ESP+20],4
00446A9D 894424 04 MOV DWORD PTR SS:[ESP+4],EAX
00446AA1 C74424 1C 01000>MOV DWORD PTR SS:[ESP+1C],1
00446AA9 B8 01000000 MOV EAX,1
00446AAE 8B6C24 04 MOV EBP,DWORD PTR SS:[ESP+4]
00446AB2 01C0 ADD EAX,EAX
00446AB4 894424 18 MOV DWORD PTR SS:[ESP+18],EAX
00446AB8 01C5 ADD EBP,EAX
00446ABA 817C24 48 FFFFF>CMP DWORD PTR SS:[ESP+48],0FFFFFF
00446AC2 77 18 JA SHORT nuhuo11.00446ADC
00446AC4 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
00446AC8 0F84 EA000000 JE nuhuo11.00446BB8
00446ACE C16424 48 08 SHL DWORD PTR SS:[ESP+48],8
00446AD3 0FB603 MOVZX EAX,BYTE PTR DS:[EBX]
00446AD6 C1E7 08 SHL EDI,8
00446AD9 43 INC EBX
00446ADA 09C7 OR EDI,EAX
00446ADC 8B4424 48 MOV EAX,DWORD PTR SS:[ESP+48]
00446AE0 66:8B55 00 MOV DX,WORD PTR SS:[EBP]
00446AE4 C1E8 0B SHR EAX,0B
00446AE7 0FB7F2 MOVZX ESI,DX
00446AEA 0FAFC6 IMUL EAX,ESI
00446AED 39C7 CMP EDI,EAX
00446AEF 73 1B JNB SHORT nuhuo11.00446B0C
00446AF1 894424 48 MOV DWORD PTR SS:[ESP+48],EAX
00446AF5 B8 00080000 MOV EAX,800
00446AFA 29F0 SUB EAX,ESI
00446AFC C1F8 05 SAR EAX,5
00446AFF 8D0402 LEA EAX,DWORD PTR DS:[EDX+EAX]
00446B02 66:8945 00 MOV WORD PTR SS:[EBP],AX
00446B06 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18]
00446B0A EB 1F JMP SHORT nuhuo11.00446B2B
00446B0C 294424 48 SUB DWORD PTR SS:[ESP+48],EAX
00446B10 29C7 SUB EDI,EAX
00446B12 89D0 MOV EAX,EDX
00446B14 66:C1E8 05 SHR AX,5
00446B18 66:29C2 SUB DX,AX
00446B1B 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18]
00446B1F 66:8955 00 MOV WORD PTR SS:[EBP],DX
00446B23 8B5424 1C MOV EDX,DWORD PTR SS:[ESP+1C]
00446B27 40 INC EAX
00446B28 091424 OR DWORD PTR SS:[ESP],EDX
00446B2B 8B4C24 20 MOV ECX,DWORD PTR SS:[ESP+20]
00446B2F D16424 1C SHL DWORD PTR SS:[ESP+1C],1
00446B33 49 DEC ECX
00446B34 894C24 20 MOV DWORD PTR SS:[ESP+20],ECX
00446B38 ^ 0F85 70FFFFFF JNZ nuhuo11.00446AAE
00446B3E 8B3424 MOV ESI,DWORD PTR SS:[ESP]
00446B41 46 INC ESI
00446B42 897424 5C MOV DWORD PTR SS:[ESP+5C],ESI
00446B46 74 59 JE SHORT nuhuo11.00446BA1
00446B48 8B4C24 0C MOV ECX,DWORD PTR SS:[ESP+C]
00446B4C 8B6C24 74 MOV EBP,DWORD PTR SS:[ESP+74]
00446B50 83C1 02 ADD ECX,2
00446B53 396C24 5C CMP DWORD PTR SS:[ESP+5C],EBP
00446B57 77 5F JA SHORT nuhuo11.00446BB8
00446B59 8B8424 A0000000 MOV EAX,DWORD PTR SS:[ESP+A0]
00446B60 89EA MOV EDX,EBP
00446B62 2B4424 5C SUB EAX,DWORD PTR SS:[ESP+5C]
00446B66 039424 A0000000 ADD EDX,DWORD PTR SS:[ESP+A0]
00446B6D 8D3428 LEA ESI,DWORD PTR DS:[EAX+EBP]
00446B70 8A06 MOV AL,BYTE PTR DS:[ESI]
00446B72 46 INC ESI
00446B73 884424 73 MOV BYTE PTR SS:[ESP+73],AL
00446B77 8802 MOV BYTE PTR DS:[EDX],AL
00446B79 42 INC EDX
00446B7A FF4424 74 INC DWORD PTR SS:[ESP+74]
00446B7E 49 DEC ECX
00446B7F 74 0F JE SHORT nuhuo11.00446B90
00446B81 8BAC24 A4000000 MOV EBP,DWORD PTR SS:[ESP+A4]
00446B88 396C24 74 CMP DWORD PTR SS:[ESP+74],EBP
00446B8C ^ 72 E2 JB SHORT nuhuo11.00446B70
00446B8E EB 11 JMP SHORT nuhuo11.00446BA1
00446B90 8B8424 A4000000 MOV EAX,DWORD PTR SS:[ESP+A4]
00446B97 394424 74 CMP DWORD PTR SS:[ESP+74],EAX
00446B9B ^ 0F82 BBF6FFFF JB nuhuo11.0044625C
00446BA1 817C24 48 FFFFF>CMP DWORD PTR SS:[ESP+48],0FFFFFF
00446BA9 77 15 JA SHORT nuhuo11.00446BC0
00446BAB 3B5C24 4C CMP EBX,DWORD PTR SS:[ESP+4C]
00446BAF B8 01000000 MOV EAX,1
00446BB4 74 29 JE SHORT nuhuo11.00446BDF
00446BB6 EB 07 JMP SHORT nuhuo11.00446BBF
00446BB8 B8 01000000 MOV EAX,1
00446BBD EB 20 JMP SHORT nuhuo11.00446BDF
00446BBF 43 INC EBX
00446BC0 2B9C24 94000000 SUB EBX,DWORD PTR SS:[ESP+94]
00446BC7 31C0 XOR EAX,EAX
00446BC9 8B9424 9C000000 MOV EDX,DWORD PTR SS:[ESP+9C]
00446BD0 8B4C24 74 MOV ECX,DWORD PTR SS:[ESP+74]
00446BD4 891A MOV DWORD PTR DS:[EDX],EBX
00446BD6 8B9C24 A8000000 MOV EBX,DWORD PTR SS:[ESP+A8]
00446BDD 890B MOV DWORD PTR DS:[EBX],ECX
00446BDF 83C4 7C ADD ESP,7C
00446BE2 5B POP EBX
00446BE3 5E POP ESI
00446BE4 5F POP EDI
00446BE5 5D POP EBP
00446BE6 0373 FC ADD ESI,DWORD PTR DS:[EBX-4]
00446BE9 037B F8 ADD EDI,DWORD PTR DS:[EBX-8]
00446BEC 31C0 XOR EAX,EAX
00446BEE 8D8C24 00FFFFFF LEA ECX,DWORD PTR SS:[ESP-100]
00446BF5 89EC MOV ESP,EBP
00446BF7 50 PUSH EAX
00446BF8 39CC CMP ESP,ECX
00446BFA ^ 75 FB JNZ SHORT nuhuo11.00446BF7
00446BFC 89EC MOV ESP,EBP
00446BFE 31C9 XOR ECX,ECX
00446C00 5E POP ESI
00446C01 89F7 MOV EDI,ESI
00446C03 B9 7C080000 MOV ECX,87C
00446C08 8A07 MOV AL,BYTE PTR DS:[EDI]
00446C0A 47 INC EDI
00446C0B 2C E8 SUB AL,0E8
00446C0D 3C 01 CMP AL,1
00446C0F ^ 77 F7 JA SHORT nuhuo11.00446C08
00446C11 803F 06 CMP BYTE PTR DS:[EDI],6
00446C14 ^ 75 F2 JNZ SHORT nuhuo11.00446C08
00446C16 8B07 MOV EAX,DWORD PTR DS:[EDI]
00446C18 8A5F 04 MOV BL,BYTE PTR DS:[EDI+4]
00446C1B 66:C1E8 08 SHR AX,8
00446C1F C1C0 10 ROL EAX,10
00446C22 86C4 XCHG AH,AL
00446C24 29F8 SUB EAX,EDI
00446C26 80EB E8 SUB BL,0E8
00446C29 01F0 ADD EAX,ESI
00446C2B 8907 MOV DWORD PTR DS:[EDI],EAX
00446C2D 83C7 05 ADD EDI,5
00446C30 88D8 MOV AL,BL
00446C32 ^ E2 D9 LOOPD SHORT nuhuo11.00446C0D
00446C34 8DBE 00400400 LEA EDI,DWORD PTR DS:[ESI+44000]
00446C3A 8B07 MOV EAX,DWORD PTR DS:[EDI]
00446C3C 09C0 OR EAX,EAX
00446C3E 74 3C JE SHORT nuhuo11.00446C7C
00446C40 8B5F 04 MOV EBX,DWORD PTR DS:[EDI+4]
00446C43 8D8430 E8610400 LEA EAX,DWORD PTR DS:[EAX+ESI+461E8]
00446C4A 01F3 ADD EBX,ESI
00446C4C 50 PUSH EAX
00446C4D 83C7 08 ADD EDI,8
00446C50 FF96 60620400 CALL DWORD PTR DS:[ESI+46260]
00446C56 95 XCHG EAX,EBP
00446C57 8A07 MOV AL,BYTE PTR DS:[EDI]
00446C59 47 INC EDI
00446C5A 08C0 OR AL,AL
00446C5C ^ 74 DC JE SHORT nuhuo11.00446C3A
00446C5E 89F9 MOV ECX,EDI
00446C60 57 PUSH EDI
00446C61 48 DEC EAX
00446C62 F2:AE REPNE SCAS BYTE PTR ES:[EDI]
00446C64 55 PUSH EBP
00446C65 FF96 64620400 CALL DWORD PTR DS:[ESI+46264]
00446C6B 09C0 OR EAX,EAX
00446C6D 74 07 JE SHORT nuhuo11.00446C76
00446C6F 8903 MOV DWORD PTR DS:[EBX],EAX
00446C71 83C3 04 ADD EBX,4
00446C74 ^ EB E1 JMP SHORT nuhuo11.00446C57
00446C76 FF96 74620400 CALL DWORD PTR DS:[ESI+46274]
00446C7C 8BAE 68620400 MOV EBP,DWORD PTR DS:[ESI+46268]
00446C82 8DBE 00F0FFFF LEA EDI,DWORD PTR DS:[ESI-1000]
00446C88 BB 00100000 MOV EBX,1000
00446C8D 50 PUSH EAX
00446C8E 54 PUSH ESP
00446C8F 6A 04 PUSH 4
00446C91 53 PUSH EBX
00446C92 57 PUSH EDI
00446C93 FFD5 CALL EBP
00446C95 8D87 1F020000 LEA EAX,DWORD PTR DS:[EDI+21F]
00446C9B 8020 7F AND BYTE PTR DS:[EAX],7F
00446C9E 8060 28 7F AND BYTE PTR DS:[EAX+28],7F
00446CA2 58 POP EAX
00446CA3 50 PUSH EAX
00446CA4 54 PUSH ESP
00446CA5 50 PUSH EAX
00446CA6 53 PUSH EBX
00446CA7 57 PUSH EDI
00446CA8 FFD5 CALL EBP
00446CAA 58 POP EAX
00446CAB 61 POPAD ; 标志性代码
00446CAC 8D4424 80 LEA EAX,DWORD PTR SS:[ESP-80]
00446CB0 6A 00 PUSH 0
00446CB2 39C4 CMP ESP,EAX
00446CB4 ^ 75 FA JNZ SHORT nuhuo11.00446CB0
00446CB6 83EC 80 SUB ESP,-80
00446CB9 - E9 E6C5FCFF JMP nuhuo11.004132A4 ; 飞向程序真正入口的关键跳
00446CBE 0000 ADD BYTE PTR DS:[EAX],AL
00446CC0 D86C44 00 FSUBR DWORD PTR SS:[ESP+EAX*2]
00446CC4 E4 6C IN AL,6C ; I/O 命令
00446CC6 44 INC ESP
00446CC7 008C47 41000000 ADD BYTE PTR DS:[EDI+EAX*2+41],CL
00446CCE 0000 ADD BYTE PTR DS:[EAX],AL
00446CD0 0000 ADD BYTE PTR DS:[EAX],AL
00446CD2 0000 ADD BYTE PTR DS:[EAX],AL
----------------------------------------------------------------------
推纳使用上边的第三种方法,“单步执行直接跟踪代码指令运行”。好处如下:
1:可以很好的阅读汇编、加深印象。
2:了解壳的构架,以后再也不需要查壳工具了。反汇编后,遇到类似的构架结构直接脱。
3:增强知识的积累,可以为脱未知壳打下结实的基础和无穷的经验。
4:可以为速脱打下良好的基础。拿到一个未知壳后,都可以迅速的去飞快跟踪。一遍下来后,就知道怎么使用简单的方法去对付这种壳了。
一些在看脱壳教程时,只记那么几条命令的人,虽然你们脱同样壳的样本很快,但遇到未知的新壳时,估计就无从下手了吧。
---------------------------------------------------------------------------------------------
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)