• 标 题:BabyGame 破解方法及注册码表 (1千字)
  • 作 者:crack123
  • 时 间:2001-7-4 20:28:40
  • 链 接:http://bbs.pediy.com

BabyGame 破解方法及注册码表
软件名称:BabyGame v2.10
保护方式:注册码、非注册时运行三次或累计运行
时间超过30分钟即弹出注册窗无法运行。

一、破解方法:
1、程序运行后检查其安装目录,发现多出两个文件
babygame.dpt和regfile,程序不能运行后删除这两个
文件既可再运行三次或累计运行时间30分钟。
2、以上做法仍没有彻底解决使用问题,还得使用TRW
跟踪看看,进入程序注册输入窗,输入crack123及
98989898后ctrl+N切换至TRW窗,下
s 30:0 l ffffffff '98989898'
找到两个地址,相应下bpm  地址  rw后
G返回程序,点击确定被TRW拦下,在
kernel32!comparestringa+0011处,
F12、F10数次返回程序上空后,F10继续跟踪。
经多次反复跟踪确定在程序行
        7d0d  jnz 0d7a    (no jump)
改为    eb0d  jmp 0d7a    (jump)
程序即现实成功注册。


二、注册码表如下:
经跟踪程序计算注册码程序段,发现其采用查表法
(见下)。

使用方法:用户名不分大小写一一对应变换为->后的
字母或数字即为相应的注册码(字母必须大写)。现在
看来真是太简单了(尤其是数字和汉字只要换成对应
位数的A就成)。

例:crack123  ---->>    MJ2MPAAA
     
a->2  b->G  c->M  d->N  e->5  f->D
g->H  h->1  i->T  j->8  k->P  l->W
m->3  n->Q  o->C  p->9  q->R  r->J
s->L  t->4  u->K  v->B  w->E  x->6
y->F  z->7  &->V 
数字1~9、汉字及其他键盘可输入字符->A

另:用邻近内存查找法在错误注册码附近也可看到
同样长度的正确注册码,同时也能看到注册码表。

注册机连接:http://crack123.51.net/reg-babygame.exe

<crack123>

  • 标 题:BabyGame 注册机源码(1千字)
  • 作 者:crack123
  • 时 间:2001-7-4 22:46:43

不太清楚手动脱壳的要求,请解释一下!

BabyGame 注册机源码(太简单了,所以不好意思认为这样的就可以及格):
BCB 5.0

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        int i,l;
        char j;
        AnsiString name,code;
        code="2GMN5DH1T8PW3QC9RJL4KBE6F7VA";  //注册码表 
        if (Edit1->Text=="" )
        {
            Edit1->SetFocus();
            return;
        }
        name=Edit1->Text;  从用户名输入框中读取用户名字符串
        l=Edit1->Text.Length();  计算用户名程度
        for (i=1;i<=l;i++)      逐位转换用户名字符->注册码字符
                {
                  j=name[i] ;
                  if ((j>='A')&(j<='Z'))   
                  {
                            j=j-64;  是大写字母计算查表下标
                            j=code[j];
                  }
                  else if ((j>='a')&(j<='z'))
                  {
                            j=j-96;  是小写字母计算查表下标
                            j=code[j];
                  }
                  else if(j=='&')    是"&"查表下标为27
                      j=code[27];
                  else
                    j=code[28];      数字、汉字等其余字符
                                      下标为28
                                     

                  Edit2->Text=Edit2->Text+  j; 逐位在注册码
                }                            框中显示注码 
}
//------------------------------------------------------------