zbnysjwsnd8 发表于 2017-9-27 21:24

KeygenMe一只 玩的开心~.~

本帖最后由 zbnysjwsnd8 于 2017-9-28 18:33 编辑

很简单的算法。
要求:编写注册机,编写的必须要全面。



等待大佬弄出原始算法

冷小鑫 发表于 2017-9-27 22:30

chenyw 发表于 2017-9-27 22:59

我也还没有看出来,不知是什么

liuxia 发表于 2017-9-28 09:11

一脸仰望

麦布雷 发表于 2017-9-28 14:36

本帖最后由 麦布雷 于 2017-9-28 14:59 编辑



在IDA伪代码基础上精简算法,将算法嵌入遍历框架中暴力算出可用用户名和序列号。

zbnysjwsnd8 发表于 2017-9-28 17:08

麦布雷 发表于 2017-9-28 14:36
在IDA伪代码基础上精简算法,将算法嵌入遍历框架中暴力算出可用用户名和序列号。

嗯。能说一下怎么想到的嘛

麦布雷 发表于 2017-9-28 17:39

zbnysjwsnd8 发表于 2017-9-28 17:08
嗯。能说一下怎么想到的嘛

算法不太了解,看到与操作不太懂怎么回溯,而且之前处理过相似的东西。
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include <stdlib.h>
#include "time.h"


int sub_401000(int a1, int a2)
{
        return ~a2 & ~a1;
}
int main()
{
                int v3; // ST18_4
                int v4; // ST14_4
                int v5; // eax
                int v6; // eax
                int v7; // ST18_4
                int v13; // ST18_4
                int v15; // eax
                int v16; // eax
                int v17; // ST18_4
                int v46; // ST14_4
                int v47; // eax
                int v48; // eax
                int ijk;
                int k; //
                char v54; //
                char v55; //

                int strnum = { -57,-10,-21,-9,-12,-1,-32,-85 };
                char suc;
                int tempnum;
                strcpy_s(suc, "Success!");
                strcpy_s(v54, "88888888");
                strcpy_s(v55, "88888888");

                srand(time(NULL));
                for (k = 0; k < 8; k++)
                {
                        srand(rand()%10000 -5000);
                        v55 = rand()%94+33;
                }

                for (k = 0; k < &v55 - &v55; ++k)
                {

                        for (ijk = 33; ijk <= 126; ijk++)
                        {
                               
                                v3 = sub_401000(v55, ijk);//v3=~v55&~v54;
                                v4 = sub_401000(ijk, ijk);//v4=~v54;
                                v5 = sub_401000(v55, v55);//v5=~v55;
                                v6 = sub_401000(v5, v4);//v6=v55&v54;
                                v7 = sub_401000(v6, v3);//v8 = ~(v55 & v54)&~(~v55 & ~v54);

                                v13 = sub_401000(v7, v7);

                                v15 = sub_401000(v5, v13);
                                v16 = sub_401000(ijk, v15);
                                v17 = sub_401000(strnum, v16);

                                v46 = sub_401000(v16, v16);
                                v47 = sub_401000(strnum, strnum);
                                v48 = sub_401000(v47, v46);
                                tempnum = sub_401000(v48, v17);

                                if (tempnum == (int)suc)
                                {
                                        v54 = ijk;
                                        break;
                                }
                                if (ijk == 126)
                                {
                                        if (v55 < 126)
                                                v55++;
                                        else if (v55 == 126)
                                                v55 = 33;
                                        ijk = 32;
                                }
                        }

                }
                printf_s("new username:%s\n", v55);
                printf_s("new Serial:%s\n", v54);

                system("pause");
                return 0;
       
}

zbnysjwsnd8 发表于 2017-9-28 17:51

麦布雷 发表于 2017-9-28 17:39
算法不太了解,看到与操作不太懂怎么回溯,而且之前处理过相似的东西。
#include " ...

这并没有简化算法啊 算法还是原来的

麦布雷 发表于 2017-9-28 18:01

zbnysjwsnd8 发表于 2017-9-28 17:51
这并没有简化算法啊 算法还是原来的

相比较ida全部的伪代码,我删了不少东西

zbnysjwsnd8 发表于 2017-9-28 18:09

麦布雷 发表于 2017-9-28 18:01
相比较ida全部的伪代码,我删了不少东西

那你把你简化后的发来看看
页: [1] 2
查看完整版本: KeygenMe一只 玩的开心~.~