新手破解练习Crackme160之044 - Dope2112.1
-
解决乱码, 不知道哪国的语言, 有那么一点像英文, 大概能看懂一点, 用ResScope与UE把对应的字都改掉, 中文转16进制可以用OD,在LCG界面(反汇编代码界面) ctrl+F调出字符串查找框可以转换输入的中文字是乱码, 不用管, 16进制结果是正确的, 不太好的是只能输入不能粘贴, 也可以用吾爱破解工具包中的其他工具下的ASCII_Unicode_HEX 转换工具 v1.2这个工具, 也很好用, 这个工具支持粘贴
-
暴力破解, OD搜索关键字定位第一个错误分支00421BDB, 成功分支00421D40, 这样将00421BDB改为 jmp 00421D40, 即破解成功~
-
正常破解, 第一个错误分支00421BDB, 下面就是算法了, 我们F8单步分析, 输入abcdef, 123456:
bl = 0;
for(i=-1;i<6;i++){ //用户名的前一个开始循环6次
if(name[i] in {a~z}){
dl = val{a~z}; //不同字母对应不同值
}else{
dl = 0x5D;
}
bl += dl;
}
ecx = abcdef, bl = 0x5D + 0x18 + 0x25 + 0x42 + 0xC + 0xD = 0xF5 = 245
eax = len * 0x4A7E = 0x1BEF4 = 114420
str = "245" + "-" + "114420";
然后与系列号对比是否一致, 到此算法也很明确了, 下面开始写注册机代码: keygen.c
#include <stdio.h>
#include "string.h"
int main(){
while(true){
char user[20] = {0};
printf("请输入用户名: ");
scanf("%s", user);
int len = strlen(user);
if(len < 6) {
printf("用户名最少6位\n");
continue;
}
int bl = 0x5D;
for(int i=0; i<5; i++){
if((user[i] >= 0x41) && (user[i] < 0x5A)) user[i] += 0x20; //转小写
switch(user[i]){
case 'a': { bl += 0x18; break; }
case 'b': { bl += 0x25; break; }
case 'c': { bl += 0x42; break; }
case 'd': { bl += 0xC; break; }
case 'e': { bl += 0xD; break; }
case 'f': { bl += 0x6; break; }
case 'g': { bl += 0x36; break; }
case 'h': { bl += 0x2B; break; }
case 'i': { bl += 0x17; break; }
case 'j': { bl += 0x2F; break; }
case 'k': { bl += 0x13; break; }
case 'l': { bl += 0x82; break; }
case 'm': { bl += 0x9B; break; }
case 'n': { bl += 0x92; break; }
case 'o': { bl += 0x3; break; }
case 'p': { bl += 0x63; break; }
case 'q': { bl += 0x21; break; }
case 'r': { bl += 0x42; break; }
case 's': { bl += 0x5C; break; }
case 't': { bl += 0x29; break; }
case 'u': { bl += 0xC7; break; }
case 'v': { bl += 0x66; break; }
case 'w': { bl += 0x58; break; }
case 'x': { bl += 0xA; break; }
case 'y': { bl += 0x28; break; }
case 'z': { bl += 0x50; break; }
default: { bl += 0x5D; break; }
}
bl &= 0x000000FF; //bl是ebx的低位, 所以结果要把高位去掉
}
int eax = len * 0x4A7E;
printf("系列号为: %d-%d\n", bl, eax);
}
return 0;
}
1~160每个破解过程,在吾爱破解论坛都有高手破解过了,也有整理好现成的, 我这边主要就是自己动手操作的过程,与他们的不太一样
附上高手们的连接: 点击前往查看
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载
新人入门教程"玩玩破解,写给新人看" 点击前往查看
我就是从这里开始的,对我这样的小白感觉超级友好~
下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~