能力值:
( LV12,RANK:290 )
|
-
-
2 楼
PYG的cm我没几个做出来的
|
能力值:
( LV9,RANK:850 )
|
-
-
3 楼
是OBI_ONE的Crackme。
OBI_ONE对易语言很有兴趣。可我却一点也提不起精神。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
最初由 WAKU 发布 PYG的cm我没几个做出来的
我也是
|
能力值:
( LV12,RANK:410 )
|
-
-
5 楼
最初由 wofan[OCN] 发布 是OBI_ONE的Crackme。 OBI_ONE对易语言很有兴趣。可我却一点也提不起精神。
我也是~~
|
能力值:
( LV9,RANK:1130 )
|
-
-
6 楼
他们好像都是偏向于易语言和VB,PYG 的VB crackme挺好玩 的、嘻嘻
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
彻底起弃!!
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
各位大侠继续!我头大了!!
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
只走到自校验那一步,对于杀OD没辙!
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
大家都不愿意搞啊,等破文呢!!
|
能力值:
( LV12,RANK:250 )
|
-
-
11 楼
下来发现,前几天自己就在pyg的论坛发表过了
http://ocn.e5v.com/bbs/viewthread.php?tid=5064&extra=page%3D1
copy过来,
使用softice调试,启动程序后设置
bpx setwindowtexta
进入这个断点后,如果当前程序,是你的要调试的程序
bpx 下面的地址,同时把bpx setwindowtexta断点清掉。
作者程序里面包含一个dll,这个dll,要检查一些东西
比如是对GetWindowTexta 等api下了断点等。
跟踪下面的注册码部分的程序即可,其他部分可以忽略。注册码算法作了部分分析
附图上面爆破图,下面正式注册码图
0167:004302C2 85C0 TEST EAX,EAX
0167:004302C4 7505 JNZ 004302CB
0167:004302C6 B884924000 MOV EAX,00409284
到这个地方把你输入的数据[不能小于6个字符],转成10进制表示传
我输入的[123456] 转换后为:
016F:004B1BD8 34 39 35 30 35 31 35 32-35 33 35 34 00 00 00 A0 495051525354....
0167:0043033D DC05D2994000 FADD REAL8 PTR [004099D2]
0167:00430343 DD9D60FFFFFF FSTP REAL8 PTR [EBP-00A0]
对刚才那段数据,转成64bit的整形。对低32位,左移20位,加上下面的这个数[当然要转换的]
016F:004099D2 591201314.
得到结果是如下字符串:
016F:004B1BC8 2D 32 33 37 31 37 33 37-32 36 00 00 14 00 00 A0 -237173726......
0167:004303B1 83C410 ADD ESP,10
0167:004303B4 898578FFFFFF MOV [EBP-0088],EAX
到这个位置得到输入的注册吗字符串
016F:004B18AC 4D 6A 49 34 4D 6A 4A 69-4E 47 59 77 5A 31 32 33 MjI4MjJiNGYwZ123
0167:0043044D 83C410 ADD ESP,10
0167:00430450 898574FFFFFF MOV [EBP-008C],EAX
0167:00430456 8B9D78FFFFFF MOV EBX,[EBP-0088]
0167:0043045C 85DB TEST EBX,EBX
到这个位置好象是做md5得到串,具体没有跟。
016F:004B18E4 65 31 30 61 64 63 33 39-34 39 62 61 35 39 61 62 e10adc3949ba59ab
016F:004B18F4 62 65 35 36 65 30 35 37-66 32 30 66 38 38 33 65 be56e057f20f883e
016F:004B1904 00 00 00 00 11 00 00 A0-EC FF 0D 03 0C 00 45 00 ..............E.
0167:00430578 898574FFFFFF MOV [EBP-008C],EAX
0167:0043057E 8B9D78FFFFFF MOV EBX,[EBP-0088]
0167:00430584 85DB TEST EBX,EBX
0167:00430586 7409 JZ 00430591
到这个位置就得到了,正确的注册码了,不过,1,3,5,7,9,在输入是位置在2,4,6,8,10,位置
其他位置数,可以任意,也就是说,正确的注册码是
1YTU5YWJiZTU2ZTA
2YTU5YWJiZTU2ZTA 都是可以的
5YTU5YWJiZTU2ZTA
016F:004B1C60 59 54 55 35 59 57 4A 69-5A 54 55 32 5A 54 41 31 YTU5YWJiZTU2ZTA1
016F:004B1C70 00 00 00 00 49 00 00 A0-2C 00 45 00 34 1C 4B 00
这个地方表示你输入的注册码必须是16位的串
0167:0043065C 837DD010 CMP DWORD PTR [EBP-30],10
0167:00430660 0F844D000000 JZ 004306B3
0167:004312B2 50 PUSH EAX
0167:004312B3 FF75BC PUSH DWORD PTR [EBP-44]
0167:004312B6 E8448BFFFF CALL 00429DFF
0167:004312BB 83C408 ADD ESP,08
0167:004312BE 83F800 CMP EAX,00
0167:004312C1 0F8446000000 JZ 0043130D
在下面程序他对ollydbg等进行反跟踪的,如果用他调试似乎会出问题,我没有用所以具体情况不知道
到了下面就是对,注册码进行比较了。
下面的子程序位置可是他爆破部分。修改返回的eax=0,输入任何16长度串都可以了
0167:00429DFF 8B542404 MOV EDX,[ESP+04]
0167:00429E03 8B4C2408 MOV ECX,[ESP+08]
0167:00429E07 85D2 TEST EDX,EDX
0167:00429E09 750D JNZ 00429E18
0167:00429E0B 33C0 XOR EAX,EAX
0167:00429E0D 85C9 TEST ECX,ECX
0167:00429E0F 7406 JZ 00429E17
0167:00429E11 803900 CMP BYTE PTR [ECX],00
0167:00429E14 7401 JZ 00429E17
0167:00429E16 48 DEC EAX
0167:00429E17 C3 RET
0167:00429E18 85C9 TEST ECX,ECX
0167:00429E1A 7509 JNZ 00429E25
0167:00429E1C 33C0 XOR EAX,EAX
0167:00429E1E 803A00 CMP BYTE PTR [EDX],00
0167:00429E21 7401 JZ 00429E24
0167:00429E23 40 INC EAX
0167:00429E24 C3 RET
0167:00429E25 F7C203000000 TEST EDX,00000003
0167:00429E2B 7537 JNZ 00429E64
0167:00429E2D 8B02 MOV EAX,[EDX]
0167:00429E2F 3A01 CMP AL,[ECX]
0167:00429E31 752B JNZ 00429E5E
0167:00429E33 0AC0 OR AL,AL
0167:00429E35 7424 JZ 00429E5B
0167:00429E37 3A6101 CMP AH,[ECX+01]
0167:00429E3A 7522 JNZ 00429E5E
0167:00429E3C 0AE4 OR AH,AH
0167:00429E3E 741B JZ 00429E5B
0167:00429E40 C1E810 SHR EAX,10
0167:00429E43 3A4102 CMP AL,[ECX+02]
0167:00429E46 7516 JNZ 00429E5E
0167:00429E48 0AC0 OR AL,AL
0167:00429E4A 740F JZ 00429E5B
0167:00429E4C 3A6103 CMP AH,[ECX+03]
0167:00429E4F 750D JNZ 00429E5E
0167:00429E51 83C104 ADD ECX,04
0167:00429E54 83C204 ADD EDX,04
0167:00429E57 0AE4 OR AH,AH
0167:00429E59 75D2 JNZ 00429E2D
0167:00429E5B 33C0 XOR EAX,EAX
0167:00429E5D C3 RET
0167:00429E5E 1BC0 SBB EAX,EAX
0167:00429E60 D1E0 SHL EAX,1
0167:00429E62 40 INC EAX
0167:00429E63 C3 RET
作者在里面写了一首如下,献给论坛的朋友:
醉眼望断仙灵红尘远
逍遥六界御剑仙
浮沉江湖宿愿
弹指间数千年
风雪飘摇我的长剑
苍茫万里河山巅
笑傲天下任我游遍
心无牵
直到 那一天
轮回在承诺之前
为了你忧伤的脸
我坠入 人间
自从那 一天
你和我 初见
从此隔世后的剑
刻画不朽永恒的爱恋
万重楼外别样风景天
长河镜湖起心涟
洪荒渺渺数千年
神与人不再见
跪倒在古老的神殿
祈求着万里情缘
恨只恨月总难圆
人无眠
难忘 那一念
忘却在相逢之前
从此白头逝流年
追寻你 的天
我十年 一剑
誓补 情天
就让千年的时间
见证传说幻化为诗篇
|