首页
社区
课程
招聘
[下载]破解练习
发表于: 2009-6-27 23:17 29933

[下载]破解练习

2009-6-27 23:17
29933
收藏
免费 0
支持
分享
最新回复 (48)
雪    币: 452
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
::0042AC5C:: 55                         PUSH EBP                     
::0042AC5D:: 8BEC                       MOV EBP,ESP                  
::0042AC5F:: 81EC 18000000              SUB ESP,18                    
::0042AC65:: 6A FF                      PUSH -1                       
::0042AC67:: 6A 08                      PUSH 8                        内容(“编辑框2”的属性)
::0042AC69:: 68 E5030116                PUSH 160103E5                 编辑框2(编辑框)
::0042AC6E:: 68 01000152                PUSH 52010001                 窗体单元1(父窗体)
::0042AC73:: E8 656F0000                CALL 00431BDD                 取窗体对象属性(调用4号服务)
::0042AC78:: 83C4 10                    ADD ESP,10                    
::0042AC7B:: 8945 FC                    MOV [EBP-4],EAX               
::0042AC7E:: 6A FF                      PUSH -1                       
::0042AC80:: 6A 08                      PUSH 8                        内容(“编辑框1”的属性)
::0042AC82:: 68 E4030116                PUSH 160103E4                 编辑框1(编辑框)
::0042AC87:: 68 01000152                PUSH 52010001                 窗体单元1(父窗体)
::0042AC8C:: E8 4C6F0000                CALL 00431BDD                 取窗体对象属性(调用4号服务)
::0042AC91:: 83C4 10                    ADD ESP,10                    
::0042AC94:: 8945 F8                    MOV [EBP-8],EAX               
::0042AC97:: 6A 01                      PUSH 1                        
::0042AC99:: 8D45 F8                    LEA EAX,[EBP-8]               
::0042AC9C:: 50                         PUSH EAX                     
::0042AC9D:: 6A 01                      PUSH 1                        
::0042AC9F:: B8 73314000                MOV EAX,403173                linked(常量)
::0042ACA4:: 8945 F4                    MOV [EBP-C],EAX               
::0042ACA7:: 8D45 F4                    LEA EAX,[EBP-C]               
::0042ACAA:: 50                         PUSH EAX                     
::0042ACAB:: C745 EC 00000000           MOV DWORD PTR [EBP-14],0      
::0042ACB2:: C745 F0 00000000           MOV DWORD PTR [EBP-10],0      
::0042ACB9:: 6A 00                      PUSH 0                        
::0042ACBB:: FF75 F0                    PUSH DWORD PTR [EBP-10]      
::0042ACBE:: FF75 EC                    PUSH DWORD PTR [EBP-14]      
::0042ACC1:: 6A 01                      PUSH 1                        
::0042ACC3:: 8D45 FC                    LEA EAX,[EBP-4]               
::0042ACC6:: 50                         PUSH EAX                     
::0042ACC7:: 68 10049B00                PUSH 9B0410                  
::0042ACCC:: 8B0424                     MOV EAX,[ESP]                 
::0042ACCF:: 8B00                       MOV EAX,[EAX]                 
::0042ACD1:: 8B00                       MOV EAX,[EAX]                 
::0042ACD3:: FF50 10                    CALL [EAX+10]                 
::0042ACD6:: 8945 E8                    MOV [EBP-18],EAX              
::0042ACD9:: 8B5D FC                    MOV EBX,[EBP-4]               
::0042ACDC:: 85DB                       TEST EBX,EBX                  
::0042ACDE:: 74 09                      JE SHORT 0042ACE9            
::0042ACE0:: 53                         PUSH EBX                     
::0042ACE1:: E8 D96E0000                CALL 00431BBF                 销毁从堆上分配到的内存(调用8号服务)
::0042ACE6:: 83C4 04                    ADD ESP,4                     
::0042ACE9:: 8B5D F4                    MOV EBX,[EBP-C]               
::0042ACEC:: 85DB                       TEST EBX,EBX                  
::0042ACEE:: 74 09                      JE SHORT 0042ACF9            
::0042ACF0:: 53                         PUSH EBX                     
::0042ACF1:: E8 C96E0000                CALL 00431BBF                 销毁从堆上分配到的内存(调用8号服务)
::0042ACF6:: 83C4 04                    ADD ESP,4                     
::0042ACF9:: 8B5D F8                    MOV EBX,[EBP-8]               
::0042ACFC:: 85DB                       TEST EBX,EBX                  
::0042ACFE:: 74 09                      JE SHORT 0042AD09            
::0042AD00:: 53                         PUSH EBX                     
::0042AD01:: E8 B96E0000                CALL 00431BBF                 销毁从堆上分配到的内存(调用8号服务)
::0042AD06:: 83C4 04                    ADD ESP,4                     
::0042AD09:: 837D E8 00                 CMP DWORD PTR [EBP-18],0      
::0042AD0D:: 0F84 3B000000              JE 0042AD4E                  
::0042AD13:: 68 04000080                PUSH 80000004                 文本型(基本数据类型)
::0042AD18:: 6A 00                      PUSH 0                        
::0042AD1A:: 68 7A314000                PUSH 40317A                   牛逼(常量)
::0042AD1F:: 68 01030080                PUSH 80000301                 整数型(基本数据类型)
::0042AD24:: 6A 00                      PUSH 0                        
::0042AD26:: 68 40000000                PUSH 40                       
::0042AD2B:: 68 04000080                PUSH 80000004                 文本型(基本数据类型)
::0042AD30:: 6A 00                      PUSH 0                        
::0042AD32:: 68 7F314000                PUSH 40317F                   恭喜!破解成功!有能力点写个注册机吧!(常量)
::0042AD37:: 68 03000000                PUSH 3                        
::0042AD3C:: BB 00030000                MOV EBX,300                   信息框(系统核心支持库)
::0042AD41:: E8 7F6E0000                CALL 00431BC5                 调用核心支持库命令(调用3号服务)
::0042AD46:: 83C4 28                    ADD ESP,28                    
::0042AD49:: E9 36000000                JMP 0042AD84                  
::0042AD4E:: 68 04000080                PUSH 80000004                 文本型(基本数据类型)
::0042AD53:: 6A 00                      PUSH 0                        
::0042AD55:: 68 A6314000                PUSH 4031A6                   加油啊(常量)
::0042AD5A:: 68 01030080                PUSH 80000301                 整数型(基本数据类型)
::0042AD5F:: 6A 00                      PUSH 0                        
::0042AD61:: 68 10000000                PUSH 10                       
::0042AD66:: 68 04000080                PUSH 80000004                 文本型(基本数据类型)
::0042AD6B:: 6A 00                      PUSH 0                        
::0042AD6D:: 68 AD314000                PUSH 4031AD                   继续努力吧!(常量)
::0042AD72:: 68 03000000                PUSH 3                        
::0042AD77:: BB 00030000                MOV EBX,300                   信息框(系统核心支持库)
::0042AD7C:: E8 446E0000                CALL 00431BC5                 调用核心支持库命令(调用3号服务)
::0042AD81:: 83C4 28                    ADD ESP,28                    
::0042AD84:: 8BE5                       MOV ESP,EBP                  
::0042AD86:: 5D                         POP EBP                       
::0042AD87:: C3                         RETN
2009-6-27 23:28
0
雪    币: 452
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
CuteSnail

BA4E9B74504
2009-6-27 23:41
0
雪    币: 46
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
⊙﹏⊙b汗

楼上的 仁兄  分析的

真牛X
2009-6-28 00:53
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5


00430C78 83C4 10 add esp, 10 ; 在栈中抛去空闲空间,大小为10字节(如EAX为双字,4字节)
00430C7B 8945 FC mov dword ptr [ebp-4], eax
00430C7E 6A FF push -1 ; 0xFFFFFFFF进栈
00430C80 6A 08 push 8 ; 0x8进栈
00430C82 68 E4030116 push 160103E4 ; 0x160103E4进栈
00430C87 68 01000152 push 52010001 ; 0x52010001进栈
00430C8C E8 4C6F0000 call 00437BDD ; 程序内部调用函数 10029627
00430C91 83C4 10 add esp, 10 ; 在栈中抛去空闲空间,大小为10字节(如EAX为双字,4字节)
00430C94 8945 F8 mov dword ptr [ebp-8], eax
00430C97 6A 01 push 1 ; 0x1进栈
00430C99 8D45 F8 lea eax, dword ptr [ebp-8]
00430C9C 50 push eax ; 0x12F48C进栈
00430C9D 6A 01 push 1 ; 0x1进栈
00430C9F B8 73914000 mov eax, 00409173 ; ASCII "linked"
00430CA4 8945 F4 mov dword ptr [ebp-C], eax
00430CA7 8D45 F4 lea eax, dword ptr [ebp-C]
00430CAA 50 push eax ; 0x12F488进栈
00430CAB C745 EC 0000000>mov dword ptr [ebp-14], 0
00430CB2 C745 F0 0000000>mov dword ptr [ebp-10], 0
00430CB9 6A 00 push 0 ; 0x0进栈
00430CBB FF75 F0 push dword ptr [ebp-10]
00430CBE FF75 EC push dword ptr [ebp-14]
00430CC1 6A 01 push 1 ; 0x1进栈
00430CC3 8D45 FC lea eax, dword ptr [ebp-4]
00430CC6 50 push eax ; 0x12F490进栈
00430CC7 68 D004DC00 push 0DC04D0 ; 0xDC04D0进栈
00430CCC 8B0424 mov eax, dword ptr [esp]
00430CCF 8B00 mov eax, dword ptr [eax]
00430CD1 8B00 mov eax, dword ptr [eax]
00430CD3 FF50 10 call dword ptr [eax+10]
00430CD6 8945 E8 mov dword ptr [ebp-18], eax
00430CD9 8B5D FC mov ebx, dword ptr [ebp-4]
00430CDC 85DB test ebx, ebx ; ZF=0 //0x1C8B18&0x1C8B18=0x1C8B18
00430CDE 74 09 je short 00430CE9 ; 不跳 //ZF=0;只有相等时,才跳
00430CE0 53 push ebx ; 0x1C8B18进栈
00430CE1 E8 D96E0000 call 00437BBF ; 计算linked,不知道为啥要计算这个。。
00430CE6 83C4 04 add esp, 4 ; 在栈中抛去空闲空间,大小为4字节(如EAX为双字,4字节)
00430CE9 8B5D F4 mov ebx, dword ptr [ebp-C]
00430CEC 85DB test ebx, ebx ; ZF=0 //0x409173&0x409173=0x409173
00430CEE 74 09 je short 00430CF9 ; 不跳 //ZF=0;只有相等时,才跳
00430CF0 53 push ebx ; 0x409173进栈
00430CF1 E8 C96E0000 call 00437BBF ; call 计算用户名
00430CF6 83C4 04 add esp, 4 ; 在栈中抛去空闲空间,大小为4字节(如EAX为双字,4字节)
00430CF9 8B5D F8 mov ebx, dword ptr [ebp-8]
00430CFC 85DB test ebx, ebx ; ZF=0 //0x1C8948&0x1C8948=0x1C8948
00430CFE 74 09 je short 00430D09 ; 不跳 //ZF=0;只有相等时,才跳
00430D00 53 push ebx ; 0x1C8948进栈
00430D01 E8 B96E0000 call 00437BBF ; call 计算假码。。。
00430D06 83C4 04 add esp, 4 ; 在栈中抛去空闲空间,大小为4字节(如EAX为双字,4字节)
00430D09 837D E8 00 cmp dword ptr [ebp-18], 0
00430D0D 0F84 3B000000 je 00430D4E ; 关键跳
00430D13 68 04000080 push 80000004
00430D18 6A 00 push 0
00430D1A 68 7A914000 push 0040917A ; ASCII "牛逼"
00430D1F 68 01030080 push 80000301
00430D24 6A 00 push 0
00430D26 68 40000000 push 40
00430D2B 68 04000080 push 80000004
00430D30 6A 00 push 0
00430D32 68 7F914000 push 0040917F
00430D37 68 03000000 push 3
00430D3C BB 00030000 mov ebx, 300
00430D41 E8 7F6E0000 call 00437BC5





100297CA 55 push ebp ; 0x12F494进栈
100297CB 8BEC mov ebp, esp ; EBP=0x12F470
100297CD 837D 08 00 cmp dword ptr [ebp+8], 0
100297D1 74 25 je short 100297F8 ; 不跳 //ZF=0;只有相等时,才跳
100297D3 8B45 08 mov eax, dword ptr [ebp+8]
100297D6 50 push eax ; 0x1C8948进栈
100297D7 B9 98CF0E10 mov ecx, 100ECF98 ; ECX=0x100ECF98
100297DC E8 1F090300 call 1005A100 ; 程序内部调用函数 跟进1005A100
100297E1 85C0 test eax, eax ; ZF=1 //0x0&0x0=0
100297E3 75 13 jnz short 100297F8 ; 不跳 //ZF=1;当比较结果是不等于时,才跳
100297E5 8B4D 08 mov ecx, dword ptr [ebp+8]
100297E8 51 push ecx ; 0x1C8948进栈
100297E9 6A 00 push 0 ; 0x0进栈
100297EB 8B15 24D40E10 mov edx, dword ptr [100ED424]
100297F1 52 push edx ; 0x140000进栈 (unicode字符串:"è")
100297F2 FF15 D0330C10 call dword ptr [<&KERNEL32.HeapFree>] ; ntdll.RtlFreeHeap
100297F8 5D pop ebp ; EBP=0x12F494
100297F9 C3 retn ; ____函数返回处____retn
100297FA 55 push ebp
100297FB 8BEC mov ebp, esp
100297FD 8B45 08 mov eax, dword ptr [ebp+8]
10029800 50 push eax
10029801 B9 98CF0E10 mov ecx, 100ECF98
10029806 E8 04F5FFFF call 10028D0F
1002980B 5D pop ebp
1002980C C2 0400 retn 4





1005A100 8B91 14020000 mov edx, dword ptr [ecx+214]
1005A106 8B81 14020000 mov eax, dword ptr [ecx+214]
1005A10C C1EA 03 shr edx, 3 ; EDX=0x1 //0x8>>0x3 移出的数据进入标志位CF
1005A10F 85C0 test eax, eax ; ZF=0 //0x8&0x8=0x8
1005A111 75 04 jnz short 1005A117 ; 跳到1005A117 //ZF=0
1005A113 33C0 xor eax, eax
1005A115 EB 06 jmp short 1005A11D
1005A117 8B81 0C020000 mov eax, dword ptr [ecx+20C]
1005A11D 33C9 xor ecx, ecx ; ECX=0,CF=0 //自身xor运算结果为0,CF=0
1005A11F 56 push esi ; 0x1BFDA7进栈
1005A120 85D2 test edx, edx ; ZF=0 //0x1&0x1=0x1
1005A122 7E 15 jle short 1005A139 ; 不跳 //ZF=0;当比较结果是小于或等于时,才跳
1005A124 8B7424 08 mov esi, dword ptr [esp+8]
1005A128 3B30 cmp esi, dword ptr [eax]
1005A12A 72 05 jb short 1005A131 ; 不跳 //当比较结果是小于时,才跳
1005A12C 3B70 04 cmp esi, dword ptr [eax+4]
1005A12F 72 0E jb short 1005A13F ; 跳到1005A13F //ZF=0,CF=1
1005A131 83C0 08 add eax, 8 ; EAX=0x100ED6FC //EAX=0x100ED6F4+0x8
1005A134 41 inc ecx ; ECX=(0x0)++
1005A135 3BCA cmp ecx, edx ; ZF=1 //ECX=0x1,EDX=0x1
1005A137 ^ 7C EF jl short 1005A128 ; 不跳 //ZF=0,当比较结果是小于时,才跳
1005A139 33C0 xor eax, eax ; EAX=0,CF=0 //自身xor运算结果为0,CF=0
1005A13B 5E pop esi ; ESI=0x1BFDA7
1005A13C C2 0400 retn 4 ; __函数返回处___地址出栈后再加0x4
1005A13F 8B40 04 mov eax, dword ptr [eax+4]
1005A142 5E pop esi ; ESI=0x1BFDA7
1005A143 C2 0400 retn 4 ; __函数返回处___地址出栈后再加0x4



研究了半天算法还没搞懂。。。。真晕。。
2009-6-28 08:53
0
雪    币: 46
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
楼上努力啊!!!
2009-6-28 09:35
0
雪    币: 102
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
还加了壳啊..
2009-6-28 10:36
0
雪    币: 1915
活跃值: (634)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
牛X
我汗还有点难呀
2009-6-28 12:26
0
雪    币: 452
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
keheng 兄弟,你已经知道决定跳转的是:

00430D09    837D E8 00      cmp     dword ptr [ebp-18], 0

那么 dword ptr [ebp-18] 的值又是从哪里来的呐?

是从:

00430CD6    8945 E8         mov     dword ptr [ebp-18], eax

来的!是eax的结果决定的!

那决定eax的是哪个语句哪?自然是它上面的那句:

00430CD3    FF50 10         call    dword ptr [eax+10]

为什么不F7跟进去看看呐??呵呵,好运~
2009-6-30 10:42
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
[QUOTE=CuteSnail;648776]keheng 兄弟,你已经知道决定跳转的是:

00430D09    837D E8 00      cmp     dword ptr [ebp-18], 0

那么 dword ptr [ebp-18] 的值又是从哪里来的呐?

是从:

00430CD6    8945 E8...[/QUOTE]

哦,原来重要在这里。谢谢指点。。。。。。。。。。

keheng
8E50419F479
2009-6-30 11:23
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
这个cm里面写了很多的垃圾指令来整人的。。。。真正计算注册码的没多少。。。。。。。。
2009-6-30 14:28
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
脱壳还是蛮绕的 顺利搞定了 呵呵
可惜本人菜鸟一只 只会爆破。。。。
2009-6-30 17:02
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjr
13
keheng,请问这个如何脱壳,我找到了oep,好像不能dump,不知道怎么回事?
2009-7-1 00:31
0
雪    币: 290
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
5楼的步骤分析的很详细 呵呵
2009-7-1 05:32
0
雪    币: 318
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
来学习一下!!
2009-7-1 08:10
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
这个脱壳其实很简单,OD载入

00401000 >/$  68 94F94700   push    0047F994
00401005  |?  E8 01000000   call    0040100B                            ;F7跟进
0040100A  |?  C3            retn
0040100B  |.  C3            retn
0040100C  |?  60            pushad
0040100D  |.  8B7424 24     mov     esi, dword ptr [esp+24]
00401011  |?  8B7C24 28     mov     edi, dword ptr [esp+28]
00401015  |?  FC            cld

F8单步走到这里。。。。

0047F9A0    FFE0            jmp     eax
0047F9A2    B1 15           mov     cl, 15
0047F9A4    0000            add     byte ptr [eax], al
0047F9A6    60              pushad
0047F9A7    E8 00000000     call    0047F9AC                   ;用ESP定律
0047F9AC    5E              pop     esi
0047F9AD    83EE 0A         sub     esi, 0A
0047F9B0    8B06            mov     eax, dword ptr [esi]
0047F9B2    03C2            add     eax, edx
0047F9B4    8B08            mov     ecx, dword ptr [eax]
0047F9B6    894E F3         mov     dword ptr [esi-D], ecx
0047F9B9    83EE 0F         sub     esi, 0F
0047F9BC    56              push    esi

用ESP定律(这个不用说了吧。。。。。。。。。。),运行到达

0047F994    B8 61380000     mov     eax, 3861                ;f8单步
0047F999    BA 00004000     mov     edx, 00400000
0047F99E    03C2            add     eax, edx
0047F9A0    FFE0            jmp     eax                                跟至OEP

loadpe脱壳。。。。。修复

脱壳完成后会提示Invalid data in th file!

用winhex载入原文件,光标从下到上找到全部为00的地方

把这个数据复制到刚修复的文件就OK了。
2009-7-1 09:12
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
详细是详细,可惜是错的。。。。。。。。。
2009-7-1 09:13
0
雪    币: 240
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
脱壳完成后会提示Invalid data in th file!

用winhex载入原文件,光标从下到上找到全部为00的地方

把这个数据复制到刚修复的文件就OK了。
=========================
只能做到这一步,提示Invalid data in th file!
怎么用WinHex来修复。能详细点吗?
keheng!
2009-7-1 13:18
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
建议多看看脱壳教程。。。。。俺也是菜鸟一个。。
上传的附件:
2009-7-1 14:38
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjr
20
明白,这是附加数据
2009-7-1 16:57
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yjr
21
多谢,keheng
2009-7-1 17:00
0
雪    币: 235
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
我的PEID查不出,什么都没找到  [Overlay] *
Exeinfo PE就查出是KByS 0.28 beta EXE ( shoooo ) china 2006.05.23 *ACM  -   Overlay : A5B79A... Nothing discovered

我是没见过这壳,没想,OD载入后,几下到了00430D0D   /0F84 3B000000   je      00430D4E

没多想,je改jne,一试,成功了。
2009-7-1 21:50
0
雪    币: 452
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
23
呵呵,keheng的桌面够简洁! 最后施工图。。。
2009-7-2 20:23
0
雪    币: 245
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
请高手指点一下算法。。在里面绕来绕去,头大ing。。
上传的附件:
2009-7-2 23:11
0
雪    币: 319
活跃值: (49)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
25
这只是屏幕的一角。。。。。。。。。。。

那是朋友要我给他发的文件
2009-7-3 11:00
0
游客
登录 | 注册 方可回帖
返回
//