Crackme
我也找了几个Crackme来大家娱乐下!!!!!1 上面是4个 CrackME破解后的效果!!!!! 菜鸟也来试试咯啊·真有意思啊 楼主··
感谢楼主提供这么好玩的东西 谢谢!
都挺简单的 后面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
简单的分析一下,有错误,请告诉我,谢谢! 嘿嘿,我自己做不了,只好去PYG找了下,随便拿了几个简单的来大家练手玩,主要新手增加信心!
页:
[1]
2