首页
社区
课程
招聘
[原创]Delphi版CrackMe --- 已修订。
发表于: 2010-6-20 16:08 11374

[原创]Delphi版CrackMe --- 已修订。

2010-6-20 16:08
11374
初学Delphi,搞了半天弄个CM给大家玩

要求:给出一个Key弹出那个MsgBox就ok   爆破无效。
注:考算法,就是给你源码  一时半会也构造不出有效key。

修改了一下,难度增加了一些,手头没有D7编译器   就用VC6了
欢迎来搞!
给出一组可用key
blueapplez
Rvy[ppp@e+dDtrEh0S[?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (28)
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
顺便问大家一个问题
子函数
function DoMyJob(A: array of Byte) : Boolean;

tempArray : array[0..19] of Byte;

    Move(A[0], tempArray[0], 20);
    for j:=0 to 19 do tempArray[i] := A[i];

调用函数:
iVector : array[0..19] of Byte;
DoMyJob(iVector);

红色跟蓝色的代码有什么区别啊   为什么 红色的代码就崩溃  蓝色就却好好的?  迷茫
2010-6-20 16:21
0
雪    币: 435
活跃值: (1282)
能力值: ( LV13,RANK:388 )
在线值:
发帖
回帖
粉丝
3
Delphi只在考试的时候用过,隐约记得数组和c的不太一样,第一个元素通常是数组长度
Move(A[0], tempArray[0], 20);这句应该访问越界了
改成Move(A[0], tempArray[0], 19);应该会好
2010-6-20 16:31
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
谢谢楼上
改成19 还是一样会崩溃。
2010-6-20 16:36
0
雪    币: 472
活跃值: (52)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
c"$e 0`0UUUU 0`03333

拼了一个,有部分算法,没细分析
上传的附件:
2010-6-20 18:15
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
[QUOTE=tyroneking;826089]c"$e 0`0UUUU 0`03333

拼了一个,有部分算法,没细分析[/QUOTE]

帅呆了   真帅。
2010-6-20 18:21
0
雪    币: 338
活跃值: (103)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
7
加了什么壳了么 我怎么查不出来 呢
2010-6-20 21:36
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
8
没加壳  是用之前自己写的一个工具  加了一个皮肤而已

加皮肤的通过添加新区段 来实现的   360会报毒。
2010-6-20 21:52
0
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
[QUOTE=blueapplez;826062]顺便问大家一个问题
子函数
function DoMyJob(A: array of Byte) : Boolean;

tempArray : array[0..19] of Byte;

    Move(A[0], tempArray[0], 20);
    for j:=0 ...[/QUOTE]

如此之写。

Move(@A, @tempArray, sizeof(A));

pascal 和 C不一样。A[0]只是取 1个字节。你长度为20个字节 越界了。
2010-6-21 05:19
0
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
还以为有马捏。。。
2010-6-21 05:23
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
11
[QUOTE=gotiger;826227]如此之写。

Move(@A, @tempArray, sizeof(A));

pascal 和 C不一样。A[0]只是取 1个字节。你长度为20个字节 越界了。[/QUOTE]

111111
上传的附件:
2010-6-21 16:38
0
雪    币: 472
活跃值: (52)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
!!!!!!!29_u{
c"$e 0`0UUUU 0`03333

部分算法没分析明白,用随机数去验证?
上传的附件:
2010-6-21 23:54
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
13
[QUOTE=tyroneking;826695]!!!!!!!29_u{
c"$e 0`0UUUU 0`03333

部分算法没分析明白,用随机数去验证?[/QUOTE]

偶像啊   太牛了   佩服的不行了都。。。 太帅了   想拜师    再来第三版?   !
我发誓这是最后一版了   不会再改了

师傅再来试试。
上传的附件:
2010-6-22 00:03
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
14
跟了一下 tyroneking  大大的破解  构造出同一个seed  厉害~
2010-6-22 09:28
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
15
sessiondiy
Hkl2d|z ;u)(0M$2 B1*
2010-6-22 21:19
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
16
sessiondiy
CWA9YYZYVYk0ZZZZZZZS
2010-6-22 21:40
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
17
楼上何人 ?
2010-6-22 22:24
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
18
借你的名字用用,我的名字不够长度
2010-6-22 22:32
0
雪    币: 472
活跃值: (52)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
tyroneking
*x1ityroneking00ihu@

膜拜两位前辈,我固定几个字符然后穷举。。。。
楼主,你是不是给我前面的KEY误导了呀!
2010-6-23 00:10
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
20
sn[2] 不参与运算, 所以我用他来平衡 87654321
因为最后还需将正确值丢入 CRC32, 以满足楼主的条件2, 穷举可能是跑不掉的. 看写法速度.

ccferccfer
Hkl2jbs 71.(0M$2 B1*

tyroneking
Hkl2@ p Six&0Dn3 B1*
2010-6-23 01:10
0
雪    币: 243
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
强制转换就可以了。
或者用 CopyMemory.
2010-6-23 03:05
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
22
向大牛们致敬~!  太厉害了
ps:我自己写了个注册机   穷举的   慢的要死。
2010-6-23 08:47
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
23
char *CharSet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
char DeltaTable[0x100];

void GetDeltaChar(char *x,char *p,char *q)
{
	int i;

	for (i=0;i<4;i++)
	{
		p[i] = DeltaTable[x[i]*2];
		q[i] = DeltaTable[x[i]*2+1];
	}
}

DWORD CalcKey(char *szName,char *szCode)
{
	int i,j;
	int len;
	DWORD crc;
	DWORD s;
	DWORD e_a;
	DWORD d_b;
	DWORD a,b,c,d,e;

	len = strlen(CharSet);
	for (i=0;i<len;i++)
	{
		for (j=0;j<len;j++)
		{
			if ((BYTE)(CharSet[i]-CharSet[j]) < 0x80)
			{
				DeltaTable[((BYTE)CharSet[i]-(BYTE)CharSet[j])*2] = CharSet[i];
				DeltaTable[((BYTE)CharSet[i]-(BYTE)CharSet[j])*2+1] = CharSet[j];
			}
		}
	}

	len = strlen(szName);
	crc = GetCrc32((BYTE *)szName,len);
	for (i=0;i<0xFFFFFFFF;i++)
	{
		if ((i*crc*len%(7*11*19)) == 0)
		{
			s = 0x87654321-i;
			if ((s&0x01010101) == 0)
			{
				e_a = (s&0xFCFCFCFC)/4;
				d_b = (s&0x03030303)/2;
				GetDeltaChar((char *)&e_a,&szCode[16],&szCode[0]);
				GetDeltaChar((char *)&d_b,&szCode[12],&szCode[4]);
				a = *(DWORD *)&szCode[0];
				b = *(DWORD *)&szCode[4];
				d = *(DWORD *)&szCode[12];
				e = *(DWORD *)&szCode[16];
				c = 0x87654321-5*e-4*d-2*b-1*a;
				if ((c%3) == 0)
				{
					c /= 3;
					*(DWORD *)&szCode[8] = c;
					if (szCode[8] && szCode[9] && szCode[10] && szCode[11])
					{
						if (strchr(CharSet,szCode[8]) && strchr(CharSet,szCode[9]) && strchr(CharSet,szCode[10]) &&strchr(CharSet,szCode[11]))
						{
							if ((GetCrc32((BYTE *)szCode,20)%3) == 0)
							{
								szCode[20] = 0;
								return 1;
							}
						}
					}
				}
			}
		}
	}

	szCode[0] = 0;

	return 0;
}
2010-6-23 10:07
0
雪    币: 695
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
24
[QUOTE=ccfer;827322]char *CharSet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
char DeltaTable[0x100];

void GetDeltaChar(char *x,char *p,char *...[/QUOTE]

ccfer大侠偶像啊~~
2010-6-23 10:39
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
25
弱弱的问一句   ccfer大大 和 upk星球的heXer  是什么关系。。。 同一个人?
请看这个贴的25楼
http://www.unpack.cn/thread-51590-1-1.html
2010-6-23 11:11
0
游客
登录 | 注册 方可回帖
返回
//