首页
论坛
专栏
课程

Encryptpe v22005314service脱壳示例

2005-5-22 17:20 7808

Encryptpe v22005314service脱壳示例

2005-5-22 17:20
7808
这篇文章答应某人N久了,今天趁老板出差了,偷点时间写下来,但愿某人今天已经搞定了 ,考虑到某些原因因此没有选择普通加密方式的脱壳做为文章

附件:EPEv22005314.rar

【目     标】:win98’s notepad
【工     具】:Olydbg1.1(diy版)、LORDPE、ImportREC1.6F
【任     务】:去除注册信息,去除目标壳
【操作平台】:Windows 2003 server
【作     者】: LOVEBOOM[DFCG][FCG][US]
【相关链接】: www.encryptpe.com
【简要说明】: 这篇文章想了很久,也说了很久,今天还是写下来了,这篇文章很久以前就答应过某人,给他看看,拖了这么久,真是不好意思,但愿他看到这篇文章的时候已经搞定了这个壳:-)。这个壳对现在很多人来说是比较简单的了,因此,我不就大概写写,不会写太细的。如果你是那种基本的东西或基本的OD调试的都不会初学朋友,建议你们先自己看看基础知识,再学脱壳,我不希望,也不建议任何新人不会走就学跑。
【详细过程】:
先设置下OD:忽略全部异常,隐藏你的OD。先运行一次目标程序,用进程工具杀掉程序,然后用OD载入目标进入EP处:
0040D000 >  60               PUSHAD                                   ; EP
0040D001    9C               PUSHFD
0040D002    64:FF35 00000000 PUSH DWORD PTR FS:[0]
入壳处和2003的是一样的。
现在按F9运行几秒钟,然后按F12暂停,暂停后打开memory窗口,在下面位置下断:

下断的位置处就可以很直接的分出epe的版本。下断后,f9继续运行。这样很快在下面停下:
71236732    46               INC ESI
71236733    8807             MOV BYTE PTR DS:[EDI],AL                 ; 继续运行后在这里断下
71236735    47               INC EDI
停下后,直接向下找到跳去OEP处,因为壳是用upx加的,所以比较好找:-)。
712368B7    61               POPAD
712368B8  ^ E9 23EFFAFF      JMP 711E57E0                             ; 这里跳去oep
找到地址后,直接f4运行到712368b3处。再按F8一次:
711E57E0    55               PUSH EBP                                 ; 壳代码OEP
711E57E1    8BEC             MOV EBP,ESP
711E57E3    83C4 C4          ADD ESP,-3C
到这里观察一下就可以看出壳是用dephi写的,注意这里是壳代码的OEP不是目标程序的OEP。到了oep后,用OD的查找功能查找如下命令:
MOV WORD PTR DS:[EAX],25FF
可以找到下以两个地方:
711E4FEB    66:C700 FF25     MOV WORD PTR DS:[EAX],25FF               ; 查找点1
711E4FF0    8B55 FC          MOV EDX,DWORD PTR SS:[EBP-4]
……
711E502A    66:C700 FF25     MOV WORD PTR DS:[EAX],25FF               ; 查找点2
711E502F    8B55 FC          MOV EDX,DWORD PTR SS:[EBP-4]
711E5032    8950 02          MOV DWORD PTR DS:[EAX+2],EDX
找到后先在711e4feb处下内存访问断点,现在查找命令集:
  XOR ECX,DWORD PTR SS:[EBP-4]
  MOV DWORD PTR DS:[EAX],ECX
  MOV DWORD PTR SS:[EBP-8],EDX
找到以下位置:
711E37C5    334D FC          XOR ECX,DWORD PTR SS:[EBP-4]             ; 这里IAT填充****
711E37C8    8908             MOV DWORD PTR DS:[EAX],ECX
711E37CA    8955 F8          MOV DWORD PTR SS:[EBP-8],EDX
711E37CD    85FF             TEST EDI,EDI
711E37CF    74 29            JE SHORT 711E37FA

找到后在711E37C5处也下断内存访问断点。好了,现在按F9运行,停一会,发现以下两个地方会访问以上两个地方,也就是CRC 检测处:
711E3870  /$  53             PUSH EBX          CRC检测一
711E3871  |.  56             PUSH ESI
711E3872  |.  33F6           XOR ESI,ESI
711E3874  |.  8B15 D4F61D71  MOV EDX,DWORD PTR DS:[711DF6D4]          ;  V2200531.711DF720
711E387A  |.  EB 09          JMP SHORT 711E3885
711E387C  |>  33DB           /XOR EBX,EBX
711E387E  |.  8A1A           |MOV BL,BYTE PTR DS:[EDX]                ;  这里中断
711E3880  |.  03F3           |ADD ESI,EBX
711E3882  |.  41             |INC ECX
711E3883  |.  8BD1           |MOV EDX,ECX
711E3885  |>  BB 70381E71     MOV EBX,711E3870                        ;  Entry address
711E388A  |.  8BCA           |MOV ECX,EDX
711E388C  |.  3BD9           |CMP EBX,ECX
711E388E  |.^ 77 EC          \JA SHORT 711E387C
711E3890  |.  84C0           TEST AL,AL
711E3892  |.  74 07          JE SHORT 711E389B
711E3894  |.  A1 88DB1F71    MOV EAX,DWORD PTR DS:[711FDB88]
711E3899  |.  8930           MOV DWORD PTR DS:[EAX],ESI
711E389B  |>  A1 88DB1F71    MOV EAX,DWORD PTR DS:[711FDB88]
711E38A0  |.  3B30           CMP ESI,DWORD PTR DS:[EAX]
711E38A2  |.  0F95C0         SETNE AL                                 ;  修改这里****
711E38A5  |.  5E             POP ESI
711E38A6  |.  5B             POP EBX
711E38A7  \.  C3             RETN
……
711E540C  /$  53             PUSH EBX                                 ;  CRC检测点二
711E540D  |.  56             PUSH ESI
711E540E  |.  57             PUSH EDI
711E540F  |.  8BD8           MOV EBX,EAX
711E5411  |.  33F6           XOR ESI,ESI
711E5413  |.  BF 343B1E71    MOV EDI,EncryptPE_Init
711E5418  |.  EB 24          JMP SHORT 711E543E
711E541A  |>  84DB           /TEST BL,BL
711E541C  |.  74 19          |JE SHORT 711E5437
711E541E  |.  81FF 343B1E71  |CMP EDI,EncryptPE_Init
711E5424  |.  75 11          |JNZ SHORT 711E5437
711E5426  |.  E8 D9FEFFFF    |CALL 711E5304
711E542B  |.  84C0           |TEST AL,AL
711E542D  |.  75 08          |JNZ SHORT 711E5437
711E542F  |.  A1 9CDB1F71    |MOV EAX,DWORD PTR DS:[711FDB9C]
711E5434  |.  C600 01        |MOV BYTE PTR DS:[EAX],1
711E5437  |>  33C0           |XOR EAX,EAX
711E5439  |.  8A07           |MOV AL,BYTE PTR DS:[EDI]                ;  这里一次访问中断
711E543B  |.  03F0           |ADD ESI,EAX
711E543D  |.  47             |INC EDI
711E543E  |>  B8 0C541E71     MOV EAX,711E540C                        ;  Entry address
711E5443  |.  3BC7           |CMP EAX,EDI
711E5445  |.^ 77 D3          \JA SHORT 711E541A
711E5447  |.  84DB           TEST BL,BL
711E5449  |.  74 07          JE SHORT 711E5452
711E544B  |.  A1 0CDF1F71    MOV EAX,DWORD PTR DS:[711FDF0C]
711E5450  |.  8930           MOV DWORD PTR DS:[EAX],ESI
711E5452  |>  A1 0CDF1F71    MOV EAX,DWORD PTR DS:[711FDF0C]
711E5457  |.  3B30           CMP ESI,DWORD PTR DS:[EAX]
711E5459  |.  0F95C0         SETNE AL                                 ;  修改这里****
711E545C  |.  5F             POP EDI
711E545D  |.  5E             POP ESI
711E545E  |.  5B             POP EBX
711E545F  \.  C3             RETN
把那两个CRC检测处改为mov al,0就可以跳过检测。修改好那两个check crc点后,直接在一个crc处理处设置断点:
711E5459    B0 00            MOV AL,0      ;我这里下的断
711E545B    90               NOP
711E545C    5F               POP EDI
断下后的CTRL+F9返回:
711E4E6B    33C0             XOR EAX,EAX
711E4E6D    E8 9A050000      CALL 711E540C
711E4E72    84C0             TEST AL,AL                               ; 返回到这里
711E4E74    75 0B            JNZ SHORT 711E4E81                       ; 这里不能跳的,因为我里面已经改成mov al,0所以这里不会跳的 
711E4E76    33C0             XOR EAX,EAX
711E4E78    E8 2FBBFCFF      CALL 711B09AC
711E4E7D    84C0             TEST AL,AL
711E4E7F    74 08            JE SHORT 711E4E89
经过踪发现壳的处理,也算是这个壳里最为精彩的片段了:
711E36B5    334D FC         XOR ECX,DWORD PTR SS:[EBP-4]            
IAT处理:
711E36B8    8908            MOV DWORD PTR DS:[EAX],ECX
711E36BA    8955 F8         MOV DWORD PTR SS:[EBP-8],EDX
711E36BD    85FF            TEST EDI,EDI
711E36BF    74 29           JE SHORT 711E36EA
修改成:
711E36B5    8B4D FC         MOV ECX,DWORD PTR SS:[EBP-4]         ;改为传入正确的API
711E36B8    8908            MOV DWORD PTR DS:[EAX],ECX
711E36BA    894D F8         MOV DWORD PTR SS:[EBP-8],ECX    ;改为传入正确的API
……
711E4FEB    66:C700 FF25     MOV WORD PTR DS:[EAX],25FF               ; 这里要patch****
711E4FF0    8B55 FC          MOV EDX,DWORD PTR SS:[EBP-4]
711E4FF3    8950 02          MOV DWORD PTR DS:[EAX+2],EDX
711E4FF6    8BD0             MOV EDX,EAX
711E4FF8    8B5D E8          MOV EBX,DWORD PTR SS:[EBP-18]
711E4FFB    83C3 06          ADD EBX,6
711E4FFE    8B45 E0          MOV EAX,DWORD PTR SS:[EBP-20]
711E5001    03C0             ADD EAX,EAX
711E5003    03D8             ADD EBX,EAX
711E5005    8B45 E8          MOV EAX,DWORD PTR SS:[EBP-18]
711E5008    8B00             MOV EAX,DWORD PTR DS:[EAX]
711E500A    0FB70B           MOVZX ECX,WORD PTR DS:[EBX]
711E500D    81E9 00300000    SUB ECX,3000
711E5013    03C1             ADD EAX,ECX
711E5015    0345 DC          ADD EAX,DWORD PTR SS:[EBP-24]
711E5018    48               DEC EAX
711E5019    2BD0             SUB EDX,EAX
711E501B    83EA 04          SUB EDX,4
711E501E    8910             MOV DWORD PTR DS:[EAX],EDX               ; 这里壳写入加密后的地址patch****
711E5020    E9 68010000      JMP 711E518D
711E5025    E8 EA7DFCFF      CALL 711ACE14
711E502A    66:C700 FF25     MOV WORD PTR DS:[EAX],25FF               ; 这里同上****
711E502F    8B55 FC          MOV EDX,DWORD PTR SS:[EBP-4]
711E5032    8950 02          MOV DWORD PTR DS:[EAX+2],EDX
711E5035    8BD0             MOV EDX,EAX
711E5037    8B5D E8          MOV EBX,DWORD PTR SS:[EBP-18]
711E503A    83C3 06          ADD EBX,6
711E503D    8B45 E0          MOV EAX,DWORD PTR SS:[EBP-20]
711E5040    03C0             ADD EAX,EAX
711E5042    03D8             ADD EBX,EAX
711E5044    8B45 E8          MOV EAX,DWORD PTR SS:[EBP-18]
711E5047    8B00             MOV EAX,DWORD PTR DS:[EAX]
711E5049    0FB70B           MOVZX ECX,WORD PTR DS:[EBX]
711E504C    81E9 00300000    SUB ECX,3000
711E5052    03C1             ADD EAX,ECX
711E5054    0345 DC          ADD EAX,DWORD PTR SS:[EBP-24]
711E5057    2BD0             SUB EDX,EAX
711E5059    83EA 04          SUB EDX,4
711E505C    8910             MOV DWORD PTR DS:[EAX],EDX               ; 同上****
711E505E    E9 2A010000      JMP 711E518D
711E5063    8B15 94DD1F71    MOV EDX,DWORD PTR DS:[711FDD94]          ; V2200531.71210760
711E5069    8B12             MOV EDX,DWORD PTR DS:[EDX]
711E506B    8B4D E4          MOV ECX,DWORD PTR SS:[EBP-1C]
711E506E    8B148A           MOV EDX,DWORD PTR DS:[EDX+ECX*4]
711E5071    80BA 5E030000 03 CMP BYTE PTR DS:[EDX+35E],3
711E5078    0F86 0F010000    JBE 711E518D
711E507E    66:8B13          MOV DX,WORD PTR DS:[EBX]
711E5081    66:81E2 FF00     AND DX,0FF
711E5086    66:81FA 8900     CMP DX,89
711E508B    74 13            JE SHORT 711E50A0
711E508D    66:8B13          MOV DX,WORD PTR DS:[EBX]
711E5090    66:81E2 FF00     AND DX,0FF
711E5095    66:81FA 8B00     CMP DX,8B
711E509A    0F85 ED000000    JNZ 711E518D
711E50A0    66:8B03          MOV AX,WORD PTR DS:[EBX]
711E50A3    66:25 00FF       AND AX,0FF00
711E50A7    66:3D 0005       CMP AX,500                               ; 这一大段的对代码变形处理
711E50AB    74 4C            JE SHORT 711E50F9
711E50AD    66:3D 0015       CMP AX,1500
711E50B1    74 46            JE SHORT 711E50F9
711E50B3    66:3D 0025       CMP AX,2500
711E50B7    74 40            JE SHORT 711E50F9
711E50B9    66:3D 0035       CMP AX,3500
711E50BD    74 3A            JE SHORT 711E50F9
711E50BF    66:3D 000D       CMP AX,0D00
711E50C3    74 34            JE SHORT 711E50F9
711E50C5    66:3D 001D       CMP AX,1D00
711E50C9    74 2E            JE SHORT 711E50F9
711E50CB    66:3D 002D       CMP AX,2D00
711E50CF    74 28            JE SHORT 711E50F9
711E50D1    66:3D 003D       CMP AX,3D00
711E50D5    74 22            JE SHORT 711E50F9
711E50D7    66:8B03          MOV AX,WORD PTR DS:[EBX]
711E50DA    66:25 00FF       AND AX,0FF00
711E50DE    66:3D 0080       CMP AX,8000
711E50E2    0F82 A5000000    JB 711E518D
711E50E8    66:8B03          MOV AX,WORD PTR DS:[EBX]
711E50EB    66:25 00FF       AND AX,0FF00
711E50EF    66:3D 00C0       CMP AX,0C000
711E50F3    0F83 94000000    JNB 711E518D
711E50F9    66:8B03          MOV AX,WORD PTR DS:[EBX]
711E50FC    66:25 FF00       AND AX,0FF
711E5100    66:3D 8900       CMP AX,89
711E5104    74 0D            JE SHORT 711E5113
711E5106    66:8B03          MOV AX,WORD PTR DS:[EBX]
711E5109    66:25 FF00       AND AX,0FF
711E510D    66:3D 8B00       CMP AX,8B
711E5111    75 7A            JNZ SHORT 711E518D
711E5113    E8 FC7CFCFF      CALL 711ACE14
711E5118    66:8B13          MOV DX,WORD PTR DS:[EBX]
711E511B    66:81E2 FF00     AND DX,0FF
711E5120    66:81FA 8900     CMP DX,89
711E5125    75 12            JNZ SHORT 711E5139
711E5127    66:8B13          MOV DX,WORD PTR DS:[EBX]
711E512A    66:81E2 00FF     AND DX,0FF00
711E512F    66:81C2 8B00     ADD DX,8B
711E5134    66:8910          MOV WORD PTR DS:[EAX],DX                 ; 这里patch****
711E5137    EB 10            JMP SHORT 711E5149
711E5139    66:8B13          MOV DX,WORD PTR DS:[EBX]
711E513C    66:81E2 00FF     AND DX,0FF00
711E5141    66:81C2 8900     ADD DX,89
711E5146    66:8910          MOV WORD PTR DS:[EAX],DX                 ; 把正确的代码放到壳中
711E5149    8B55 FC          MOV EDX,DWORD PTR SS:[EBP-4]
711E514C    8950 02          MOV DWORD PTR DS:[EAX+2],EDX
711E514F    66:C740 06 90E9  MOV WORD PTR DS:[EAX+6],0E990
711E5155    8BD3             MOV EDX,EBX
711E5157    2BD0             SUB EDX,EAX
711E5159    83EA 06          SUB EDX,6
711E515C    8950 08          MOV DWORD PTR DS:[EAX+8],EDX
711E515F    8BD0             MOV EDX,EAX
711E5161    66:C703 90E9     MOV WORD PTR DS:[EBX],0E990              ; 修改为跳去壳中
711E5166    8B5D E8          MOV EBX,DWORD PTR SS:[EBP-18]
711E5169    83C3 06          ADD EBX,6
711E516C    8B45 E0          MOV EAX,DWORD PTR SS:[EBP-20]
711E516F    03C0             ADD EAX,EAX
711E5171    03D8             ADD EBX,EAX
711E5173    8B45 E8          MOV EAX,DWORD PTR SS:[EBP-18]
711E5176    8B00             MOV EAX,DWORD PTR DS:[EAX]
711E5178    0FB70B           MOVZX ECX,WORD PTR DS:[EBX]
711E517B    81E9 00300000    SUB ECX,3000
711E5181    03C1             ADD EAX,ECX
711E5183    0345 DC          ADD EAX,DWORD PTR SS:[EBP-24]
711E5186    2BD0             SUB EDX,EAX
711E5188    83EA 04          SUB EDX,4
711E518B    8910             MOV DWORD PTR DS:[EAX],EDX               ; 这里写入跳去的具体地址
711E518D    8B5D E8          MOV EBX,DWORD PTR SS:[EBP-18]
711E5190    83C3 06          ADD EBX,6
711E5193    8B45 E0          MOV EAX,DWORD PTR SS:[EBP-20]
711E5196    03C0             ADD EAX,EAX
711E5198    03D8             ADD EBX,EAX
711E519A    66:C703 0000     MOV WORD PTR DS:[EBX],0
711E519F    FF4D E0          DEC DWORD PTR SS:[EBP-20]
711E51A2    837D E0 00       CMP DWORD PTR SS:[EBP-20],0
711E51A6  ^ 0F8F B2FDFFFF    JG 711E4F5E
711E51AC    8B45 E8          MOV EAX,DWORD PTR SS:[EBP-18]
711E51AF    33D2             XOR EDX,EDX
711E51B1    8910             MOV DWORD PTR DS:[EAX],EDX
711E51B3    A1 9CDB1F71      MOV EAX,DWORD PTR DS:[711FDB9C]
711E51B8    8038 00          CMP BYTE PTR DS:[EAX],0
711E51BB    75 0A            JNZ SHORT 711E51C7
711E51BD    837D F8 00       CMP DWORD PTR SS:[EBP-8],0
711E51C1  ^ 0F8F 20FDFFFF    JG 711E4EE7                              ; 如果没有处理完则跳回去
711E51C7    33C0             XOR EAX,EAX
上面相关的地方修改好后,直接F2设断在下面:

711E5256    E8 99D6FFFF      CALL 711E28F4                            ; 这里进去注册判断,感觉这样处理不是很好,因为程序的代码实际上已经完全处理好了,这里只是卡个OEP而已
711E525B    33C0             XOR EAX,EAX
711E525D    5A               POP EDX
进去之后,直接向下找就行了:
711E2D8F    8378 0C 01       CMP DWORD PTR DS:[EAX+C],1      ;这里把[eax+1c]的值改为0 跳过检测
711E2D93    74 0C            JE SHORT 711E2DA1
711E2D95    8B83 24030000    MOV EAX,DWORD PTR DS:[EBX+324]
711E2D9B    8378 30 64       CMP DWORD PTR DS:[EAX+30],64      ;这里[EAX+30]的值不为64就可以跳过注册,通常这里值为65,如果不用注册的话。
711E2D9F    75 0A            JNZ SHORT 711E2DAB
711E2DA1    8BC3             MOV EAX,EBX
这里也处理好了后,直接在这里下断:
711E52CC    5B               POP EBX
711E52CD    8BE5             MOV ESP,EBP
711E52CF    5D               POP EBP
711E52D0    C3               RETN                                     ; 直接在这里下断,断下后F7跟进去
711E52D1    0000             ADD BYTE PTR DS:[EAX],AL
……
711E3B53    0000             ADD BYTE PTR DS:[EAX],AL
711E3B55    74 03            JE SHORT 711E3B5A                        ; 进来这里
711E3B57    75 01            JNZ SHORT 711E3B5A
711E3B59  - E9 83F80074      JMP E51F33E1
711E3B5E    52               PUSH EDX
711E3B5F    8A1D 8E062171    MOV BL,BYTE PTR DS:[7121068E]
711E3B65    80FB 00          CMP BL,0
711E3B68    75 27            JNZ SHORT 711E3B91
711E3B6A    35 FFFFFFFF      XOR EAX,FFFFFFFF
711E3B6F    894424 34        MOV DWORD PTR SS:[ESP+34],EAX
711E3B73    83C4 10          ADD ESP,10
711E3B76    64:8F05 00000000 POP DWORD PTR FS:[0]
711E3B7D    58               POP EAX
711E3B7E    25 00010000      AND EAX,100
711E3B83    3D 00010000      CMP EAX,100
711E3B88    74 27            JE SHORT 711E3BB1
711E3B8A    E8 1D89FCFF      CALL 711AC4AC                            ; 进来后,ENTER进入里面看看
711E3B8F    EB 20            JMP SHORT 711E3BB1
711E3B91    894424 34        MOV DWORD PTR SS:[ESP+34],EAX
再次进到这里后向下找就可以很快到oep的:
711AC56B  ^\EB DE            JMP SHORT 711AC54B
711AC56D    64:FF35 00000000 PUSH DWORD PTR FS:[0]
711AC574    64:8925 00000000 MOV DWORD PTR FS:[0],ESP                 ; 向下直接找到这里
711AC57B    CC               INT3
711AC57C    90               NOP
711AC57D    64:8F05 00000000 POP DWORD PTR FS:[0]
711AC584    C3               RETN                                     ; 在这里下f2断点,然后F9运行中断后F7就会跳去oep
711AC585    C3               RETN
OK到这里分析完毕,重来,把前面记录下的地方总结一下:
CRC检测一:
711E38A2    0F95C0          SETNE AL        这里处理CRC的
711E38A5    5E              POP ESI
711E38A6    5B              POP EBX
711E38A7    C3              RETN         
......
修改为:
711E38A2    B0 00            MOV AL,0
711E38A4    90               NOP
711E38A5    5E               POP ESI
711E38A6    5B               POP EBX
711E38A7    C3               RETN

CRC处理二:
711E5459    0F95C0          SETNE AL
711E545C    5F              POP EDI
711E545D    5E              POP ESI
711E545E    5B              POP EBX
711E545F    C3              RETN
……
修改为:
711E5459    B0 00            MOV AL,0
711E545B    90               NOP
711E545C    5F               POP EDI
711E545D    5E               POP ESI
711E545E    5B               POP EBX
711E545F    C3               RETN

IAT处理一:
711E37C5    334D FC         XOR ECX,DWORD PTR SS:[EBP-4]  ;写入正确的API函数处理
711E37C8    8908            MOV DWORD PTR DS:[EAX],ECX
711E37CA    8955 F8         MOV DWORD PTR SS:[EBP-8],EDX
......
修改成:
711E37C5    8B4D FC         MOV ECX,DWORD PTR SS:[EBP-4]
711E37C8    8908            MOV DWORD PTR DS:[EAX],ECX
711E37CA    894D F8         MOV DWORD PTR SS:[EBP-8],ECX

IAT处理二:
711E4FEB    66:C700 FF25    MOV WORD PTR DS:[EAX],25FF
......
711E502A    66:C700 FF25    MOV WORD PTR DS:[EAX],25FF

修改成:
711E4FEB    E8 10090000      CALL 711E5900
......
711E502A    E8 D1080000      CALL 711E5900
......
711E5900    66:813B 90E8     CMP WORD PTR DS:[EBX],0E890              ; 判断是jmp还是call
711E5905    75 06            JNZ SHORT 711E590D                       ; 如果不为call则跳
711E5907    66:C703 FF15     MOV WORD PTR DS:[EBX],15FF
711E590C    C3               RETN
711E590D    66:C703 FF25     MOV WORD PTR DS:[EBX],25FF
711E5912    C3               RETN

替换代码处理:
711E5146    66:8910         MOV WORD PTR DS:[EAX],DX
修改为:
711E5146    66:8913         MOV WORD PTR DS:[EBX],DX

替换代码处理:
711E5134    66:8910         MOV WORD PTR DS:[EAX],DX
修改为:
711E5134    66:8913         MOV WORD PTR DS:[EBX],DX

替换代码处理:
71236710 >  807C24 08 01    CMP BYTE PTR SS:[ESP+8],1
71236715    0F85 9D010000   JNZ 712368B8
修改为:
71236710 >  807C24 08 01    CMP BYTE PTR SS:[ESP+8],1
71236715   /0F85 AC010000   JNZ 712368C7

替换代码处理:
这下面的代码nop掉
711E505C    8910            MOV DWORD PTR DS:[EAX],EDX
......
711E501E    8910            MOV DWORD PTR DS:[EAX],EDX
......
711E5161    66:C703 90E9    MOV WORD PTR DS:[EBX],0E990
......
711E518B    8910            MOV DWORD PTR DS:[EAX],EDX

跳过注册:
711E2D8F    8378 0C 01       CMP DWORD PTR DS:[EAX+C],1      ;把[EAX+C]的值改为0
711E2D93    74 0C            JE SHORT 711E2DA1
711E2D95    8B83 24030000    MOV EAX,DWORD PTR DS:[EBX+324]
711E2D9B    8378 30 64       CMP DWORD PTR DS:[EAX+30],64    ;把[EAX+30]的值改成65
711E2D9F    75 0A            JNZ SHORT 711E2DAB
711E2DA1    8BC3             MOV EAX,EBX
全篇完!^_^

Greetz:
Fly.Jingulong,yock,tDasm.David.hexer,hmimys,ahao.UFO(brother).alan(sister).all of my friends and you!

By loveboom[DFCG][FCG][US]
http://blog.csdn.net/bmd2chen
Email:loveboom#163.com
Date:5/22/2005 4:59:00 PM

[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最新回复 (13)
fly 85 2005-5-22 17:44
2
0
辛苦
两种加壳方式解码时有某些参数不同
wzmooo 2005-5-22 18:40
3
0
先到dfcg看到了 到这里也来顶下
systembug 2005-5-23 01:57
4
0
N人的啊
只是羡慕ING……
liyangsj 25 2005-5-23 07:00
5
0
厉害啊,支持
prince 16 2005-5-23 08:33
6
0
强!
whhgroup 2005-5-25 16:08
7
0
真是厉害呀,^_^
xjf6 2005-5-28 09:56
8
0
老手高手!
ybbhiu 2005-5-29 14:11
9
0
支持!!!!!!!!!!
cater 5 2005-8-9 10:13
10
0
和fly 的精华分数 都不到 二十个了~
bokonger 2005-8-9 14:06
11
0
非service  呵呵,现在缺少哪个,顶
dmacro 2005-8-18 14:53
12
0
唉,下是下来了,就是看不懂
pendan2001 4 2005-8-18 15:38
13
0
强!
lnn1123 13 2005-8-19 11:56
14
0
前辈真是强!
游客
登录 | 注册 方可回帖
返回