【目 标】: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