能力值:
( LV3,RANK:30 )
|
-
-
2 楼
这是哪里来的题目吧,也很简单啊,楼主能说下来源和目的吗
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
终于等到你了,我就是想学破解,于是我百度搜索crackme,搜到别人百度网盘分享的几个,于是拿来练练手,但是我没有什么汇编基础,破解不了这些个需要算法分析的crackme,只能破解一些简单的
|
能力值:
( LV3,RANK:30 )
|
-
-
4 楼
还是要先学好基础知识吧,造房子总是要打地基的~~~
|
能力值:
( LV3,RANK:30 )
|
-
-
5 楼
[QUOTE=wyongbin;1244177]求哪位大神给个指点?应该下断哪里?如何算出注册码?输入用户名和注册码后点注册无反应?程序不动。
CrackMe.exe.zip[/QUOTE]
用户名要求:
长度大于等于6、小于等于9
第1个字符是s(0x73)或第6个字符是c(0x63)
注册码要求:
长度等于12
第6或第7个字符是-(0x2d)
用户名长度为6时:
第1个字符是0(0x30)或第12个字符是6(0x36)
用户名长度为7时:
第2个字符是A(0x41)或第11个字符是`(0x60)
用户名长度为8时:
第3个字符是W(0x57)或第10个字符是M(0x4d)
用户名长度为9时:
第4个字符是[(0x5B)或第9个字符是-(0x2d)
|
能力值:
( LV4,RANK:55 )
|
-
-
6 楼
如果了解MFC的原理,简直就可以秒破,F9运行程序Alt+E打开模块MFC42.dll,Ctrl+N找到AfxFindMessboxEntry
右击查找参考,对每一个函数调用下断,运行,直到遇到如上的调用形式
对test eax,eax下条件断点 eax!=0。这里主要是利用了MFC分发函数的机理,也就是寻找消息入口函数的地址,如果找到,则返回,否则返回0,然后直接对内存程序领空下F2断点,就ok了。还有第二种更简单的方法:c查找特征码:F9,然后ALT+E,双击MFC42.DLL,CTRL+F,输入CALL [EBP+14]直接就定位到调用消息处理函数的地方了,当然不同版本的vs编译的程序的特征码也不相同,万变不离其踪,只要你懂了MFC特征码随你找,嘿嘿。算法也比较简单
UserName[] = UserName[0] =='s'||UserName[5]=='c',其他任意;
PassWord[5]='-'||PassWord[6]=='-';
6<=Length(UserName)<=9
switch(Length(UserName))
{
case 6:
PassWord[0]=='0'||PassWord[11]=='6';
break;
case 7:
PassWord[1]=='A'||''PassWord[10] =='`';
break;
case 8:
PassWord[2]=='W'||''PassWord[9] =='M';
break;
case 9:
PassWord[4]=='['||''PassWord[8] =='-';
break;
}
====================================================
|
能力值:
( LV4,RANK:55 )
|
-
-
7 楼
楼上赶了呀
|
能力值:
( LV3,RANK:30 )
|
-
-
8 楼
看漏了首字母可以是s
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
好利害!谢谢了!
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
非常感谢!马上去试!
|
能力值:
( LV4,RANK:55 )
|
-
-
11 楼
自己还是新手,能理解新手的苦衷,所以一般只要自己知道的,都会回复一下 老牛觉得比较简单,都懒得回复了。不过你最好都跟踪一下,理解更深刻,搜索一下论坛关于MFC的帖子,一大堆
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
谢谢,成功了,看到算法就晕!
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
成了!
|
|
|