能力值:
( LV12,RANK:370 )
|
-
-
2 楼
这样行不?
00475CFE BA 985B4700 mov edx,CK.00475B98
修改成:
00475CFE |BA EC5B4700 mov edx,CK.00475BEC
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
学习中/....蓝色光芒你的QQ是多少呢?有事请教.我的QQ:171090098
|
能力值:
( LV4,RANK:50 )
|
-
-
4 楼
破解Exe这算是成功了。
试着找找算法。
支持版主的Honor
I Honor IKKI
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
由于成功或者失败后调用用来显示信息的函数的入口地址被IKKI发现,所以被破解,失败!!
稍微修改了一下,再试试,
下载地址:
CrackMe05.rar
增加了防止修改“成功或者失败后用来显示信息的函数地址”。
|
能力值:
( LV12,RANK:370 )
|
-
-
6 楼
这个crackme很有意思
|
能力值:
( LV13,RANK:410 )
|
-
-
7 楼
CrackMe05
不知道这样算不算数:修改004756E0为jmp 00475778(E9 93 00 00 00)好象有些无耻。。。。。
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
楼上的这个不算,如果这样的算,还不如直接改成破解成功的对话筐
如果MessageBox(....)....因为成功后的提示文字都是有的呀。然后把状态栏设置成"注册成功"
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
To 无聊的菜鸟
郁闷,修改函数接口,“不允许直接JMP”来显示信息。
下载地址:
CrackMe06.rar
函数内增加了对参数的效验。不能直接JMP过去。如果要修改这个函数里的内容就真的没有意思了,因为这个函数什么都不干只是提示用户成功或者失败了,仅仅如此。
|
能力值:
( LV12,RANK:370 )
|
-
-
10 楼
忙里偷闲,把这个crack解了.是明码,算法也不难(标准des),就是开始找计算代码的时候方法不对,浪费了不少时间.这个crack写的不错,还有很多地方我没能弄明白,如函数的调用等,能力有限,惭愧.
大概算法:
name[];
strcpy(name,input_name);
if((strlen(input_name))<6)
{
for(int i=strlen(input_name);i<6;i++)
name[i]="A";
}
reverse(name);
int result=StrNCmp(des_en(name,"O.O"),input_code,8); //des encrypt key is string:O.O
if(!result)
{
messagebox(succeed!);
}
else
{
messagebox(fail!);
}
example name and code:
ikki/1BFBC98A
pediy/F6347AF5
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
To 版主
我想第二次
I Honor IKKI
不知道可不可以
|
能力值:
( LV4,RANK:50 )
|
-
-
12 楼
To IKKI
我可否再加强难度?
|
能力值:
( LV12,RANK:370 )
|
-
-
13 楼
最初由 蓝色光芒 发布 To 版主 我想第二次 I Honor IKKI 不知道可不可以
晕,这些都是做着玩的,不必了。。。
这里用的是标准算法,最后又是直接比较code,如果是modify的算法,用
F(name)=G(code)的方式判断,难度就大的多了。
俺对保护方面了解也不多,暂时只想到这些了。
我也写过一个crackme,呵呵:
http://bbs.pediy.com/showthread.php?s=&threadid=11157
|
能力值:
( LV4,RANK:50 )
|
-
-
14 楼
再试试这个,修改了算法部分。
下载地址:
CrackMe07.rar
修改了算法,不是直接比较Code=F(Name)
顺便作了些其他修改。
谢谢IKKI
|
能力值:
( LV12,RANK:370 )
|
-
-
15 楼
ikki/4MWZkJaMQ2Q=
pedit/9bmGgoqUUVg=
|
能力值:
( LV4,RANK:50 )
|
-
-
16 楼
能说说怎么弄出来的吗?
|
能力值:
( LV12,RANK:370 )
|
-
-
17 楼
原程序的code验证流程为:
tempcode=base64_decode(input code);//对你输入的注册码进行base64解码
code=change(tempcode); //利用一串内定字符串变换后得到的
数字对base64解码的结果再进行变
换,得到最后的比较结果,这步变换
是可逆的。
用这个最后的变换结果和前面帖子说的那个des计算出来的注册码的比较,
如果相同则注册成功,不同就算失败。
那既然这样,参照这个流程,逆一下,就可以得到正确的注册了啊:
对des计算得到的前半部分进行change的逆变换,
然后再对变换得到的结果进行base64编码,结果就是注册码了.
顺便更正一下:
ikki/4MWZkJaMQ2Q=
pedit/9bmGgoqUUVg=
应该是:
ikki/4MWZkJaMQ2Q=
pediy/9bmGgoqUUVg=
不小心pediy写成pedit了:).
|
能力值:
( LV4,RANK:50 )
|
-
-
18 楼
ikki
也就是那个change写得过于简单是吗?
|
能力值:
( LV12,RANK:370 )
|
-
-
19 楼
是简单了点,但即使复杂,只要可逆的,总是有办法还原的呀
|
能力值:
( LV4,RANK:50 )
|
-
-
20 楼
怎么跟进去的呀?或者说怎么跟到那个变换函数的?
对这套函数调用方法了如指掌了?
|
能力值:
( LV12,RANK:370 )
|
-
-
21 楼
这个,怎么说呢?
就是在调试过程中根据自己的经验和知识进行判断,不断尝试呀
|
能力值:
( LV4,RANK:50 )
|
-
-
22 楼
非常感谢你。
|
能力值:
( LV12,RANK:370 )
|
-
-
23 楼
没做什么,别客气
|
能力值:
( LV4,RANK:50 )
|
-
-
24 楼
|
能力值:
( LV12,RANK:980 )
|
-
-
25 楼
最初由 蓝色光芒 发布 再试试这个,调整了调用,以及算法模式, 下载地址:
CrackMe08.rar
IKKI再试试
这个是不是有问题,都提示成功。晕! ̄
|
|
|