新CrackMe160之120 - bxm_crackme1

OD载入程序, 搜索界面定位到成功关键词004024F2,上面就是算法, 在0040241C下一个断点开始分析算法:
0040242B ~ 0040244C 用户名循环累加 sum += user[i]
0040244E ~ 0040245C sumU = -1 * sum * (sum + len(user))
00402492 ~ 004024C1 注册码转数字 sum1 = str2int(code)
004024C3 ~ 004024E3 sum += sum1 * sum1, sumC = -1 * sum1 * len(code)
接着判断 sumU + sumC ?== 0
sumU = -1 * sum1 * len(code) - sum1 * sum1 = -1 * sum1 * (sum1 + len(code)) = -1 * sum * (sum + len(user))
所以sum = -sum1
注册机如下:

#include <stdio.h>
#include <string.h>

int main() {
	char user[51] = {0};
	printf("用户名: ");
	scanf("%s", user); getchar(); //消耗掉多输入的\n 
	int i,len = strlen(user);
	unsigned int sum = 0;
	for(i=0; i<len; i++){
		sum += user[i];
	}
	sum *= -1;
	printf("注册码: %lu\n", sum);
	getchar(); return 0;
}

运行示例:
用户名: Bxm_CrackMe1
注册码: 4294966195

 
 
本节高手录制的视频,点击前往查看

 
 
 
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载

下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~
OD界面布局

posted @ 2024-12-30 14:33  hankerstudio  阅读(10)  评论(0)    收藏  举报