XKQ 发表于 2015-7-8 21:21

发一个难度小一点的CrackME

无壳无花无V无暗装无检测调试器无恶意代码
大神们快点虐,成功后有信息框提示,仅仅有一个跳


XKQ 发表于 2015-7-11 12:29

pnccm 发表于 2015-7-11 00:19
int3那个是如何实现的00401DD4|> \58            pop eax
00401DD4|> \58      ...

在XP下就不会这样了,VEH异常处理

珈蓝夜雨 发表于 2015-7-11 00:07


赖哥 发表于 2015-7-8 21:49

好像学破解也有一个

XKQ 发表于 2015-7-8 21:49

赖哥 发表于 2015-7-8 21:49
好像学破解也有一个

都是同一个

凉游浅笔深画眉 发表于 2015-7-10 23:48

这CM,明天就火了

逍遥枷锁 发表于 2015-7-10 23:56

凉游浅笔深画眉 发表于 2015-7-10 23:48
这CM,明天就火了

有没有录制视频啊,错过珈蓝老师的讲解很遗憾啊,有录制就分享下,谢谢老师。{:301_971:}

pnccm 发表于 2015-7-11 00:19

int3那个是如何实现的00401DD4|> \58            pop eax
00401DD4|> \58            pop eax
00401DD5|.A3 94244B00   mov dword ptr ds:,eax          ;   1-
00401DDA|.B8 01000101   mov eax,0x1010001
00401DDF|.CC            int3                                     ;这个是怎么实现跳转的?
00401DE0|.8BE5          mov esp,ebp
00401DE2|.5D            pop ebp
00401DE3\.C3            retn

F7跟进去。在没找打关键位置前是跳转到这里来的006A99F1    B8 C81B4000   mov eax,0x401BC8                         ; 就会跳到这里
006A99F6    FFE0            jmp eax
006A99F8    0000            add byte ptr ds:,al
006A99FA    0000            add byte ptr ds:,al
006A99FC    0000            add byte ptr ds:,al
006A99FE    0000            add byte ptr ds:,al


如果找到关键跳转的话就能回溯到这里下断点。然后到int3后就能跳转到这里。这是如何实现的呢?
00401BD4   .56            push esi
00401BD5   .57            push edi
00401BD6   .53            push ebx
00401BD7   .8D7424 10   lea esi,dword ptr ss:
00401BDB   .83EC 04       sub esp,0x4
00401BDE   .8BFC          mov edi,esp
00401BE0   .FC            cld
00401BE1   .B9 01000000   mov ecx,0x1
00401BE6   .F3:A5         rep movs dword ptr es:,dword ptr ds>
00401BE8   .E8 42F5FFFF   call 123.0040112F
00401BED   .5B            pop ebx
00401BEE   .5F            pop edi
00401BEF   .5E            pop esi
00401BF0   .C2 0400       retn 0x4

没在代码3设置断点前int3处单步是直接运行过去。来到到代码2的地方。如果有在代码3处下断点却能断下来。楼主能说说原理吗?

ollydebug 发表于 2015-7-11 17:10

本帖最后由 ollydebug 于 2015-7-11 17:18 编辑

@XKQ @珈蓝夜雨 这个CM类似于去年CM大赛@Poner 的那个,是利用VEH的CM。
按钮事件断下后来到这里。
00401C90/.55            push ebp
00401C91|.8BEC          mov ebp,esp
00401C93|.81EC 14000000 sub esp,0x14
00401C99|.68 00000000   push 0x0
00401C9E|.BB 807C4000   mov ebx,cracked.00407C80
00401CA3|.E8 B3550000   call cracked.0040725B
00401CA8|.83C4 04       add esp,0x4
00401CAB|.68 01030080   push 0x80000301
00401CB0|.6A 00         push 0x0
00401CB2|.50            push eax
00401CB3|.68 01000000   push 0x1
00401CB8|.BB C0774000   mov ebx,cracked.004077C0
00401CBD|.E8 99550000   call cracked.0040725B
00401CC2|.83C4 10       add esp,0x10
00401CC5|.8945 F8       mov ,eax
00401CC8|.68 05000080   push 0x80000005
00401CCD|.6A 00         push 0x0
00401CCF|.8B45 F8       mov eax,
00401CD2|.85C0          test eax,eax
00401CD4|.75 05         jnz short cracked.00401CDB
00401CD6|.B8 A2AC4800   mov eax,cracked.0048ACA2
00401CDB|>50            push eax
00401CDC|.68 01000000   push 0x1
00401CE1|.B8 02000000   mov eax,0x2
00401CE6|.BB D03D4600   mov ebx,cracked.00463DD0
00401CEB|.E8 7D550000   call cracked.0040726D
00401CF0|.83C4 10       add esp,0x10
00401CF3|.8945 F4       mov ,eax
00401CF6|.8B5D F8       mov ebx,
00401CF9|.85DB          test ebx,ebx
00401CFB|.74 09         je short cracked.00401D06
00401CFD|.53            push ebx
00401CFE|.E8 52550000   call cracked.00407255
00401D03|.83C4 04       add esp,0x4
00401D06|>6A FF         push -0x1
00401D08|.6A 08         push 0x8
00401D0A|.68 5E1C0116   push 0x16011C5E
00401D0F|.68 5D1C0152   push 0x52011C5D
00401D14|.E8 5A550000   call cracked.00407273
00401D19|.83C4 10       add esp,0x10
00401D1C|.8945 F0       mov ,eax
00401D1F|.8B45 F4       mov eax,
00401D22|.50            push eax
00401D23|.FF75 F0       push
00401D26|.E8 C8FEFFFF   call cracked.00401BF3
00401D2B|.83C4 08       add esp,0x8
00401D2E|.83F8 00       cmp eax,0x0
00401D31|.B8 00000000   mov eax,0x0
00401D36|.0F94C0      sete al
00401D39|.8945 EC       mov ,eax
00401D3C|.8B5D F0       mov ebx,
00401D3F|.85DB          test ebx,ebx
00401D41|.74 09         je short cracked.00401D4C
00401D43|.53            push ebx
00401D44|.E8 0C550000   call cracked.00407255
00401D49|.83C4 04       add esp,0x4
00401D4C|>8B5D F4       mov ebx,
00401D4F|.85DB          test ebx,ebx
00401D51|.74 09         je short cracked.00401D5C
00401D53|.53            push ebx
00401D54|.E8 FC540000   call cracked.00407255
00401D59|.83C4 04       add esp,0x4
00401D5C|>837D EC 00    cmp ,0x0
00401D60|.0F84 05000000 je cracked.00401D6B
00401D66|.E8 79000000   call cracked.00401DE4
00401D6B|>6A FF         push -0x1
00401D6D|.6A 08         push 0x8
00401D6F|.68 5E1C0116   push 0x16011C5E
00401D74|.68 5D1C0152   push 0x52011C5D
00401D79|.E8 F5540000   call cracked.00407273
00401D7E|.83C4 10       add esp,0x10
00401D81|.8945 FC       mov ,eax
00401D84|.68 04000080   push 0x80000004
00401D89|.6A 00         push 0x0
00401D8B|.8B45 FC       mov eax,                        ;cracked.00401C90
00401D8E|.85C0          test eax,eax
00401D90|.75 05         jnz short cracked.00401D97
00401D92|.B8 DAAF4800   mov eax,cracked.0048AFDA
00401D97|>50            push eax
00401D98|.68 01000000   push 0x1
00401D9D|.BB C0774000   mov ebx,cracked.004077C0
00401DA2|.E8 B4540000   call cracked.0040725B
00401DA7|.83C4 10       add esp,0x10
00401DAA|.8945 F8       mov ,eax
00401DAD|.8B5D FC       mov ebx,                        ;cracked.00401C90
00401DB0|.85DB          test ebx,ebx
00401DB2|.74 09         je short cracked.00401DBD
00401DB4|.53            push ebx
00401DB5|.E8 9B540000   call cracked.00407255
00401DBA|.83C4 04       add esp,0x4
00401DBD|>8B45 F8       mov eax,
00401DC0|.50            push eax
00401DC1|.8B1D 94244B00 mov ebx,dword ptr ds:
00401DC7|.85DB          test ebx,ebx
00401DC9|.74 09         je short cracked.00401DD4
00401DCB|.53            push ebx
00401DCC|.E8 84540000   call cracked.00407255
00401DD1|.83C4 04       add esp,0x4
00401DD4|>58            pop eax                                  ;cracked.0041F240
00401DD5|.A3 94244B00   mov dword ptr ds:,eax
00401DDA|.B8 01000101   mov eax,0x1010001
00401DDF|.CC            int3
00401DE0|.8BE5          mov esp,ebp
00401DE2|.5D            pop ebp                                  ;cracked.0041F240
00401DE3\.C3            retn
其中还会有一个假码来迷惑你,看到int3后我就知道应该是VEH。他前面有个常量,所有常量搜索1010001即可到达关键位置,经过分析他下面的一个跳转即为关键跳,nop掉就ok。
0040176E   .813B 01000101 cmp dword ptr ds:,0x1010001
00401774   .0F85 57020000 jnz cracked.004019D1
0040177A   .68 02000080   push 0x80000002
0040177F   .6A 00         push 0x0
00401781   .68 01000000   push 0x1
00401786   .68 01030080   push 0x80000301
0040178B   .6A 00         push 0x0
0040178D   .68 30000000   push 0x30
00401792   .68 02000000   push 0x2
00401797   .B8 01000000   mov eax,0x1
0040179C   .BB B03B4600   mov ebx,cracked.00463BB0
004017A1   .E8 C75A0000   call cracked.0040726D
004017A6   .83C4 1C       add esp,0x1C
004017A9   .A3 90244B00   mov dword ptr ds:,eax          ;cracked.00401BD4
004017AE   .B8 88AC4800   mov eax,cracked.0048AC88
004017B3   .33C9          xor ecx,ecx
004017B5   .85C0          test eax,eax                           ;cracked.00401BD4
004017B7   .74 03         je short cracked.004017BC
004017B9   .8B48 04       mov ecx,dword ptr ds:
004017BC   >51            push ecx
004017BD   .83C0 08       add eax,0x8
004017C0   .50            push eax                                 ;cracked.00401BD4
004017C1   .A1 94244B00   mov eax,dword ptr ds:
004017C6   .33DB          xor ebx,ebx                              ;ntdll.7C99D5E0
004017C8   .85C0          test eax,eax                           ;cracked.00401BD4
004017CA   .74 03         je short cracked.004017CF
004017CC   .8B58 04       mov ebx,dword ptr ds:
004017CF   >83C0 08       add eax,0x8
004017D2   .50            push eax                                 ;cracked.00401BD4
004017D3   .3BD9          cmp ebx,ecx
004017D5   .B8 01000000   mov eax,0x1
004017DA   .75 0A         jnz short cracked.004017E6
004017DC   .48            dec eax                                  ;cracked.00401BD4
004017DD   .85C9          test ecx,ecx
004017DF   .74 05         je short cracked.004017E6
004017E1   .E8 9DF8FFFF   call cracked.00401083
004017E6   >83C4 0C       add esp,0xC
004017E9   .85C0          test eax,eax                           ;cracked.00401BD4
004017EB   .90            nop                           ;关键跳,nop掉                                 
004017EC   .90            nop
004017ED   .90            nop
004017EE   .90            nop
004017EF   .90            nop
004017F0   .90            nop
大神请问我分析的对么。时间紧迫只能简单写写了。

XKQ 发表于 2015-7-11 17:16

ollydebug 发表于 2015-7-11 17:10
@XKQ @珈蓝夜雨 这个CM类似于去年CM大赛@Poner 的那个,是利用SEH的CM。
按钮事件断下后来到这里。


确实是这样的,不过我是用VEH的(好像也没什么差别),我也没想到常量会泄露关键位置,先学习一下了
页: [1] 2
查看完整版本: 发一个难度小一点的CrackME