新手破解练习Crackme160之120 - CRONOS1
这个程序有点复杂, 先跳过~有空再来研究, solly大佬说win10不能运行, 我这边win10能正常运行~
先记录大佬的注册机代码:
#include <iostream>
void getEnv();
bool checkRegister(char * name, char *code);
int getRegister(char * name);
int main(int argc, char** argv) {
////
getEnv();
////
char name[] = "solly88"; /// 需要什么名字,自己改!!!
//char name[] = "52pojie.cn";
//char code[] = "1234567890ABC";
int chk = getRegister(name);
return 0;
}
bool checkRegister(char * name, char *code) {
long s, d, key = 0;
for(int i=0; i<6; i++) {
s = name[i] * name[i] + code[i];
d = (code[i+6] - 96) * 26;
s = s + d - 96;
key = key | s;
}
printf("key = %X\n", key);
key = key & 0xFF;
return (key==0)?true:false;
}
int getRegister(char * name) {
char code[16] = {'\0'};
long s, d, key = 0;
for(int i=0; i<6; i++) {
for(int j=0x41; j<(0x41+26); j++) {
s = name[i] * name[i] + j;
bool b = false;
for(int k=0x41; k<(0x41+26); k++) {
d = (k - 96) * 26;
if(((s + d - 96) & 0xFF) == 0) {
code[i+6] = (char)k;
b = true;
break;
}
}
if(b) {
code[i] = (char)j;
break;
}
}
}
///
code[12] = '\0';
if(code[0] != '\0') {
bool b = checkRegister(name, code);
if(b) {
printf("register code: %s\n", code);
} else {
printf("no register code: %s\n", code);
return -1;
}
} else {
printf("not found register code\n");
}
return 0;
}
void getEnv() {
union {
char env[4];
long code;
} env1, env2;
for (long i = 0x20202020; i<0x7E7E7E7F; i++) {
if (((i * 0x00DA7949) & 0xFFFFFFFF) == 0x6E8E9964) {
//printf("%X%X%X%X\n", i & 0xFF, (i>>8) & 0xFF, (i>>16) & 0xFF, (i>>24) & 0xFF); /// 44524541
env1.code = i;
break;
}
}
for (long i = 0x2020; i<0x7E7F; i++) {
if (((i * 0x2262AD4D) & 0xFFFFFFFF) == 0x55DE1729) {
//printf("%X%X\n", i & 0xFF, (i>>8) & 0xFF); /// 4D53
env2.code = i;
break;
}
}
char env[16];
////
env[0] = env1.env[0];
env[1] = env1.env[1];
env[2] = env1.env[2];
env[3] = env1.env[3];
env[4] = env2.env[0];
env[5] = env2.env[1];
/////
env[6] = '=';
/////
env[7] = env[0];
env[8] = env[3];
env[9] = env[1];
env[10] = env[2];
env[11] = env[5];
////
env[12] = '\0';
////
printf("Environment variable String: %s\n", env);
}
计算结果示例:
Environment variable String: DREAMS=DARES
key = 3F00
register code: ACVVMBGVQQUK
1~160每个破解过程,在吾爱破解论坛都有高手破解过了,也有整理好现成的, 我这边主要就是自己动手操作的过程,与他们的不太一样
附上高手们的连接: 点击前往查看
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载
新人入门教程"玩玩破解,写给新人看" 点击前往查看
我就是从这里开始的,对我这样的小白感觉超级友好~
下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~


浙公网安备 33010602011771号