吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4503|回复: 13
收起左侧

[原创] CrackMe160系列之023探究

[复制链接]
沉默的小光 发表于 2016-4-25 15:22
从上个月以来,我基本上一直坚持每天破解一两个crackMe,基本上都是靠找到注册机为最终目的的。
今天给大家分享一下我破解第23的思路
直接进入主题吧
打开我们要破解的程序
1.PNG
看来唯一的提示是第三行的“Status”,输入了正确的密码后会改变
打开OD,Alt+E,找到程序模块,右键,跟随入口
2.PNG
进入之后直接搜索字符串
会找到第三行的提示信息,双击跟入
很快就能找到被爆破的点了,不过我们的目标是注册机,而程序中的About也明确说了不让爆破,因此继续分析
把这个模块大致浏览一遍,会发现很多窗口的API函数,像SetTimer,SetWindowText之类的,这是典型的窗口回调函数模式(还好之前有一些VC的GUI编程基础)
3.PNG
程序是按TIMER来检测的,在WM_TIMER下断,能直接断下来,稍微分析一下,能知道是用403167和0x10作比较,相等才算成功
在代码中查找常量403167,找到所有修改这个值的地方,最后来到这里
4.PNG
从这里看是对name进行一定的“加工”再和serial比较,成功就会在窗口中有所显示,
对403167的修改还来自这里(先改变403166,再把403166赋值到403167里)
5.PNG
这已经明示了,要使403188变量的值为值0x9112478的相反数
回到上一张图里,这是一个循环,不断改变edi,来做计算,经过分析之后,发现它的结构如下:
初始取serial的十六进制数到403188里,再对403188做操作
{
先对403188自加1
再与[edi]作异或运算
到16次时停止
}
根据这个算法写出了我们的注册机代码
[C++] 纯文本查看 复制代码
#include<stdio.h>
#include<string.h>
unsigned int getIntFromChar4(char str[]);
void main()
{
	int x = 0xf6eedb88;
	int i;
	printf("Name:\t");
	char name[100]={0};
	//gets(name);
	strcpy(name,"燩燩燩燩燩");
	for(i=0;i<strlen(name);i++)
		printf("%x ",(unsigned char)(name[i]));
	printf("\n");
	/*name[0] = 0xa0;
	name[1] = 0x50;
	name[2] = 'a';
	name[3] = 'd';
	puts(name);*/
	for(i=15;i>=0;i--)
	{
		x = x ^ getIntFromChar4(name+i);
		x-=1;	
		printf("i:%d\t%x\n",i,x);
	}
	printf("%d\n",x);
}

unsigned int getIntFromChar4(char str[])
{
	unsigned char a = (unsigned char)str[0];
	unsigned char b = (unsigned char)str[1];
	unsigned char c = (unsigned char)str[2];
	unsigned char d = (unsigned char)str[3];
	unsigned int e = 0;
	e|=d;
	e<<=8;
	e|=c;
	e<<=8;
	e|=b;
	e<<=8;
	e|=a;
	return e;
}

6.PNG
虽然算法已经找到,但是合适的name却不好找:
中间一直对403188作异或运算,如果输入普通的字母、数字的话,其ASCII码为正数
不管怎么异或都不会使403188变成负数(程序中不让输入负数)
于是我想到用汉字,试了几个汉字,它们虽然都是用两个字符的空间来存储的
而且也是负值,但是两个字节都是负值,这导致403188又变回正值了,依然不行
于是我用手动赋值NAME中的字节来看是什么汉字,再赋值成这个汉字,最后选用了“燩”,它由0xa0,0x50组成,一个正一个负,正合适
向程序里输入
成功
7.PNG

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 沉默的小光 发表于 2016-4-27 12:19
狄八哥 发表于 2016-4-27 10:47
LZ,你这些CrackMe程序都是哪里弄的啊? 给个地址练练呗!

下载地址: http://pan.baidu.com/s/1xUWOY  密码: jbnq
 楼主| 沉默的小光 发表于 2016-4-25 15:49
黑袜子 发表于 2016-4-25 15:30
小弟好羡慕啊,啥时候有结果啊,看着教程一步一步来都会出错,郁闷到极致了。

哪一步?我可以给你详细指导。
头像被屏蔽
黑袜子 发表于 2016-4-25 15:30
第五个账号 发表于 2016-4-25 15:36
我就来看看 我一点都不懂  www.52wsb.com
头像被屏蔽
Shiny 发表于 2016-4-25 19:12
提示: 作者被禁止或删除 内容自动屏蔽
lanyueliang 发表于 2016-4-25 20:13
向你学习哦。很佩服你哦。
 楼主| 沉默的小光 发表于 2016-4-25 21:29

好厉害,你是怎么做到的,算法是怎样的呢?

点评

无符号数  发表于 2016-4-26 12:39
 楼主| 沉默的小光 发表于 2016-4-25 21:31
lanyueliang 发表于 2016-4-25 20:13
向你学习哦。很佩服你哦。

加油,你也可以的
头像被屏蔽
会飞的拖拉机 发表于 2016-4-25 22:09
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
黑袜子 发表于 2016-4-26 17:19
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 08:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表