• 标 题:网吧维护系统1.03 (5千字)
  • 作 者:turkey99
  • 时 间:2001-12-16 2:35:01
  • 链 接:http://bbs.pediy.com

网吧维护系统1.03
今天在CNCG的主页上看到发布CNCG的第一个crackme,呵呵,我乃菜鸟一个,正好试试我的功力如何,立马拉下来了,一看个头还挺大的,我用小猫:)安装之后随便操作几下后,点注册,发现是靠机器码的,不要用户名,随便输入一个注册码,点确定,弹出一个框,说要重新启动软件来验证注册码是否正确,重新运行软件,没有发现什么异样,注册按钮也不见了,我还以为瞎猫碰上死耗子了,点下一步,弹出一个框,说注册码错误,与作者联系,KAO,原来是这样,又运行了几遍,发现出现这个对话框是不固定的,有时候第一下点下一步按钮对话框就出来了,有时候要点两次下一步才会出现这个对话框,KAO,这么麻烦,先看看有壳没有,pecompact1.4 or above的壳,用unpecomact脱了它,运行脱壳之后的程序,进去就退出来了,KAO,这里也防了,跟那个sitman一样,在trw中下bpx exitprocess ,运行脱壳后的程序,被trw断下来,通过分析、查找和尝试,招到了那个调用这个函数的call,将它nop掉,在运行,程序死在那里了,看来整个call全nop掉不行,那就找跳转,无奈发现里面的call实在太多,跳转也多,而且有些call实际上是跳转,找了几个跳转试了试,不是非法操作就是死机,可能是我没有找对吧,总之烦死了,加上我的汇编又烂,看来爆破是没有门了,还是老老实实的追注册码吧,但是下什么断点来断下程序呢,想到点下一步时会弹出一个错误的框来,就下与它有关的断点吧,结果我试了一个又一个,KAO,竟然没有一个能断下来的,真是活见鬼了。用黄金加强版反反汇编的w32dsm反编译脱壳后的文件,里面竟然什么字符串都没有,天啊,还反反反汇编,我倒。到这里我都快黔驴技穷了,随手又察看了一下脱壳后的文件,发现是用delphi写的,哈哈,好说好说,用dede反之,哈哈,终于显出原型来了,一番分析后,直达要害部位,下面是要害部位的部分代码:
0045CB89  push    dword ptr fs:[eax]
0045CB8C  mov    fs:[eax], esp
0045CB8F  mov    edx, $80000002
0045CB94  mov    eax, [ebp-$18]
0045CB97  call    0044EE20
0045CB9C  mov    cl, $01
* Possible String Reference to: '\Software\New Sun\网吧管理员'
0045CB9E  mov    edx, $0045D170
0045CBA3  mov    eax, [ebp-$18]
0045CBA6  call    0044EE84
0045CBAB  mov    eax, dword ptr [$46088C]
0045CBB0  cmp    eax, [$460884]
0045CBB6  jz      0045CBCB
0045CBB8  mov    eax, [ebp-$04]
* Reference to control TForm1.s3 : TLabel
0045CBBB  mov    eax, [eax+$02F4]
* Reference to field TLabel.OFFS_0047
0045CBC1  cmp    byte ptr [eax+$47], $00
0045CBC5  jnz    0045CBCB
0045CBC7  xor    eax, eax
0045CBC9  jmp    0045CBCD
0045CBCB  mov    al, $01
0045CBCD  cmp    al, $01
0045CBCF  jnz    0045CCBB    //这里如果跳走的话,你就成功了
0045CBD5  lea    ecx, [ebp-$1C]
0045CBD8  mov    dl, $01
0045CBDA  mov    eax, [ebp-$04]
* Reference to : TForm1.luomingfor()
0045CBDD  call    0045E0A4
0045CBE2  mov    eax, [ebp-$1C]
0045CBE5  push    eax
0045CBE6  lea    edx, [ebp-$20]
0045CBE9  mov    eax, [ebp-$04]
* Reference to control TForm1.putregcode : TEdit
0045CBEC  mov    eax, [eax+$033C]
0045CBF2  call    0042A80C
0045CBF7  mov    edx, [ebp-$20]
0045CBFA  mov    eax, [ebp-$04]
0045CBFD  pop    ecx
* Reference to : TForm1.ok()
0045CBFE  call    0045CA54    //哈哈,经典对比组合,想知道怎么对比就跟进去,如果只是要注册码的话,就D ECX吧,你看到了什么?怎么样,你成功了吧。 :)
0045CC03  test    al, al
0045CC05  jz      0045CC56
0045CC07  mov    eax, [ebp-$04]
* Reference to control TForm1.regestg : TGroupBox
0045CC0A  mov    eax, [eax+$032C]
0045CC10  xor    edx, edx
0045CC12  call    0042A724
0045CC17  mov    eax, [ebp-$04]
* Reference to control TForm1.ireg : TButton
0045CC1A  mov    eax, [eax+$0328]
0045CC20  xor    edx, edx
0045CC22  call    0042A724
0045CC27  lea    edx, [ebp-$24]
0045CC2A  mov    eax, [ebp-$04]
* Reference to control TForm1.putregcode : TEdit
0045CC2D  mov    eax, [eax+$033C]
0045CC33  call    0042A80C
0045CC38  mov    ecx, [ebp-$24]
* Possible String Reference to: 'regcodebak'
0045CC3B  mov    edx, $0045D198
0045CC40  mov    eax, [ebp-$18]
0045CC43  call    0044F020
0045CC48  mov    eax, dword ptr [$460880]
0045CC4D  mov    dword ptr [eax+$0C], $0000000B
0045CC54  jmp    0045CCBB          //在这里跳走的话,才是光明大道
0045CC56  xor    ecx, ecx
* Possible String Reference to: 'chereg'
0045CC58  mov    edx, $0045D1AC
0045CC5D  mov    eax, [ebp-$18]
0045CC60  call    0044F108
0045CC65  mov    eax, dword ptr [$460880]
0045CC6A  mov    dword ptr [eax+$0C], $00000003
0045CC71  mov    eax, [ebp-$04]
* Reference to control TForm1.ireg : TButton
0045CC74  mov    eax, [eax+$0328]
0045CC7A  mov    dl, $01
0045CC7C  call    0042A724
0045CC81  mov    eax, [ebp-$04]
* Reference to control TForm1.putregcode : TEdit
0045CC84  mov    eax, [eax+$033C]
0045CC8A  xor    edx, edx
0045CC8C  call    0042A83C
* Possible String Reference to: '对不起,你输入的注册码有问题!如要注
|                                册请与我联系电话:0732-5571778  0732
|                                -2372543Email:icqlm@sohu.com'
|
0045CC91  mov    eax, $0045D1BC
0045CC96  call    0044CF84
0045CC9B  mov    eax, dword ptr [$460880]
0045CCA0  mov    dword ptr [eax+$0C], $00000001
0045CCA7  mov    eax, dword ptr [$45FDEC]
0045CCAC  mov    eax, [eax]
0045CCAE  call    004484AC
0045CCB3  mov    eax, [ebp-$04]
0045CCB6  call    00445184
0045CCBB  xor    eax, eax
0045CCBD  pop    edx
0045CCBE  pop    ecx
0045CCBF  pop    ecx
0045CCC0  mov    fs:[eax], edx
0045CCC3  push    $0045CCE0
0045CCC8  mov    eax, [ebp-$18]
0045CCCB  call    0044EDF0
0045CCD0  mov    eax, [ebp-$18]
0045CCD3  call    00402EDC
0045CCD8  ret


最后整理一下:
我的机器码:77207838775-7009955
我的注册码:67678389907
如果你还想来一遍的话,在注册表中招到下面这两个键值:
[HKEY_LOCAL_MACHINE\Software\New Sun\网吧管理员]
"ifreg"=""          将它的值删掉
[HKEY_LOCAL_MACHINE\Software\New Sun\网吧管理员]
"regcodebak"=""    将它的值删掉
你就又可以注册了!
                    
                                    cracker:Turkey/灭害灵
                                    2001.12.16@02:33

转载请保持完整性,谢谢!!