首页
社区
课程
招聘
[原创]用 VC 瞎寫的一個 CrackMe
发表于: 2009-12-3 22:15 14518

[原创]用 VC 瞎寫的一個 CrackMe

MPL 活跃值
1
2009-12-3 22:15
14518
真的是瞎寫的,本人剛學會用 VC 寫 GUI 程序

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (44)
雪    币: 418
活跃值: (63)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
2
zenghw
Y2WXB-ABGHE-KL4J8-SQTWW-8212A

抢个沙发。。
再加个壳让楼下的试试,记得爆破才算成功。。:)
--------------------------
第一个被火星人秒杀!
再来一个更新版的~,有兴趣的可以下下
上传的附件:
2009-12-4 05:19
0
雪    币: 517
活跃值: (64)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
加了壳的在2000运行报错
2009-12-4 08:48
0
雪    币: 418
活跃值: (63)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
4
是因为里面有anti不支持2K的。。。
2009-12-4 10:32
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
V系统也报错
2009-12-4 11:44
0
雪    币: 103
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
未注册!
2281D-11KF6-KLIJP-41TWW-UUUA8
2009-12-4 13:19
0
雪    币: 103
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
比我强。哈哈。我不会用VC呢。。。。本人也想学C  交流下了。。
2009-12-4 13:22
0
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
什么是 anti


加油
2009-12-4 14:44
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
用户名:cfan
注册码:CCAB9-AF1FE-KL4JP-SQ544-24AYY
明码比较的说
2009-12-4 15:11
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
10
练习一下爆破
上传的附件:
2009-12-4 18:56
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
EAX 00406030 ASCII "ZZXCG-A7KKE-KLIPP-V47YZ-X8V1Z"
ECX 0000001D
EDX 0000005A
EBX 00000000
ESP 0013F25C ASCII "200912031903"
EBP 001E0844
ESI 0013F284
EDI 77D3216B USER32.GetWindowTextA
EIP 004012A2 CrackMe.004012A2
- - !.  看上去 像是明码比较 ...
没啥意思 .
直接爆了 ...
上传的附件:
  • x.jpg (48.34kb,529次下载)
2009-12-4 19:09
0
雪    币: 525
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
LS 关键在壳
DUMP出来的,问题出错。
2009-12-4 23:23
0
雪    币: 92
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
hccphcq
WWCD7-AH43E-KL4JP-SQ311-AAAYA

楼主加油,直接出现了序列号可不好,都不用破解了。。
2009-12-4 23:57
0
雪    币: 695
活跃值: (25)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
14
感谢lz提供cm~~
name:patapon
serial:6645D-A3ELE-KL4J8-MSTQQ-A6YY2
2009-12-5 09:33
0
雪    币: 157
活跃值: (10)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
15
跟了一下 算法勉强能看懂。
先把名字移位1,比如abcd->bcde,再按权相加(b*1 + c*2 + d*3 +e*4),得到一个数,暂且叫num
以num为核心做变换生成一个中间态的注册码,格式为
XXXXX-XXXXX-XXXXX-XXXXX
前2组X按照"200912031903"的前5个字符来生成,
具体过程是先把字符ascii码加上权,再加num,除10,若商小于9,取余数当X。否则若商为0,1,2,3,4,则取0当X,为5,6,7,8,9则把当前权对26取余数再加'A'作为X。
第3组X按照"00912"来生成,具体过程除了开头把加权和加num改为 and 12,再and一下num,其余同。
第4组X按照"09120"来生成,具体过程同3,但把AND运算换成OR运算。
这样得到一组中间态注册码。
XXXXX-XXXXX-XXXXX-XXXXX
再进行变换,大概也就是加上权,若为字符,则XOR一下16,然后对26取余加上'A',若为数字,则XOR一下17,再取余加'0'。

不知可有遗漏的地方。
2009-12-5 11:39
0
雪    币: 500
活跃值: (200)
能力值: ( LV13,RANK:270 )
在线值:
发帖
回帖
粉丝
16
PHP版的算法注册机....
算法很有意思...
<?php
$name = "haha";
echo "name = $name\r\n";
$pass = "";
//对名字循环,然后
$ebx = 0;
for ($eax = 0;$eax < strlen($name);$eax ++) {
	$ecx = $name[$eax];
	$ecx = ord($ecx) * ($eax+1);
	$ebx += $ecx;
}
//求的ebx的值

$s2 = "20091";
for ($esi = 0;$esi < 5; $esi ++) {
	$ecx = $s2[$esi];
	$ecx = ord($ecx) + $esi;
	$ecx += $ebx;
	$edi = 0x0A;
	$edx = $ecx%$edi;
	if ($edx>9) continue;
	if ($edx< 5) {
		$edx += 0x30;
		
	} else {
		$edx = $ecx%0x1a;
		$edx += 0x41;
	}
	$edx = $edx%0x100;
	$pass = $pass.chr($edx);
	//echo chr($edx);	
} //这时的结果是ONOYR
//echo '-';
$pass .= '-';
for ($esi = 0;$esi + 6 <0x0b; $esi ++) {
	$ecx = $s2[$esi];
	$edx = $esi+6;
	$ecx = ord($ecx) * $edx;
	$ecx = $ecx * $ebx;
	$edx = $ecx % 0x0a; 
	if ($edx>9)continue;
	if ($edx < 5) {
		$edx += 0x30;
	} else {
		$edx = $ecx%0x1a;
		$edx += 0x41;
	}
	$edx = $edx % 0x100;
	//echo chr($edx);
	$pass .= chr($edx);
}
//echo '-';
$pass .= '-';
$st2 = "200912031903";
for ($esi = 0x0c;$esi < 0x11; $esi ++)
{
	$ecx = $st2[$esi - 0x0b];
	$ecx = ord($ecx) & $esi;
	$ecx = $ecx & $ebx;
	$edx = $ecx % 0x0a;
	if ($edx>9)continue;
	if ($edx < 5) {
		$edx += 0x30;
	} else {
		$edx = $ecx%0x1a;
		$edx += 0x41;
	}
	$edx = $edx % 0x100;
	//echo chr($edx);
	$pass .= chr($edx);
}
//echo '-';
$pass .= '-';
for ($esi = 0x12; $esi < 0x17; $esi ++)
{
	$ecx = $st2[$esi - 0x10];
	$ecx = ord($ecx) | $esi;
	$ecx = $ecx | $ebx;
	$edx = $ecx % 0x0a;
	if ($edx>9)continue;
	if ($edx >= 4 && $edx <=8 ) {
		$edx = $ecx%0x1a;
		$edx += 0x41;
		//$edx += 0x30;
	} else {
		$edx += 0x30;
		//$edx = $ecx%0x1a;
		//$edx += 0x41;
	}
	$edx = $edx % 0x100;
	//echo chr($edx);
	$pass .= chr($edx);
}
//echo '-';
$pass .= '-';
$ebp = 0;
for ($esi = 0x18;$esi < 0x1d;$esi ++) {
	$ecx = strlen($st2);
	$edx = ~$esi;

	$ecx = $st2[$ecx-1-($ebp++)];
	//echo $ecx;
	$ecx = ord($ecx) * $esi;
	$ecx = $ecx * $esi;
	$edx = $edx + $esi;
	$ecx = $ecx + $ebx;
	$edx = $edx & $esi;
	$ecx = $ecx | $edx;
	$edx = $ecx%0x0a;
	if ($edx >9) continue;
	if ($edx < 5) {
		$edx += 0x30;
	} else {
		$edx = $ecx%0x1a;
		$edx += 0x41;
	}
	$edx = $edx % 0x100;
	//echo chr($edx);
	$pass .= chr($edx);
}
//mov bl, 50..//这样把ebx的值改了.
$a = $ebx;
$a_ = (int)($a/0x100);
$ebx = ($a_ * 0x100 + 0x50);
for ($ecx = 0;$ecx < 0x1d; $ecx ++)
{
	$a = $pass[$ecx];
	if ($a  == '-') continue;
	if (ord($a) < 0x30 || ord($a) > 0x39) {
		$eax = ord($a);
		$eax = $eax + $ecx;
		$eax  = $eax ^ 3;
		$edx = $eax%0x0a;
		$edx += 0x30;
	} else {
		$eax = ord($a);
		$eax = $eax + $ecx;
		$eax  = $eax ^ 2;
		$edx = $eax%0x1a;
		$edx += 0x41;
	}
	$edx = $edx % 0x100;
	$pass[$ecx] = chr($edx);
	$eax = $edx;
	if ($eax != 0x30) {
		if ($eax != 0x4f) {
			continue;
		} else {
			$pass[$ecx] = chr(0x50);
		}
	} else {
		$pass[$ecx] = chr(0x31);
	}
}
echo "pass = $pass";
?>
2009-12-5 13:39
0
雪    币: 103
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
大哥,能不能发个过程思路啊
2009-12-5 13:58
0
雪    币: 418
活跃值: (63)
能力值: ( LV12,RANK:260 )
在线值:
发帖
回帖
粉丝
18
二楼更新一个。
2009-12-5 14:57
0
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
不会php,要学的还有很多~
2009-12-6 15:40
0
雪    币: 224
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
jwtck
XXDA2-A9E2E-KLIP8-3Q117-721AB
注册函数直接返回序列号
2009-12-6 23:11
0
雪    币: 215
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
00401377   .  8B3D 9C504000 mov     edi, dword ptr [<&USER32.GetWind>; |USER32.GetWindowTextA
0040137D   .  50            push    eax                              ; |hWnd
0040137E   .  FFD7          call    edi                              ; \GetWindowTextA
00401380   .  8D4C24 10     lea     ecx, dword ptr [esp+10]
00401384   .  68 00040000   push    400                              ; /Count = 400 (1024.)
00401389   .  51            push    ecx                              ; |Buffer
0040138A   .  68 E9030000   push    3E9                              ; |/ControlID = 3E9 (1001.)
0040138F   .  55            push    ebp                              ; ||hWnd
00401390   .  FFD6          call    esi                              ; |\GetDlgItem
00401392   .  50            push    eax                              ; |hWnd
00401393   .  FFD7          call    edi                              ; \GetWindowTextA
00401395   .  8D9424 100400>lea     edx, dword ptr [esp+410]
0040139C   .  8D7424 10     lea     esi, dword ptr [esp+10]
004013A0   .  52            push    edx
004013A1   .  E8 7AFCFFFF   call    00401020
004013A6   .  83C4 04       add     esp, 4
004013A9   >  8A10          mov     dl, byte ptr [eax]
004013AB   .  8A1E          mov     bl, byte ptr [esi]
004013AD   .  8ACA          mov     cl, dl
004013AF   .  3AD3          cmp     dl, bl
004013B1   .  75 1E         jnz     short 004013D1
004013B3   .  84C9          test    cl, cl
004013B5   .  74 16         je      short 004013CD
004013B7   .  8A50 01       mov     dl, byte ptr [eax+1]
004013BA   .  8A5E 01       mov     bl, byte ptr [esi+1]
004013BD   .  8ACA          mov     cl, dl
004013BF   .  3AD3          cmp     dl, bl
004013C1   .  75 0E         jnz     short 004013D1
004013C3   .  83C0 02       add     eax, 2
004013C6   .  83C6 02       add     esi, 2
004013C9   .  84C9          test    cl, cl
004013CB   .^ 75 DC         jnz     short 004013A9
004013CD   >  33C0          xor     eax, eax
004013CF   .  EB 05         jmp     short 004013D6
004013D1   >  1BC0          sbb     eax, eax
004013D3   .  83D8 FF       sbb     eax, -1
004013D6   >  5F            pop     edi
004013D7   .  5E            pop     esi
004013D8   .  5B            pop     ebx
004013D9   .  85C0          test    eax, eax
004013DB   .  6A 00         push    0                                ; /Style = MB_OK|MB_APPLMODAL
004013DD   .  68 78604000   push    00406078                         ; |Title = "信?,A2,""
004013E2   .  75 18         jnz     short 004013FC                   ; |//这里就是关键跳了,爆破改这里就行。

算法应该是这里吧?不知道对不对,请高手指点下。。。
2009-12-7 20:31
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
22
那么热闹,我也瞧瞧..
用户名为空也能生成注册码。。。

通用注册码,嘻嘻嘻
Y1WXB-ABGHE-KLIJP-MAR11-W2842
2009-12-7 21:09
0
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
[QUOTE=cntrump;723585]那么热闹,我也瞧瞧..
用户名为空也能生成注册码。。。

通用注册码,嘻嘻嘻
Y1WXB-ABGHE-KLIJP-MAR11-W2842
[/QUOTE]

没有判断空
2009-12-10 11:31
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
0040129C  |.  B8 30604000   mov     eax, 00406030                    ;获取注册码在这里下断

004013CB    ^\75 DC         jnz     short 004013A9                   ;循环计算注册码关键跳,nop就可以了

004013DB   .  6A 00         push    0                                ; /Style = MB_OK|MB_APPLMODAL
004013DD   .  68 78604000   push    00406078                         ; |Title = "信?,A2,""
004013E2      75 18         jnz     short 004013FC                   ;跳转导致异常
004013E4   .  68 6C604000   push    0040606C                         ; |Text = ""D7,"",A2,"",B2,"岢晒",A6,"?,A1,""
004013E9   .  55            push    ebp                              ; |hOwner
004013EA   .  FF15 A0504000 call    dword ptr [<&USER32.MessageBoxA>>; \MessageBoxA
2009-12-10 13:13
0
雪    币: 340
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
加了壳的cm就不是cm了。
而是unpackme

上传的附件:
2009-12-10 14:58
0
游客
登录 | 注册 方可回帖
返回
//