首页
社区
课程
招聘
一篇旧东西:freeRes V0.94 的C注册机
发表于: 2004-6-2 16:12 9332

一篇旧东西:freeRes V0.94 的C注册机

2004-6-2 16:12
9332

【】写了很久的东西了;今天来学院;没什么东东贴,就上这个吧
【】中了一次毒,丢了不少东东
【】最可惜的是一堆关于公开密钥算法快速实现的资料,希望能……

/* freeRes V 0.94 KeyGen */
/* by lq7972 */
/* [email]bruceyu13@sina.com[/email] */

#include <stdio.h>
#include <string.h>
#include <wchar.h>

char *ChangeName (char *, int) ;
int ModifyValue (int, int) ;

int main ()
{
        int  name_len, i, counter, temp ;
        unsigned long int temp00, tempNumber = 0x3D6 ;
        char user_name [255] =  "", tempName [255] = "", hard_code [255] = "" ;
        char *new_name, RegCode [41] = "" ;
        wchar_t reg_code01 [20], reg_code02 [20] ;
        FILE *cfPtr ;

        printf ("\t   freeRes V 0.94 KeyGen\n\tby lq7972[bruceyu13@sina.com]\n\n") ;
        printf ("Enter your name : ") ;
        gets (user_name) ;
        printf ("Enter hard code : ") ;
        gets (hard_code) ;

        strcpy (tempName, user_name) ;
        strcat (tempName, hard_code) ;
        name_len = strlen (tempName) ;

        /********************************************************/
        /* change user_name */
        new_name = ChangeName (tempName, name_len) ;
        name_len = strlen (new_name) ;

        /********************************************************/
        /* Calc01 */
        for (counter=0; counter<name_len; counter++) {
                temp00 = tempNumber ;
                temp00 <<= 16 ;
                temp00 >>= 24 ;       
                reg_code01 [counter] = new_name [counter] ^ temp00 ;
                tempNumber += reg_code01 [counter] ;
                tempNumber *= 0x3183 ;
                tempNumber += 0x8C34 ;
        }
        /********************************************************/
        /* Calc02 */
        tempNumber = 0x3D6 ;
        for (counter=0; counter<name_len; counter++) {
                temp00 = tempNumber ;
                temp00 <<= 16 ;
                temp00 >>= 24 ;       
                reg_code02 [counter] = reg_code01 [counter] ^ temp00 ;
                tempNumber += reg_code02 [counter] ;
                tempNumber *= 0x3183 ;
                tempNumber += 0x8C34 ;
        }

        /********************************************************/
        /* Calc03 */
        for (i=0, counter=0; counter<name_len; counter++, i=i+2) {
                if (reg_code02 [counter]>0x7E) {
                        temp = ModifyValue (reg_code02 [counter], 0x7E) ;
                        RegCode [i] = reg_code02 [counter] >> temp ;
                        RegCode [i+1] = ((temp & reg_code02 [counter]) << 4) | 0x42 ;
                }
                else {
                        if (reg_code02 [counter] >=0x21) {
                                RegCode [i] = reg_code02 [counter] ;
                                RegCode [i+1] = 0x43 ;
                        }
                        else {
                                temp = ModifyValue (reg_code02 [counter], 0x21) ;
                                RegCode [i] = reg_code02 [counter] << temp ;
                                RegCode [i+1] = temp+0x43 ;
                        }
                }
        }

        printf ("Your reg code are : %s\n", RegCode) ;
        printf ("Writing file...\n") ;
        if ((cfPtr = fopen("key.txt", "w")) == NULL)
                printf ("File could not be opened\n") ;
        else
                fprintf (cfPtr, "%s\n%s\n%s%s\n%s%s\n%s\n%s",
                                "freeRes V 0.94 KeyGen",
                                "by lq7972[bruceyu13@sina.com]",
                                "Your user name : ", user_name,
                                "Your hard code : ", hard_code,
                                "Your reg code are :",
                                RegCode) ;

        return 0 ;
}

/********************************************************/
/**/
char *ChangeName (char *uName, int len)
{
        int i=1, j, counter, temp ;
        char nName [20] = "", tempName [19] = "" ;

        if (len <= 0x13) {
                nName [0] = uName [len-1] ;
                nName [1] = len ;

                if (0x13 == len) {
                        strncpy (tempName, uName, 18) ;
                        strcat (nName, tempName) ;
                }
                else {
                        for (counter=(0x12-len+1); counter>1; counter--) {
                                nName [counter] = nName [0] + i ;
                                i ++ ;
                        }
                        strcat (nName, uName) ;
                }
        }
        else {
                i=(len-0x13) ; j = 0x13 ;
                temp = uName [0x12] ;
                for (; i>0; i--, j++) {
                        temp -= uName [j] ;
                        if (temp<0) temp *= -1 ;               
                }
                nName [0] = temp ;
                nName [1] = len ;
                strncpy (tempName, uName, 18) ;
                strcat (nName, tempName) ;       
        }

        return nName ;
}

/********************************************************/
/**/
int ModifyValue (int in, int select)
{
        register int counter = 0 ;

        switch (select) {
        case 0x7E :
                while (in > 0x7F) {
                        counter ++ ;
                        in = (in & 0xFF) >> 1 ;       
                }
                if (2 == counter) counter = 3 ;       
                break ;
        case 0x21 :
                while (in < 0x21) {
                        counter ++ ;
                        in += in ;
                }
                break ;
        }

        return counter ;
}

【】买一送一
Software : Delphi学习宝典
                教学软件,主要有以下功能:初级教程/开发教程/API函数/内置函数/错误信息
                http://learndelphi.yeah.net/
Tools : OllyDbg
Cracker : lq7972 [bruceyu13@sina.com]

很简单的注册机制,不过这个东东的资料搜集还是下了些功夫

主程序是 Microsoft Visual Basic 6.0

【注册机】
/* [请使用E文注册名] */
#include <stdio.h>
#include <string.h>

int main ()
{
        register int i ;
        int code = 0 ;
        char name [256] ;

        printf ("\t\tLearnDelphi V 1.2 KeyGen\n"
                "\t    by  lq7972 [bruceyu13@sina.com]\n") ;
        printf ("Enter your name : ") ;
        gets (name) ;
        for (i=0; i < strlen(name); i ++) code += name[i] ;
        printf ("Your code is : %d\n", code*0x12D687) ;

        printf ("Press any key to continue\n");
        getch () ;
        return 0 ;
}


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 10
支持
分享
最新回复 (2)
雪    币: 209
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我很早以前就有FreeRes 0.94这个软件了
  当时注册很简单 只要随便填个用户名就可以注册了,
虽然不会告诉你注册成功 但是下次再找开的时候就已经是注册版的了

难道是已经破解过的??
2004-6-2 21:52
0
雪    币: 303
活跃值: (466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
最初由 血腥家宜 发布
我很早以前就有FreeRes 0.94这个软件了
当时注册很简单 只要随便填个用户名就可以注册了,
虽然不会告诉你注册成功 但是下次再找开的时候就已经是注册版的了

难道是已经破解过的??
爆破版的说
2004-6-2 21:56
0
游客
登录 | 注册 方可回帖
返回
//