CrackMe010:难度3颗星?
下面是网上的160个CrackMe的部分逆向笔记,包括逆向思路、注册机实现和逆向中常用的知识整理
注意:逆向前一定要先操作一下软件,熟悉软件的运行现象;逆向一定要自己操作一遍,看是很难看会的(高手除外)
1.现象
程序也是VB写的,无壳
2.VB Decompiler分析
直接用VB Decompiler加载分析程序,下面是按钮的响应函数;有CrackMe009基础,分析会更容易
上面源码直接可以100%逆向出来算法;如果不放心可以用OD验证一遍
扩展:下面是OD中分析for循环后的结果
可以看到输入的key是test123,最终转换成~o}~;M=,相当于输入key的每个字符加0x0A
例如:字符t的ASCII是0x74, 0x74+0x0A=0x7E,确实是字符~的ASCII码
3.注册机
验证按钮的核心部分对应的c++代码
//用户名每一位求和
char res[100] = {
0};
for (int i = 0; i < strlen(user_name); i++) {
res[i] = user_name[i] + 0x0A;
}
if (res == "kXy^rO|*yXo*mkMuOn*+")
;//逆向成功
else
;//逆向失败
一句话,kXy^rO|*yXo*mkMuOn*+每个字符减去0xA最后得到的就是真正的需要输入的key(aNoThEr oNe cRaCkEd !)
注册机太简单不写了,直接上验证结果
这个逆向感觉比CrackMe009容易,对不起3颗星啊
4.参考
-
1. 2.常用软件可以在这里下载: 3. 4. 5.《使用OllyDbg从零开始Cracking》系列的文章也不错
