KeygenMe一只 玩的开心~.~
本帖最后由 zbnysjwsnd8 于 2017-9-28 18:33 编辑很简单的算法。
要求:编写注册机,编写的必须要全面。
等待大佬弄出原始算法 我也还没有看出来,不知是什么 一脸仰望 本帖最后由 麦布雷 于 2017-9-28 14:59 编辑
在IDA伪代码基础上精简算法,将算法嵌入遍历框架中暴力算出可用用户名和序列号。
麦布雷 发表于 2017-9-28 14:36
在IDA伪代码基础上精简算法,将算法嵌入遍历框架中暴力算出可用用户名和序列号。
嗯。能说一下怎么想到的嘛 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;
}
麦布雷 发表于 2017-9-28 17:39
算法不太了解,看到与操作不太懂怎么回溯,而且之前处理过相似的东西。
#include " ...
这并没有简化算法啊 算法还是原来的 zbnysjwsnd8 发表于 2017-9-28 17:51
这并没有简化算法啊 算法还是原来的
相比较ida全部的伪代码,我删了不少东西 麦布雷 发表于 2017-9-28 18:01
相比较ida全部的伪代码,我删了不少东西
那你把你简化后的发来看看
页:
[1]
2