- UID
- 181
注册时间2005-2-15
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 开心 2017-4-4 09:40 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
【软件名称】:crackme1
【破解声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
【破解工具】:OD
———————————————————————————————————————————
一个以前学习过的CRACKME的算法~~~~~~~~~~~
【破解过程】:
004010C9 56 push esi //在此下断
004010CA 57 push edi
004010CB 51 push ecx
004010CC 33F6 xor esi,esi
004010CE 33FF xor edi,edi
004010D0 B9 08000000 mov ecx,8 ; 循环8次
004010D5 BE 44304000 mov esi,echap511.00403044 ; 假码
004010DA 8036 32 xor byte ptr ds:[esi],32 ; 假码每字节与32取异或
004010DD 46 inc esi
004010DE ^ E2 FA loopd short echap511.004010DA ; 未完返回
004010E0 BE 44304000 mov esi,echap511.00403044
004010E5 B9 04000000 mov ecx,4 ; 循环4次
004010EA 8A06 mov al,byte ptr ds:[esi] ;
004010EC 8A5E 01 mov bl,byte ptr ds:[esi+1]
004010EF 32C3 xor al,bl ;把变化后的数前后取异或
004010F1 8887 4C304000 mov byte ptr ds:[edi+40304C],al ;
004010F7 83C6 02 add esi,2
004010FA 47 inc edi
004010FB ^ E2 ED loopd short echap511.004010EA
004010FD BE 4C304000 mov esi,echap511.0040304C ;将生成的4个数变成2个
00401102 8A06 mov al,byte ptr ds:[esi]
00401104 8A5E 01 mov bl,byte ptr ds:[esi+1]
00401107 32C3 xor al,bl
00401109 8A5E 02 mov bl,byte ptr ds:[esi+2]
0040110C 8A4E 03 mov cl,byte ptr ds:[esi+3]
0040110F 32D9 xor bl,cl
00401111 32C3 xor al,bl
00401113 B9 08000000 mov ecx,8
00401118 BE 44304000 mov esi,echap511.00403044
0040111D 3006 xor byte ptr ds:[esi],al ; 将生成的1个数与原来的取异或
0040111F 46 inc esi
00401120 ^ E2 FB loopd short echap511.0040111D
00401122 B9 08000000 mov ecx,8
00401127 BE 44304000 mov esi,echap511.00403044
0040112C BF 08304000 mov edi,echap511.00403008 ; 正确结果
00401131 8A06 mov al,byte ptr ds:[esi]
00401133 3A07 cmp al,byte ptr ds:[edi]
00401135 75 1D jnz short echap511.00401154 ;关键跳
———————————————————————————————————————————
【Crack_总结】:
如果输入12345678
机器码 31 32 33 34 35 36 37 38
与32异或 03 00 01 06 07 04 05 0A ----(1)
8变4为 03 07 03 0F
4变2为 04 0C
2变1为 08 ----(2)
(1)与08取异或 0B 08 09 0E 0F 0C 0D 02
00403008 内正确的为 71 18 59 1B 79 42 45 4C
根据正确反推注册码: (关键是如何计算(2))
由算法可知(2)是由机器码反复取异或得到,其实由它的正确的密码重复这 一算法也可求的(2),实验得出。缺少证明。
机器码 71 18 59 1B 79 42 45 4C
8变4为 69 42 3B 09
4变2为 2B 32
2变1为 19 ----正确的密码的(2)值应为19
接着反推正确的注册码:
机器码 71 18 59 1B 79 42 45 4C
与19取异或 68 01 40 02 60 5B 5C 55
与32取异或 5A 33 72 30 52 69 6E 67
查表得正确的注册码为: Z 3 r 0 R i n g |
|