首页
社区
课程
招聘
[原创]readyu's crackme 002 ,欢迎品尝
发表于: 2007-11-10 22:49 6840

[原创]readyu's crackme 002 ,欢迎品尝

2007-11-10 22:49
6840

【原创】readyu's crackme 002, 欢迎品尝  

说明:
VC6编写的,无壳,无花,无反调试。纯粹的算法keygenme。
算法是自己的,很朴素的思想。

因为keygenme001,其中的一个算法设计有点偏了,没有相关知识比较难于理解。
重写了一个keygenme 002,比较保守,没有多线程,也没有偏门。
值得尝试。
说实在,写keygenme,比写个普通的小软件要费心思的很多。
因为要考虑诸多方面,同时测试好,写好它对应的keygen。

难度:
比keygenme001省事了不少,难度还可以,应该有点玩头,欢迎玩玩。
keygenme002_readyu.rar
13.7 KB (14,084 字节)


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (8)
雪    币: 926
活跃值: (387)
能力值: (RANK:500 )
在线值:
发帖
回帖
粉丝
2
UserName:kyo327
sn:067738D2RDBF5ED2A
2007-11-11 23:54
0
雪    币: 11705
活跃值: (975)
能力值: ( LV12,RANK:779 )
在线值:
发帖
回帖
粉丝
3
非常好。

:)

2007-11-12 00:01
0
雪    币: 29235
活跃值: (7764)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
4
学习
fenjianren
60177878R8BB05B04
2007-11-12 01:35
0
雪    币: 29235
活跃值: (7764)
能力值: ( LV15,RANK:3306 )
在线值:
发帖
回帖
粉丝
5
晕,跑到下面了,本来想放到一起的
上传的附件:
2007-11-12 03:10
0
雪    币: 11705
活跃值: (975)
能力值: ( LV12,RANK:779 )
在线值:
发帖
回帖
粉丝
6
// 好,002被解决了

// readyu's hash32bit_c_d algo

#define INIT_ROUND  1
//260 tables
static unsigned int hash_tbl[256+4] = {0};

unsigned int calc_hash32_c(unsigned int hash32_head, const void * buf, int lenth)
{
    unsigned int hash32;
    unsigned char * p = (unsigned char *)buf;
    int j;

    hash32 = hash32_head;
    while(lenth --) {        
        hash32 ^= (*p << 0xC);
        p++;
        for(j = 0; j < 3; j++) {
            hash32 += hash32;
            hash32 ^= hash_tbl[(hash32>>0xC) & 0xFF];
        }  
    }
    return hash32;
}

unsigned int calc_hash32_d(unsigned int hash32_head, const void * buf, int lenth)
{
    unsigned int hash32;
    unsigned char * p = (unsigned char *)buf;
    int j;

    hash32 = hash32_head;
    while(lenth --) {        
        hash32 ^= (*p << 0xD);      
        p++;
        for(j = 0; j < 3 ; j++) {
            hash32 += hash32;
            hash32 ^= hash_tbl[(hash32>>0xD) & 0xFF];
        }  
    }
    return hash32;
}

// init hash  table first,  before you using hash-functions above
void init_hash_tbl_cd(int round)
{   
    int j, k;

    if(round < 1 || round > 0xF) // so, I need 1<= round <= 0xF
        round = INIT_ROUND;
   
    for(j = 0; j <=0xFF ; j++) {
        hash_tbl[j] = j << 24;
        hash_tbl[j] |= j << 16;
        hash_tbl[j] |= j << 8;  
        hash_tbl[j] |= j;
    }

    k = 0;
    while(k++ < round) {
        for(j = 0; j <=0xFF ; j++) {
            hash_tbl[j] ^= calc_hash32_c(hash_tbl[j], &hash_tbl, j);
            hash_tbl[j] ^= calc_hash32_d(hash_tbl[j], &hash_tbl, j);
        }   

        for(j = 0; j <=0xFF ; j++) {
            hash_tbl[j] ^= calc_hash32_d(hash_tbl[j], &hash_tbl, j);
            hash_tbl[j] ^= calc_hash32_c(hash_tbl[j], &hash_tbl, j);
        }                     
    }
        
    for(j = 0; j <=0xFF ; j++) {
        hash_tbl[j] ^= calc_hash32_c(hash_tbl[j], &hash_tbl, 0xFF);
        hash_tbl[j] ^= calc_hash32_d(hash_tbl[j], &hash_tbl, 0xFF);
    }   

#ifdef HASH_SHOW_MAGIC   
    for (j = 0; j <4 ; j++){
        hash_tbl[256+j] = 0xEFBEFECA;
    }
#endif

    return;
}
2007-11-12 16:15
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
7
[QUOTE=readyu;380607]// 好,002被解决了

// readyu's hash32bit_c_d algo

#define INIT_ROUND  1
//260 tables
static unsigned int hash_tbl[256+4] = {0};

unsigned int calc...[/QUOTE]
欢迎你开源。
2007-11-12 23:40
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
8
支持
2007-11-13 10:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
笨.没有算出来.
    哈哈,学习
2007-11-14 14:49
0
游客
登录 | 注册 方可回帖
返回
//