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》系列的文章也不错
经验分享 程序员 微信小程序 职场和发展