能力值:
( LV12,RANK:260 )
|
-
-
2 楼
zenghw
Y2WXB-ABGHE-KL4J8-SQTWW-8212A
抢个沙发。。
再加个壳让楼下的试试,记得爆破才算成功。。:)
--------------------------
第一个被火星人秒杀!
再来一个更新版的~,有兴趣的可以下下
|
能力值:
( LV8,RANK:130 )
|
-
-
3 楼
加了壳的在2000运行报错
|
能力值:
( LV12,RANK:260 )
|
-
-
4 楼
是因为里面有anti不支持2K的。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
V系统也报错
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
未注册!
2281D-11KF6-KLIJP-41TWW-UUUA8
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
比我强。哈哈。我不会用VC呢。。。。本人也想学C 交流下了。。
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
什么是 anti
加油
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
用户名:cfan
注册码:CCAB9-AF1FE-KL4JP-SQ544-24AYY
明码比较的说
|
能力值:
( LV15,RANK:2473 )
|
-
-
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
- - !. 看上去 像是明码比较 ...
没啥意思 .
直接爆了 ...
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
LS 关键在壳
DUMP出来的,问题出错。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
hccphcq
WWCD7-AH43E-KL4JP-SQ311-AAAYA
楼主加油,直接出现了序列号可不好,都不用破解了。。
|
能力值:
( LV9,RANK:170 )
|
-
-
14 楼
感谢lz提供cm~~
name:patapon
serial:6645D-A3ELE-KL4J8-MSTQQ-A6YY2
|
能力值:
( 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'。
不知可有遗漏的地方。
|
能力值:
( 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";
?>
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
大哥,能不能发个过程思路啊
|
能力值:
( LV12,RANK:260 )
|
-
-
18 楼
二楼更新一个。
|
能力值:
( LV4,RANK:50 )
|
-
-
19 楼
不会php,要学的还有很多~
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
jwtck
XXDA2-A9E2E-KLIP8-3Q117-721AB
注册函数直接返回序列号
|
能力值:
( 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 ; |//这里就是关键跳了,爆破改这里就行。
算法应该是这里吧?不知道对不对,请高手指点下。。。
|
能力值:
( LV15,RANK:670 )
|
-
-
22 楼
那么热闹,我也瞧瞧..
用户名为空也能生成注册码。。。
通用注册码,嘻嘻嘻
Y1WXB-ABGHE-KLIJP-MAR11-W2842
|
能力值:
( LV4,RANK:50 )
|
-
-
23 楼
[QUOTE=cntrump;723585]那么热闹,我也瞧瞧..
用户名为空也能生成注册码。。。
通用注册码,嘻嘻嘻
Y1WXB-ABGHE-KLIJP-MAR11-W2842[/QUOTE]
没有判断空
|
能力值:
( 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
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
加了壳的cm就不是cm了。
而是unpackme
|
|
|