小生我怕怕 发表于 2008-5-24 20:48

Crackme

我也找了几个Crackme来大家娱乐下!!!!!1

小生我怕怕 发表于 2008-5-24 21:23

上面是4个 CrackME破解后的效果!!!!!

glassfox 发表于 2008-5-24 21:23

菜鸟也来试试咯

wlg1 发表于 2008-5-24 21:27

啊·真有意思啊 楼主··

glassfox 发表于 2008-5-24 21:29


glassfox 发表于 2008-5-24 21:35


glassfox 发表于 2008-5-24 21:45

感谢楼主提供这么好玩的东西 谢谢!

apzp000 发表于 2008-5-24 21:51

    都挺简单的

ximo 发表于 2008-5-24 21:51

后面3个CrackMe好象很古老了
我就对第一个CrackMe进行一下分析吧
首先是爆破,由于很简单,所以我就用SMC吧.
修改代码如下:

0040133C/75 15      jnz short Key-Crac.00401353      //爆破点
修改代码:
00438B1E   61         popad
00438B1F   EB 0F      jmp short Key-Crac.00438B30
00438B21   90         nop
00438B22   90         nop
00438B23   90         nop
00438B24   0000      add byte ptr ds:,al
00438B26   0000      add byte ptr ds:,al
00438B28   0000      add byte ptr ds:,al
00438B2A   0000      add byte ptr ds:,al
00438B2C   0000      add byte ptr ds:,al
00438B2E   0000      add byte ptr ds:,al
00438B30   66:C705 3C134000 74>mov word ptr ds:,1574
00438B39- E9 C284FCFF   jmp Key-Crac.00401000
00438B3E   0000      add byte ptr ds:,al


***************************************************************************************
下面简单分析下算法:
004012F6   68 38304000   push 11.00403038          ; ASCII "178911980"
004012FB   E8 30010000   call <jmp.&kernel32.lstrlen>    ; 取注册名的长度,放到EAX中,做循环的次数
00401300   33F6      xor esi,esi            ; ESI清0
00401302   8BC8      mov ecx,eax            ; EAX的值放到ECX中
00401304   B8 01000000   mov eax,1             ; EAX=1
00401309   8B15 38304000    mov edx,dword ptr ds:   ; 注册名放到EDX中
0040130F   8A90 37304000    mov dl,byte ptr ds:; 去注册名的每一位的ASCII放到DL中
00401315   81E2 FF000000    and edx,0FF            ; EDX和0FF做与运算,也就是EDX的其他位清0
0040131B   8BDA      mov ebx,edx            ; EDX的值放到EBX中
0040131D   0FAFDA       imul ebx,edx            ; 注册名的第每一位ASCIIC^2,结果放EBX中
00401320   03F3      add esi,ebx            ; ESI+EBX
00401322   8BDA      mov ebx,edx            ; EDX值放EBX中
00401324   D1FB      sar ebx,1             ; EBX/2,放EBX中
00401326   03F3      add esi,ebx            ; ESI<--ESI+EBX
00401328   2BF2      sub esi,edx            ; ESI-EDX
0040132A   40         inc eax
0040132B   49         dec ecx
0040132C^ 75 DB      jnz short 11.00401309       ; 循环
0040132E   56         push esi
0040132F   68 38314000   push 11.00403138          ; ASCII "123456"
00401334   E8 4A000000   call 11.00401383          ; 转上述结果转十进制
00401339   5E         pop esi
0040133A   3BC6      cmp eax,esi            ; 比较结果
0040133C   75 15      jnz short 11.00401353       ; 关键跳

很简单,就是取注册名的每一位的ASCII值,然后做平方运算,所得的值加上这个ASCII除2的商,再减这个ASCII值,然后每一位都进行这运算,最后把那些值全加起来,转化为10进制,就是注册码
如:
注册名:178911980
注册码:25061

简单的分析一下,有错误,请告诉我,谢谢!

小生我怕怕 发表于 2008-5-25 00:39

嘿嘿,我自己做不了,只好去PYG找了下,随便拿了几个简单的来大家练手玩,主要新手增加信心!
页: [1] 2
查看完整版本: Crackme