首页
社区
课程
招聘
[原创]这次是一次大忽悠
发表于: 2011-11-22 10:02 14699

[原创]这次是一次大忽悠

2011-11-22 10:02
14699
忽悠一下,看下注册成功的样子。
无壳,无反调试,无效验,无SMC。

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (35)
雪    币: 416
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
真是悲劇,下載都有問題。

需要用接力下載 = =

上传的附件:
2011-11-22 10:21
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=幻影火;1022318]真是悲劇,下載都有問題。

需要用接力下載 = =

[/QUOTE]

TNT炸弹
2011-11-22 11:20
0
雪    币: 544
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
搞什么啊。下几次都下载失败!
2011-11-22 21:15
0
雪    币: 544
活跃值: (55)
能力值: ( 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



改动三字节即完成爆破。任意用户名+注册码注册成功!
2011-11-22 22:17
0
雪    币: 295
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个爆破不难啊  里面的音乐怎么获取呢  能不能分享下?
2011-11-22 22:18
0
雪    币: 544
活跃值: (55)
能力值: ( 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两处。
2011-11-22 22:20
0
雪    币: 270
活跃值: (97)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
8
下到192KB就不动了
2011-11-22 22:23
0
雪    币: 544
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
用资源编辑工具提取啊!!!编程时在资源里加上"WAVE"资源,用API播放。
2011-11-22 22:35
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
卧槽,下载重试了不下百次,没有一次成功....果断放弃...
2011-11-22 22:42
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
11
我还以为只有我下载失败。。
2011-11-23 01:06
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
12
注册码长度小于等于零或者是读到了零结尾。
2011-11-23 01:21
0
雪    币: 295
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
不错啊  真的可以提取了。。
2011-11-23 02:54
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
14
我也下载失败。论坛下载是不是有问题啊
2011-11-23 08:51
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
显然...你把CM搞大了(这话好像有点邪恶...),然后论坛的远房亲戚就来了...
uing07@vip.qq.com,要不韬哥发我邮箱?
2011-11-23 08:54
0
雪    币: 60
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
下载失败!
2011-11-23 08:56
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
17
我重新来下,去掉音乐
2011-11-23 09:37
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
话说为什么不直接扔网盘的...
2011-11-23 09:40
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
19
附件重新上传
2011-11-23 09:40
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
20
扔看雪上比较好,网盘没怎么使用。
2011-11-23 09:41
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
21
此内容被屏蔽。
2011-11-23 09:41
0
雪    币: 85
活跃值: (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
屏蔽纯属你个人RP问题...


奇怪,爆破后保存文件,图标不一样了...
上传的附件:
  • 0.png (28.37kb,107次下载)
2011-11-23 17:15
0
雪    币: 29249
活跃值: (7769)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
23
fjr
53276234204011939682658317168984425423277500417991076907607880332623425949061797126584171517842
2011-11-23 18:34
0
雪    币: 285
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
菜鸟飞过。。就拿这个分析吧。。。。。。
2011-11-23 21:28
0
雪    币: 544
活跃值: (55)
能力值: ( 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不搞了。
2011-11-23 23:38
0
游客
登录 | 注册 方可回帖
返回
//