能力值:
( LV2,RANK:10 )
2 楼
真是悲劇,下載都有問題。
需要用接力下載 = =
上传的附件:
能力值:
( LV15,RANK:520 )
3 楼
[QUOTE=幻影火;1022318]真是悲劇,下載都有問題。
需要用接力下載 = =
[/QUOTE]
TNT炸弹
能力值:
( LV3,RANK:20 )
4 楼
搞什么啊。下几次都下载失败!
能力值:
( LV3,RANK:20 )
5 楼
004011AB |> \837D F0 00 cmp [local.4],0x0
004011AF 7D 05 jge XCrackme.004011B6 ** jle入为jge
004011B1 |. 803B 00 |cmp byte ptr ds:[ebx],0x0
004011B4 |.^ 75 82 \jnz XCrackme.00401138
004011B6 |> 31C0 xor eax,eax
004011B8 40 inc eax
004011B9 807C05 F6 01 /cmp byte ptr ss:[ebp+eax-0xA],0x1
004011BE 90 |nop **nop两字节
004011BF 90 nop
004011C0 40 |inc eax
004011C1 |. 83F8 0A |cmp eax,0xA
004011C4 |.^ 7C F3 \jl XCrackme.004011B9
004011C6 |. 6A 00 push 0x0 ; /Style = MB_OK|MB_APPLMODAL
004011C8 |. 68 00304000 push Crackme.00403000 ; |提示
004011CD |. 68 05304000 push Crackme.00403005 ; |注册成功
004011D2 |. FF75 08 push [arg.1] ; |hOwner
004011D5 |. FF15 94414000 call dword ptr ds:[<&USER32.MessageBoxA>>; \MessageBoxA
改动三字节即完成爆破。任意用户名+注册码注册成功!
能力值:
( LV2,RANK:10 )
6 楼
这个爆破不难啊 里面的音乐怎么获取呢 能不能分享下?
能力值:
( LV3,RANK:20 )
7 楼
signed int __stdcall sub_4010E3(HWND hWnd, int pKeyCode, unsigned int a3)
{
signed int v3; // edx@1
int pKey; // ebx@1
signed int i; // edi@3
unsigned __int8 v6; // al@4
int v7; // edx@9
signed int v8; // ecx@11
signed int v9; // eax@17
int keyLength; // [sp+Ch] [bp-10h]@1
char v12; // [sp+11h] [bp-Bh]@8
__int16 v13; // [sp+12h] [bp-Ah]@1
__int16 v14; // [sp+14h] [bp-8h]@1
__int16 v15; // [sp+16h] [bp-6h]@1
__int16 v16; // [sp+18h] [bp-4h]@1
__int16 v17; // [sp+1Ah] [bp-2h]@1
pKey = pKeyCode;
v13 = 0;
v14 = 0;
v15 = 0;
v16 = 0;
v17 = 0;
keyLength = strlen(pKeyCode);
v3 = 1;
do
{
*((_BYTE *)&v13 + v3) = (a3 >> v3) & 1;
++v3;
}
while ( v3 < 9 );
HIBYTE(v17) = 1;
for ( i = 0; ; ++i )
{
if ( keyLength <= 0 || !*(_BYTE *)pKey )
{
v9 = 1;
while ( *((_BYTE *)&v13 + v9) != 1 )
{
++v9;
if ( v9 >= 10 )
{
MessageBoxA(hWnd, "注册成功", "提示", 0);
return 1;
}
}
return 0;
}
v6 = (*(_BYTE *)pKey + (a3 >> i % (signed int)0x1Fu) % 0xA - 48) % 0xA;
if ( v6 == 1 )
{
HIBYTE(v13) ^= 1u;
goto LABEL_7;
}
if ( *(&v12 + v6) != 1 )
return 0;
v7 = v6 - 2;
if ( v7 >= 1 )
{
if ( v7 > 1 )
break;
}
LABEL_6:
*((_BYTE *)&v13 + v6) ^= 1u;
LABEL_7:
++pKey;
}
v8 = 1;
while ( *((_BYTE *)&v13 + v8) != 1 )
{
++v8;
if ( v8 >= v7 )
goto LABEL_6;
}
return 0;
}
看这代码:也只能爆破吧。
注册成功必须满足:1 注册码长度为小于等于0。。。
2那个循环必须给10字节都赋值为1。
因此要patch两处。
能力值:
( LV8,RANK:140 )
8 楼
下到192KB就不动了
能力值:
( LV3,RANK:20 )
9 楼
用资源编辑工具提取啊!!!编程时在资源里加上"WAVE"资源,用API播放。
能力值:
( LV2,RANK:10 )
10 楼
卧槽,下载重试了不下百次,没有一次成功....果断放弃...
能力值:
( LV15,RANK:670 )
11 楼
我还以为只有我下载失败。。
能力值:
( LV15,RANK:670 )
12 楼
注册码长度小于等于零或者是读到了零结尾。
能力值:
( LV2,RANK:10 )
13 楼
不错啊 真的可以提取了。。
能力值:
( LV15,RANK:520 )
14 楼
我也下载失败。论坛下载是不是有问题啊
能力值:
( LV2,RANK:10 )
15 楼
显然...你把CM搞大了(这话好像有点邪恶...),然后论坛的远房亲戚就来了...
uing07@vip.qq.com,要不韬哥发我邮箱?
能力值:
( LV3,RANK:20 )
16 楼
能力值:
( LV15,RANK:520 )
17 楼
我重新来下,去掉音乐
能力值:
( LV2,RANK:10 )
18 楼
话说为什么不直接扔网盘的...
能力值:
( LV15,RANK:520 )
19 楼
附件重新上传
能力值:
( LV15,RANK:520 )
20 楼
扔看雪上比较好,网盘没怎么使用。
能力值:
( LV15,RANK:520 )
21 楼
此内容被屏蔽。
能力值:
( LV2,RANK:10 )
22 楼
屏蔽纯属你个人RP问题...
奇怪,爆破后保存文件,图标不一样了...
上传的附件:
能力值:
( LV15,RANK:3306 )
23 楼
fjr
53276234204011939682658317168984425423277500417991076907607880332623425949061797126584171517842
能力值:
( LV2,RANK:10 )
24 楼
菜鸟飞过。。就拿这个分析吧。。。。。。
能力值:
( LV3,RANK:20 )
25 楼
又看了一下。。。
int __stdcall sub_4011EB(HWND hWnd, __int16 a2, int a3)
{
UINT v3; // eax@3
signed int v4; // edx@4
signed int v5; // ecx@5
CHAR String; // [sp+0h] [bp-1010h]@1
int v8; // [sp+1000h] [bp-10h]@3
int v9; // [sp+1004h] [bp-Ch]@1
int v10; // [sp+1008h] [bp-8h]@1
int v11; // [sp+100Ch] [bp-4h]@1
int v12; // [sp+1010h] [bp+0h]@1
sub_4014E0(v12);
v9 = 0;
v10 = 0;
v11 = 0;
sub_401380(&String, 0, 4096);
if ( a2 == 4003 )
{
if ( GetDlgItemTextA(hWnd, 4002, &String, 4096) )
{
v3 = GetDlgItemTextA(hWnd, 4001, (LPSTR)&v8, 16);
if ( v3 )
{
v4 = 0x13572468u;
if ( (signed int)v3 > 0 )
{
v5 = 0;
do
{
v4 = ((0x3721273 * (v4 + *((_BYTE *)&v8 + v5)) + 0x24681357) >> 7) | ((0x3721273
* (v4 + *((_BYTE *)&v8 + v5))
+ 0x24681357) << 25);
++v5;
}
while ( v5 < (signed int)v3 );
}
sub_4010E3(hWnd, (int)&String, v4);
}
}
}
return 0;
}
用户名经上述计算得到 XXX,最后有八九位为1,把这九位复制到一块内存中。
然后注册码计算时,不断循环将刚得的1又异或为0,就注册成功了。
反算注册码不太会,key不搞了。