首页
社区
课程
招聘
[原创]莫拉克-crakme的注册机
发表于: 2009-9-26 21:58 12641

[原创]莫拉克-crakme的注册机

2009-9-26 21:58
12641

莫拉克crackme的注册机

又到中秋。岁岁年年人不同。。。。。。
好像没见人写过这个的注册机,似乎这个crackme现在也没人玩了,炒个冷饭。高手都懒的写文章,
抛个砖,等大家的指点。
1、crackme算法分析
虽有海风和spark的源码,不过算法还是没看懂。只是简单拆分和猜测一下。
1.1 name经过变换得到4个DWORD.   name=>hash[1..4]。
1.2 keystr(共48个字符)经过字符转hex, keystr=>ddd[0..5];
1.3
     如果
   1)Crc32((BYTE*)(&ddd[0]),24)=0x0;//事实上,可以设定为任何值,均有解。但为0的话,最简单。
   则在同时满足以下几个条件后(用类c代码表示),可以注册成功
   1)f0(*(float*)&ddd[0])==*(float *)(&hash[1]);
   2)f1(*(float*)&ddd[1])==*(float *)(&hash[2]);
   3)f2(*(float*)&ddd[2])==*(float *)(&hash[3]);
   4)f3((WORD*)&ddd[4],4)==*(float *)(&hash[4]);
   f0,f1,f2,f3分别为4个函数。crc32为crc32校验算法。
大致拆分出来的几个算法近似如下(未验证)

float f0(float x1)
{
		y1 = 0.0;
		x0 = 1.0;
		x4 = x1;
		for(i = 1; i <100000; i++)
		{
			sign = (x4 < 0);
			x4 = fabs(x4);
			n = (int) ((x4 * INVSPI) + 0.5);
			xn = (float) n;
			sign ^= n % 2;

			f = (x4 - xn * C1) - xn * C2;
			g = f * f;
			rg = (((R4 * g + R3) * g + R2) * g + R1) * g;

			result = f + f * rg;
			result = sign ? -result : result;
			y1 += result / i;
			x4 += x1;
		}
		return y1;
}
float f1(float x2)
{
		x0 = 1.0;
		y2 = x0;
		for(i = 1; i <100000; i++)
		{
			x0 =x0* x2;
			y2 = y2+x0;
		}	
		return y2;
}
float f2(float x3)
{
		x0 = 1.0;
		y3 = 0.0;
		x4 = x1;
		for(i = 1; i < 8000; i++)
		{
			x4 = (x4 > 0)?(x4):(-x4);
			n = (int) (((x4 + HALFPI) * INVSPI) + 0.5);
			xn = (float)n - 0.5;
			sign = n % 2;
			f = (x4 - xn * C1) - xn * C2;
			g = f * f;
			rg = (((R4 * g + R3) * g + R2) * g + R1) * g;
			result = f + f * rg;
			result =  sign ? -result : result;
			y3 += x0 * result / (i * i);
			x0 = -x0;
			x4 += x1;
		}
		y3 = y3 * 4 + PI * PI / 3 * 2;
		return y3;
}
DWORD f3((WORD *)d,int len)
{
	k = 0;
	lpData = (BYTE*)&k;
	d = (WORD*)&ddd[4];
	for(i = 0; i < len; i++)
	{
		B = (int)d[i];
		if(B >= MCU_CODE)
		{
			B = (B * 2) & 0xFFFF;
			C = B + 1;
		}
		else
			C = B + 2;
		rem = 0;
		root = 0;
		divisor = 0;
		a = C * C - B * B;
		for(j = 0; j < 16; j++)
		{
			root <<= 1;
			rem = ((rem << 2) + (a >> 30));
			a <<= 2;
			divisor = (root << 1) + 1;
			if(divisor <= rem)
			{
				rem -= divisor;
				root ++;
			}
		}
		lpData[i] = (unsigned char)(root - 3);
	}
	return k;
}
DWORD Crc32(BYTE *lpData,int len)
{
	for( i = 0; i < 256; i ++ )
	{
		crc32 = i;
		for( j = 0; j < 8; j ++ )
		{
			if(crc32 & 1) 
				crc32 = (crc32 >> 1) ^ 0xEDB88320UL;
			else 
				crc32 >>= 1;
		}
		crcTable[i] = crc32;
	}
	crc32 = ~hash4;
	for(i = 0; i < len; i ++)
	{
		crc32 = (crc32 >> 8) ^ crcTable[ (crc32 ^ lpData[i]) & 0xFF ];
	}
}
	crc32 = ~crc32;
	return crc32;
}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (29)
雪    币: 452
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
膜拜楼主,和同样厉害的老婆!
2009-9-26 22:15
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
膜拜下 众牛。

国庆快乐 中秋快乐。
2009-9-26 22:19
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
4
CRC32也能穷举,速度很快

wangdell的老婆和你的老婆都是数学强人啊

为什么我老婆就不是呢。。
2009-9-26 22:20
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
5
楼主的老婆比楼主牛啊!鉴定完毕
2009-9-26 22:27
0
雪    币: 440
活跃值: (61)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
进来膜拜一下shellwolf和你老婆,都是强人!

也顺祝国庆快乐,中秋快乐!
2009-9-26 22:56
0
雪    币: 47147
活跃值: (20450)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
7
这么厉害,每个男人背后有一个女人支持,一点不假。

估计在享受生活
2009-9-26 23:10
0
雪    币: 418
活跃值: (63)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
8
学会了2分逼近法,真是爽,跳几次就能定位数据。

2分法在单调函数中超好用。。.   再次膜拜ccfer等~~
shellwolf兄的老婆是哪个??
膜拜啊!!
2009-9-26 23:27
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
9
本人失踪,有事烧钱
2009-9-26 23:49
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
10
发哥在百忙的享受中还不forgot来收钱
2009-9-26 23:52
0
雪    币: 107
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
烧点儿给楼上的楼上吧....................
2009-9-26 23:53
0
雪    币: 598
活跃值: (282)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
12
结论: 能不能在crackme大赛取得好成绩关键在于有没有好LP
2009-9-27 08:46
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
13
超强悍。。。。
2009-9-27 08:55
0
雪    币: 769
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14

  有个好老婆 貌似就成功了一半喔
2009-9-27 09:17
0
雪    币: 257
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
如果有几个好老婆不知多么幸福!
2009-9-27 09:37
0
雪    币: 1969
活跃值: (46)
能力值: (RANK:550 )
在线值:
发帖
回帖
粉丝
16
占位学习
2009-9-27 09:54
0
雪    币: 388
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
占位慢慢学习
2009-9-27 11:07
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
18
楼主&老婆 皆油菜  佩服
2009-9-27 11:26
0
雪    币: 370
活跃值: (52)
能力值: ( LV13,RANK:350 )
在线值:
发帖
回帖
粉丝
19
看来得好好攻下高数了
收藏学习 谢谢了
2009-9-27 11:39
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
20
跟着学习学习
2009-9-27 12:33
0
雪    币: 557
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
21
膜拜众大侠的LP
2009-9-30 15:40
0
雪    币: 238
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
膜拜所有人的老婆
2009-10-1 07:06
0
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
赶紧乘10.1找老婆!
2009-10-1 23:09
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
楼主很厉害啊
2009-10-2 10:35
0
雪    币: 421
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
老婆是关键11111111
都是牛人
2009-10-14 16:14
0
游客
登录 | 注册 方可回帖
返回
//