新CrackMe160之150 - mucki - crackme2
-
去防调试
OD载入程序单步运行发现程序都会进入到防调试的弹框界面, 看到第一行就是一个方法, 可以大胆猜测它就是验证方法, 看到下面有个DialogBoxParamA, 我们尝试直接跳转下去,
所以把第一行改为jmp 0040106A, 单步运行程序, 不再有弹框了, 运行正常, 将修改另存为新程序 -
破解
重新载入修改后程序, 搜索界面看到了成功关键词0040125E, 上面就是一个关键对比, 我们可以直接断点在此处,拿到正确的系列号
继续往上看就是关键算法,
ecx += (((user[i] << 4) ^ (user[i] >> 5)) + 0x26) ^ ecx
eax = 0xC0DEF - ecx
eax = eax * eax
code = "CM2" + ecx + eax
注册机:
#include <stdio.h>
#include <string.h>
int main() {
int i, len, eax, ecx = 0;
char user[30] = {0};
printf("用户名: "); scanf("%s", user); getchar();
len = strlen(user);
for(i=0; i<len; i++){
ecx += (((user[i] << 4) ^ (user[i] >> 5)) + 0x26) ^ ecx;
}
eax = 0xC0DEF - ecx;
eax = eax * eax;
printf("系列号: CM2-%X-%X\n", ecx, eax);
getchar();
return 0;
}
运行示例:
用户名: crackme2
系列号: CM2-14BB7-BFB8EC40
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载
下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~