能力值:
( LV4,RANK:50 )
|
-
-
2 楼
我写的一个KeygenMe小玩意儿~
奖项如下哈: 写出注册机的: 虚拟币UB +2 热心UF +1 给出注册码的: 虚拟币UB +2 爆破成功了的: 虚拟币UB +1
欢迎大家来XXX哈,嘿嘿!!!
先抢个位置先。。。。如果又有爆破,注册码,注册机是不是分全部加起来呀。。。。
|
能力值:
( LV6,RANK:90 )
|
-
-
3 楼
牛X,牛X,膜拜+牛X !!
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
用户名和注册码各位asci 字符加起来=20090701
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
见笑了。。。。。还没谢谢大侠的指点呢。。。。
|
能力值:
( LV6,RANK:90 )
|
-
-
6 楼
还在等你的 3.0 版本玩呐~
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
用户名ascii+0x20090000 等于 0x20090701-注册码ascii
用户名:aaaaaaaaaa
注册码:nnnnnnn5
|
能力值:
( LV6,RANK:90 )
|
-
-
8 楼
楼上大牛真快,一点喘息的机会都不给,哼哼
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
renwoxiao
DFSFFDFDSZA
这个不好,一个注册名对应太多注册码
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
|
能力值:
( LV6,RANK:90 )
|
-
-
11 楼
呵呵,被大家很轻松的搞定了~
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
我已经写了个注册机.可是半天没找到发附件的地方哈哈//
|
能力值:
( LV6,RANK:90 )
|
-
-
13 楼
要进入高级模式的回复,然后点击管理附件按钮,即可!
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
0040EBA6 |. E8 C144FFFF CALL KeyGenMe.0040306C
0040EBAB |. 85C0 TEST EAX,EAX
0040EBAD |. 7E 13 JLE SHORT KeyGenMe.0040EBC2
0040EBAF |. BA 01000000 MOV EDX,1
0040EBB4 |> 8B4D FC /MOV ECX,DWORD PTR SS:[EBP-4] ; 取用户名
0040EBB7 |. 0FB64C11 FF |MOVZX ECX,BYTE PTR DS:[ECX+EDX-1] ; 逐次取用户名 每位
0040EBBC |. 03D9 |ADD EBX,ECX ; 用户名每位的asc码累加 放入EBX
0040EBBE |. 42 |INC EDX ; 取用户名位数指针
0040EBBF |. 48 |DEC EAX ; 循环计数器
0040EBC0 |.^ 75 F2 \JNZ SHORT KeyGenMe.0040EBB4
0040EBC2 |> 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
0040EBC5 |. E8 A244FFFF CALL KeyGenMe.0040306C ; 检测注册码是否为空
0040EBCA |. 85C0 TEST EAX,EAX
0040EBCC |. 7E 13 JLE SHORT KeyGenMe.0040EBE1
0040EBCE |. BA 01000000 MOV EDX,1
0040EBD3 |> 8B4D F8 /MOV ECX,DWORD PTR SS:[EBP-8] ; 取注册码
0040EBD6 |. 0FB64C11 FF |MOVZX ECX,BYTE PTR DS:[ECX+EDX-1] ; 逐次取注册码 每位
0040EBDB |. 03F1 |ADD ESI,ECX ; 注册码每位asc码累加 放入 ESI
0040EBDD |. 42 |INC EDX ; 注册码取位指针
0040EBDE |. 48 |DEC EAX ; 循环计数器
0040EBDF |.^ 75 F2 \JNZ SHORT KeyGenMe.0040EBD3
0040EBE1 |> 81C3 00000920 ADD EBX,20090000 ; 用户名累加结果+2009000
0040EBE7 |. B8 01070920 MOV EAX,20090701
0040EBEC |. 2BC6 SUB EAX,ESI ; 20090701-注册码累加结果->送入EAX
0040EBEE |. 3BD8 CMP EBX,EAX ; 比较结果
0040EBF0 |. 75 1C JNZ SHORT KeyGenMe.0040EC0E ; 等则注册成功
0040EBF2 |. 68 4CEC4000 PUSH KeyGenMe.0040EC4C ; ASCII "Cool~ "
0040EBF7 |. FF75 FC PUSH DWORD PTR SS:[EBP-4]
0040EBFA |. 68 5CEC4000 PUSH KeyGenMe.0040EC5C ; ASCII " Registered!"
0040EBFF |. 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
0040EC02 |. BA 03000000 MOV EDX,3
0040EC07 |. E8 2045FFFF CALL KeyGenMe.0040312C
0040EC0C |. EB 0D JMP SHORT KeyGenMe.0040EC1B
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
编程是菜鸟 等到大牛编写注册机
|
能力值:
( LV6,RANK:90 )
|
-
-
16 楼
楼上兄弟,算一组可用的注册名和注册码吧~
|
能力值:
( LV6,RANK:90 )
|
-
-
17 楼
... 按错了...
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
helloname,GGGGGGGGGGEA这个好像比较简单;
0040EB9F 33DB xor ebx, ebx
0040EBA1 33F6 xor esi, esi
0040EBA3 8B45 FC mov eax, dword ptr [ebp-4] ; 注册名到eax
0040EBA6 E8 C144FFFF call 0040306C ; 取eax-4中的字符串的长度
0040EBAB 85C0 test eax, eax ; 测试长度
0040EBAD 7E 13 jle short 0040EBC2
0040EBAF BA 01000000 mov edx, 1
0040EBB4 8B4D FC mov ecx, dword ptr [ebp-4]
0040EBB7 0FB64C11 FF movzx ecx, byte ptr [ecx+edx-1]
0040EBBC 03D9 add ebx, ecx
0040EBBE 42 inc edx
0040EBBF 48 dec eax
0040EBC0 ^ 75 F2 jnz short 0040EBB4
0040EBC2 8B45 F8 mov eax, dword ptr [ebp-8]
0040EBC5 E8 A244FFFF call 0040306C
0040EBCA 85C0 test eax, eax
0040EBCC 7E 13 jle short 0040EBE1
0040EBCE BA 01000000 mov edx, 1
0040EBD3 8B4D F8 mov ecx, dword ptr [ebp-8]
0040EBD6 0FB64C11 FF movzx ecx, byte ptr [ecx+edx-1]
0040EBDB 03F1 add esi, ecx
0040EBDD 42 inc edx
0040EBDE 48 dec eax
0040EBDF ^ 75 F2 jnz short 0040EBD3;
[CODE];关键判断代码,上面把注册名每个字符相加放在ebx,把注册码每个字符相加放在esi中
0040EBE1 81C3 00000920 add ebx, 20090000;关键,ebx+=0x20090000
0040EBE7 B8 01070920 mov eax, 20090701
0040EBEC 2BC6 sub eax, esi;eax=0x20090701-esi;
0040EBEE 3BD8 cmp ebx, eax;如果相等,注册名合法
;所以注册机要保证密码每个字符相加等于0x20090701-0x20090000-ebx
0040EBF0 75 1C jnz short 0040EC0E
[/CODE]
;附简单VS2003注册机代码,仅供参考,还有很多不够细致的地方,比如没有把注册码随机化等,第一次写注册机,
CString GetPwd(CString strUser)
{
CString strPwd;
int nCount = 0;
for(int i = 0;i < strUser.GetLength();i++)
{
char szChar = strUser.GetAt(i);
nCount += szChar;
}
int nCount2 = 0x20090701 - 0x20090000 - nCount;
int nCharLength = nCount2 / 'A';
int nMod = nCount2 % 'A';
int nModBase = nMod / nCharLength + 1;
char* szTemp = new char[nCharLength];
memset(szTemp,'A',nCharLength);
for(int i = 0;i < nCharLength;i++)
{
if(nMod < nModBase)
{
szTemp[i] += nMod;
break;
}
else
{
szTemp[i] += nModBase;
nMod -= nModBase;
}
}
strPwd = CString(szTemp);
delete[] szTemp;
szTemp = NULL;
return strPwd;
}
|
能力值:
( LV6,RANK:90 )
|
-
-
19 楼
楼上大侠厉害,机机都写出来啦~
|
能力值:
( LV2,RANK:10 )
|
-
-
20 楼
moyichen
moyichenI
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
不敢称大侠,小菜一个,看过不少你写CrackMe的分析,分析的非常不错,向你学习.
|
能力值:
( LV3,RANK:20 )
|
-
-
22 楼
18楼很强呀。。。
建议楼主最好是限一下SN的长度和字符范围(ASCII 32~126都是可输入的比较好)
正则表达式
a
jjjjjjjjjjjjjjjj
zzzzzzzzzzzzzn
我的16个j哟,刚好除得尽。难不成是巧合?
|
能力值:
( LV2,RANK:10 )
|
-
-
23 楼
是不是这么个样子?
|
能力值:
( LV2,RANK:10 )
|
-
-
24 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
25 楼
爆
0040EBF0 /75 1C jnz short 0040EC0E
jnz改jz
注册码,还没找到
|
|
|