下面是网上的160个CrackMe的部分逆向笔记,包括逆向思路、注册机实现和逆向中常用的知识整理
注意:逆向前一定要先操作一下软件,熟悉软件的运行现象;逆向一定要自己操作一遍,看是很难看会的(高手除外)
这个程序要求输入正确的key,与CrackMe008和CrackMe009都是一个作者,但是感觉不值3颗星…
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*m\kMuOn*+")
;//逆向成功
else
;//逆向失败
一句话,kXy^rO|*yXo*m\kMuOn*+
每个字符减去0xA
最后得到的就是真正的需要输入的key(aNoThEr oNe cRaCkEd !
)
注册机太简单不写了,直接上验证结果
这个逆向感觉比CrackMe009容易,对不起3颗星啊
4.参考
- 1.VB程序逆向反汇编常见的函数 - 笨笨D幸福 - 博客园 (cnblogs.com)
- 2.常用软件可以在这里下载:爱盘 - 最新的在线破解工具包 (52pojie.cn)
- 3.【反汇编练习】160个CrackME索引目录1~160建议收藏备用
- 4.160个Crackme_鬼手56的博客-CSDN博客
- 5.《使用OllyDbg从零开始Cracking》系列的文章也不错