新手破解练习Crackme160之066 - figugegl.2

  1. 正常破解, 作者说不要暴力破解, 我们先正常破解, 后面再暴破, 点击check按钮, 没有提示, OD加载打开搜索界面有看到成功字眼, 定位到00401423, 看到了上面的循环, 便是算法了, 再上面是注册码框的读取, 那就开始分析算法吧, 004013D3开始循环读取用户名前10位与后10位进行相关操作, 分析如下:
    1). 取出用户名的第i位与第i+10位异或
    2). 除以0xA
    3). eax高位edx加上0x30将dl存起来
    4). 将最终存储值转长整形与注册码比较
    注册机代码如下: keygen.c
#include <stdio.h>
#include <stdlib.h>
#include "string.h"

int getVal(int ui, int ui10){
	__asm__( //AT&T模式 ,参数位置相反 
		"xor %%edx, %%eax\n"
		"mov $0xA,  %%ecx\n"
		"cdq\n"
		"idiv %%ecx\n"
		"add $0x30, %%edx\n"
		:"=d"(ui)
		:"a"(ui), "d"(ui10)
	);
	return ui;
}

int main() {
	char user[21] = {0};
	int len = 0;
	printf("请输入用户名: ");
	scanf("%s", user);
	len = strlen(user);
	for(int i=len; i<20; i++){
		user[i] = 0x20; //空格补齐		
	}
	for(int i=0; i<10; i++){
		user[i] = getVal(user[i], user[i+10]);
	}
	user[11] = 0;
	char *end;
	unsigned long rlt = strtoul(user, &end, 10);
	if(rlt > 4294967295) rlt = 4294967295;
	
 	printf("系列号为: %u\n\n按任意键继续~", rlt);
 	getchar();getchar();
    return 0;
}

运行示例:
用户名: figugegl
系列号: 315191600

  1. 暴力破解, 由上面正常破解可知, 00401419处是关键跳,nop掉就破解了~ 保存搞定~

这是160个软件part1
这是160个软件part2

1~160每个破解过程,在吾爱破解论坛都有高手破解过了,也有整理好现成的, 我这边主要就是自己动手操作的过程,与他们的不太一样
附上高手们的连接: 点击前往查看
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载

新人入门教程"玩玩破解,写给新人看" 点击前往查看
我就是从这里开始的,对我这样的小白感觉超级友好~

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

posted @ 2024-05-23 09:24  hankerstudio  阅读(118)  评论(0)    收藏  举报