首页
社区
课程
招聘
[原创]手脱UPX变形壳的三种方法
发表于: 2008-4-28 21:03 5415

[原创]手脱UPX变形壳的三种方法

2008-4-28 21:03
5415
////////////////////////////////////////////////////////////////////////////////////////////
文件名称:手脱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期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
问个问题,你是怎么判断这个是UPX的?
2008-4-28 21:14
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这样的啊...支持一下

顺路问一下 变形壳是怎么得到的?就是加壳后用OD修改部分汇编码保存得到的么?
2008-4-28 21:15
0
雪    币: 288
活跃值: (53)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
只是感觉像,难道错了吗?那是什么壳?我去改下。
我只会脱些壳,但对名字不太了解。
记得好象有个段名是UPX1吧。
2008-4-28 21:20
0
雪    币: 288
活跃值: (53)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
5
可能是别人把算法修改了或加入了新的代码吧。
2008-4-28 21:22
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
6
1:利用ESP守恒定律下硬件断点。
2:程序载入停在入口处后,直接向下翻看汇编代码,会发现明显的标志性特征代码“POPAD”,紧随其后的几行代码中有一处“JMP”跳转指令,该“JMP”跳转指令所指向的地址就是程序的真正入口点了。
3:单步执行直接跟踪代码指令运行,遇到回条不要跳,直接[F4]到下一行(只适合标准UPX壳)。

我怎么记得这本来就是常识了呢……

“一些在看脱壳教程时,只记那么几条命令的人,虽然你们脱同样壳的样本很快,但遇到未知的新壳时,估计就无从下手了吧。”

这一句我十分同意。不了解壳的流程,就不能算会脱壳。

支持一下老秦
2008-4-28 21:46
0
雪    币: 288
活跃值: (53)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=轩辕小聪;446824]1:利用ESP守恒定律下硬件断点。
2:程序载入停在入口处后,直接向下翻看汇编代码,会发现明显的标志性特征代码“POPAD”,紧随其后的几行代码中有一处“JMP”跳转指令,该“JMP”跳转指令所指向的地址就是程序的真正入口点了。
3:单步执行直接跟踪代码指令运行,遇到回条不要跳,直接[F4]到下...[/QUOTE]

自己总结的和别人重复了没办法啊,呵呵。
小聪也来这里了呀,呵呵。欢迎!!
2008-4-28 21:54
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
8
从修复E8、E9的代码开始像UPX,入口不像,貌似连压缩算法都换了
我也不懂,所以才问你,互相学习
2008-4-28 22:41
0
雪    币: 288
活跃值: (53)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
9
斑竹您好:
对,入口确实不是,并且改动很大。
一般变形壳都是会去该入口的,他们的目的是想使脱壳工具软件失效,呵呵。
估计也是为了免杀吧?这个样本是病毒。
这样就估计可以防住一小部分人了,嘿嘿。
使用PEID查壳,显示为“未知”。
早上刚看了下样本,确认了下。这个程序有3个区段,名字分别是:UPX1、UPX0、.rsrc。再从整体结构上看,确实可以看到UPX的身影。所以感觉是UPX变形壳。
只是发出来和大家分享下,呵呵。
多多交流,互相学习。
2008-4-29 09:06
0
游客
登录 | 注册 方可回帖
返回
//