首页
社区
课程
招聘
[已结束][PEDIY.华章 Crackme 竞赛 2009] [第十二回] –莫拉克
发表于: 2009-9-18 12:00 105370

[已结束][PEDIY.华章 Crackme 竞赛 2009] [第十二回] –莫拉克

2009-9-18 12:00
105370
收藏
免费 0
支持
分享
最新回复 (97)
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
76
我一直认为,你这头像太帅了,能否告诉在下,

这头像是谁啊?

这表情,这神态,一绝啊!
2009-9-19 19:01
0
雪    币: 517
活跃值: (64)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
77
电视 《潜伏》 里面的人物

源码已下载,谢谢!
2009-9-19 20:41
0
雪    币: 1327
活跃值: (2311)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
78
十万行啊,几百万字,相当于一部巨著啊
2009-9-19 21:22
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
79
自己做了个编译器?中间代码?
2009-9-19 22:32
0
雪    币: 6051
活跃值: (1441)
能力值: ( LV15,RANK:1473 )
在线值:
发帖
回帖
粉丝
80
下载看了一下源代码,发现跟在od看没多大区别。。。太强大了,膜拜。。。
2009-9-19 23:00
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
81
完全看不懂
2009-9-19 23:30
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
82
10W行代码啊
2009-9-19 23:31
0
雪    币: 337
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
83
这个源代码写的有点变态啊
2009-9-20 02:54
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
84
我只对怎样填上 10W H 感兴趣
2009-9-20 10:29
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
85
qiongjudafahaoshijianzhenbushao
402F5500BC6EFF634022D6E0D9B011CA3E82032C04C83020
2009-9-20 10:53
0
雪    币: 140
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
86
穷举打发耗时间真不少
呵呵,膜拜ing
2009-9-20 10:56
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
87
油菜            。
2009-9-20 11:21
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
88
纯手工:


 	namelen = strlen(name);
  keylen = strlen(key);
	
	if (namelen < 3 || namelen > 32 || keylen != 48)
	{
		return 6;
	}
	for(i = 0; i < namelen; i++)
	{
		hash1 += hash1 * name[i] * (name[i] << 3) + hashkey1;
		hash2 += hash2 * name[i] * (name[i] >> 1) + hashkey2;
		hash3 += hash3 * name[i] * (name[i] << 2) + hashkey3;
		hash4 += hash4 * name[i] * (name[i] << 5) + hashkey4;
	}
	
	hash1 = ((hash1 & 0x00FFFFFF) ^ (DWORD)0x3E000000);
	hash2 = ((hash2 & 0x00FFFFFF) ^ (DWORD)0x3F000000);
	hash3 = ((hash3 & 0x00FFFFFF) ^ (DWORD)0x40000000);
	
	szGood[0] = 'P';
	
	for(i = 0; i < keylen; i+= 8)
	{
		sscanf((char*)&key[i], "%08X", &ddd[i / 8]);
	}
	
  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;

	lpData = &ddd;

	for(i = 0; i < 24; i ++)
	{
		crc32 = (crc32 >> 8) ^ crcTable[ (crc32 ^ lpData[i]) & 0xFF ];
	}
		
	crc32 = ~crc32;

	for(i = 0; i < 6; i ++)
	{
		ddd[i] ^= crc32;
	}
	
	szGood[1] = 'a';

	xx = (DWORD*)&y2;
	y1 = 0.0;
	x0 = 1.0;
	y2 = x0;
	x1 = *(float*)&ddd[0];
	x2 = *(float*)&ddd[1];
	x4 = x1;

	for(i = 1; i <= 100000; i++)
	{
		sign = (x4 < 0);
		x4 = sign?(-x4):x4;
		n = (int) ((x4 * INVSPI) + 0.5);
		xn = (double) 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;
		x0 *= x2;
		y2 += x0;
		x4 += x1;
	}

	x = (float*)&hash1;

	if(fabs(*x - y1) > EPLISON || fabs(y2 - *(float*)&hash2) > EPLISON)
	{
		return 3;
	}

	szGood[4] = '!';

	x0 = 1.0;
	y3 = 0.0;
	x1 = *(float*)&ddd[2];
	x4 = x1;

	for(i = 1; i < 8000; i++)
	{
		x4 = (x4 > 0)?(x4):(-x4);
		n = (int) (((x4 + HALFPI) * INVSPI) + 0.5);
   
		xn = (double)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;

	szGood[5] = '\x0';

	x = (float*)&hash3;

	if(fabs(*x - y3) > EPLISON)
	{
		return 1;
	}

	k = 0;

	szGood[2] = 's';

	lpData = (BYTE*)&k;

	d = (WORD*)&ddd[3];

	for(i = 0; i < 4; 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);
	}

	if(k == hash4)
	{
		szGood[3] = 's';
		
		printf("%s\n", szGood);
		
	}
	
	return 2;

2009-9-20 11:55
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
89
LS的手活不错啊
2009-9-20 12:00
0
雪    币: 195
活跃值: (20)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
90
这源码无敌了

ccfer 更无敌 ~~~
2009-9-20 13:49
0
雪    币: 418
活跃值: (63)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
91
无语!!!
震憾!!! 加完全看不懂~~
2009-9-20 15:04
0
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
92
源码太强大了,生成的吗,完全看不懂:)
2009-9-20 17:20
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
93
很强大。。。
2009-9-21 22:43
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
94
手工活太强了
2009-9-22 09:22
0
雪    币: 2316
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
95
源码编译后,ccfer的key运行不成功?spark扣的代码似乎也无法使用ccfer的key.
似乎前3个DWORD顺利通过,第4个不成功。。是我编译问题?还是源码与提交的不同?
2009-9-24 00:06
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
96
不好意思,源码选错了,提交的版本把位置变了一下

  szGood[2] = 's';

  lpData = (BYTE*)&k;

  [COLOR="red"]d = (WORD*)&ddd[3];[/COLOR]

  for(i = 0; i < 4; i++)

改成
  szGood[2] = 's';

  lpData = (BYTE*)&k;

  [COLOR="Red"]d = (WORD*)&ddd[4];[/COLOR]

  for(i = 0; i < 4; i++)
上传的附件:
2009-9-24 11:29
0
雪    币: 146
活跃值: (182)
能力值: ( LV13,RANK:220 )
在线值:
发帖
回帖
粉丝
97
看来数学也很重要。。。膜拜
2009-9-24 11:54
0
雪    币: 87
活跃值: (47)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
98
终于出来一组,原来crc可逆。
wangdell
4031c5c1be3460004004b0da452a0cbe0af8151a0af80fff

aaaa
402c6c203e811980401d0f8822c749991e3f1c8e1d3a0270
bbbb
4034e018bf305ca04023c1b45b936150017c01ce06e31103
2009-9-25 23:01
0
游客
登录 | 注册 方可回帖
返回
//