首页
社区
课程
招聘
是男人就上一百层的注册算法分析C语言实现
发表于: 2006-3-21 15:41 10841

是男人就上一百层的注册算法分析C语言实现

2006-3-21 15:41
10841
收藏
免费 7
支持
分享
最新回复 (29)
雪    币: 146
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
【软件名称】是男人就上一百层
【下载地址】无法上传附件
【应用平台】Win9x/NT/2000/XP
【软件大小】503K
【软件限制】未注册时,没有任何功能限制。
【保护方式】序列号
【破 解 者】neohost
【破解难度】1/10
【破解声明】只是为了熟悉逆向工程,所以注册机源码及注册检验模拟源码仅研究用请勿用于提供破解下载。
【破解工具】W32DASM,ResHacker,Windows自带计算器
【注册机下载】仅提供源代码,支持共享软件
【软件简介】。。。。。。。。   //就是这里啦,呵呵。
2006-3-21 17:20
0
雪    币: 260
活跃值: (274)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
万分感激!!!!!!playx
2006-3-21 17:23
0
雪    币: 146
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
最初由 andy00 发布
万分感激!!!!!!playx


楼主很谦虚,算法分析得详细,不错,适合偶等算法盲入门
2006-3-21 17:33
0
雪    币: 260
活跃值: (274)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
5
我也是个菜鸟!!!!
2006-3-21 17:37
0
雪    币: 207
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
赞。。。

最近很多新人,一个比一个猛。。。

自愧不如。。。
2006-3-21 17:56
0
雪    币: 179
活跃值: (131)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
7
非常详细,楼主辛苦了
2006-3-21 18:07
0
雪    币: 196
活跃值: (135)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
8
分析的很好,比我强^-^
2006-3-21 18:22
0
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
真的很强啊
2006-3-21 18:29
0
雪    币: 222
活跃值: (40)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
好文,支持
2006-3-21 18:52
0
雪    币: 50161
活跃值: (20660)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
11
最初由 andy00 发布
这仅仅是个静态分析,没有调试


这点强  :)
2006-3-21 19:47
0
雪    币: 257
活跃值: (11)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
同意kanxue所说
2006-3-21 22:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
附一个我早些年写的版本
___________________________________

//keygenOf100up
//only 4 study and research
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream.h>
#include <string.h>

//generate the key
char * keyGen()
{
        int keyNum[7];
        // initialize random generator
        srand ( time(NULL) );
        // generate key by some random numbers
        keyNum[2]=rand()%0x24;
        keyNum[5]=rand()%0x24;
        keyNum[0]=(keyNum[2]+keyNum[5]*2+0x1c)%0x24;

        keyNum[1]=rand()%0x24;
        keyNum[4]=rand()%0x24;
        keyNum[6]=(keyNum[1]+keyNum[4]*2+0x1c)%0x24;

        keyNum[3]=(keyNum[0]+keyNum[6]*2+0x1c)%0x24;

        //translate keyNum 2 ASCII
        char * sn=new char [8];
        sn[7]='\0';
        for(int i=0;i<7;i++)
        {
                if(keyNum[i]<10)
                        sn[i]=keyNum[i]+0x30;
                else
                        sn[i]=keyNum[i]+0x37;
        }
        return sn;
}

void main ()
{
        int i;
        char * sn;
        cout<<"keygen for 是男人就上100层"<<endl;
        cout<<"only 4 study and research"<<endl;
        cout<<"Press Enter to generate again, Ctrl+C to exit"<<endl;
        while (1)
        {
                sn=keyGen();
                cout<<sn;
                delete sn;
                cin.get()>>i;
        }
}
2006-3-21 22:46
0
雪    币: 260
活跃值: (274)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
14
xuanqing厉害啊,怎么分析那个注册机算法出来的??
说一下三。
2006-3-21 22:58
0
雪    币: 260
活跃值: (274)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
15
哎看出来了,我太笨了!!!
2006-3-21 22:59
0
雪    币: 260
活跃值: (274)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
16
不过穷举也还是有个好处,可以把所有的有效注册码写出来。
2006-3-21 23:00
0
雪    币: 50
活跃值: (145)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
17
真强,都给还原啦
2006-3-21 23:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
新人学习中!!!!!!!
2006-3-22 21:00
0
雪    币: 146
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
最初由 andy00 发布
xuanqing厉害啊,怎么分析那个注册机算法出来的??
说一下三。


楼主四川的吧,呵呵。
2006-3-23 01:12
0
雪    币: 260
活跃值: (274)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
20
你看出来了三,我成都口音.
2006-3-23 09:48
0
雪    币: 146
活跃值: (72)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
21
最初由 andy00 发布
你看出来了三,我成都口音.

我遂宁的,老乡好 多交流~QQ:2385580
2006-3-23 16:38
0
雪    币: 202
活跃值: (122)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
进步了,谢楼主。

指出楼主几个笔误:
1.
:004069C4 8B4508                  mov eax, dword ptr [ebp+08]           
:004069C7 8A4002                  mov al, byte ptr [eax+02]
:004069CA 50                      push eax
:004069CB E8E7000000              call DealRegString(char)                  
:004069D0 83C404                  add esp, 00000004
:004069D3 33C9                    xor ecx, ecx
:004069D5 8AC8                    mov cl, al                                ;以上几句的作用 cl=DealRegString(lpString[5]),处理第6个字符,结果放入cl    ----这里应该是DealRegString(lpString[2]),处理第3个字符

2.
bool RegStringCheck(char* strReg)
{
    int     iVar;      
    int     al,bl,cl; //模拟寄存器
    if(strReg+1)    ----这个判断是不是应该为 if(*(strReg+7))
        return false    ----这里少了分号 :)
    ...
}

3.
如果cReg>='a',则cReg-20H-30H-7<=24H====>cReg<=81H    ----应为7Bh
如果cReg>='A',则cReg-30H-7<=24H=====>cReg<=61H='a'   ----应为5Bh
如果cReg<'A',则cReg-30H<=24H=====>cReg<=54H='T'

呵呵,楼主有些粗心哦。
2006-3-23 18:20
0
雪    币: 260
活跃值: (274)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
23
多谢了lostfaith
2006-3-25 23:29
0
雪    币: 260
活跃值: (274)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
24
已经修改了.....
2006-3-25 23:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
555555
楼上都有2精了
我还是0呢
-____-
哼唧
2006-3-26 13:25
0
游客
登录 | 注册 方可回帖
返回
//