新CrackMe160之103 - cyT0m - crackme#2

程序有壳第一步就是去壳,使用OD的ESP定律轻松脱壳,重新载入脱壳后程序,搜索界面看到文件名称,定位到00426572下好断点,并新建好文件
00426616 ~ 00426636 计算密钥文件中开头到字符串结束有几位, 并计算eax值,文件长度不得超过256位
0042664F 文件内容长度 = 字符串长度 + 1(结束符\0) + 4(字符串对应的密钥值)
注册机:

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

int main() {
	char user[0xFF] = {0};
	printf("用户名(注册文件前半部分): ");
	scanf("%s", user); getchar(); //消耗掉多输入的\n 
	int i,len = strlen(user);
	unsigned int sum = 1;
	for(i=0; i<len; i++){
		sum = (sum * user[i]) ^ 0x63546d32;
	}
	sum = sum >> 1;
	char *code = (char *)&sum;
	printf("注册文件后5位16进制为: 00 %02X %02X %02X %02X", code[0]&0xFF, code[1]&0xFF, code[2]&0xFF, code[3]&0xFF);
	getchar();
	return 0;
}

运行示例:
用户名(注册文件前半部分): CrackMe
注册文件后5位16进制为: 00 DB 36 51 5A
对应文件内容为:
00000000h: 43 72 61 63 6B 4D 65 00 DB 36 51 5A ; CrackMe.?QZ

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

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

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

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