本帖最后由 不败的米 于 2018-8-17 17:18 编辑
系统码为磁盘序列号的倒序
此算法可逆仅用作其他软件破解思路[C++] 纯文本查看 复制代码 #include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
menu:
cout << "系统码: ";
char pro_id[0x3e];
memset(pro_id, 0, 0x3e);
cin >> pro_id;
int length = strlen(pro_id);
int level = length >> 1;
pro_id[length] = 78;
pro_id[length + 1] = 78;
if (length % 2) pro_id[length + 2] = 78;
cout << "补偶码: " << pro_id << endl;
length = strlen(pro_id);
level = length >> 1;
int i;
for (i = 0; i < level; i++) {
char b = pro_id[i];
pro_id[i] = pro_id[i + level];
pro_id[i + level] = b;
}
for (i = 0; i < level; i++) {
char b = pro_id[i];
pro_id[i] = pro_id[2 * level - 1 - i];
pro_id[2 * level - 1 - i] = b;
}
for (i = 0; i < length; i++) {
char wait = pro_id[i];
if (wait & 2)wait &= 253; else wait |= 2;
pro_id[i] = wait;
if (wait & 4)wait &= 251; else wait |= 4;
pro_id[i] = wait;
if (wait & 8)wait &= 247; else wait |= 8;
pro_id[i] = wait;
}
cout << "注册码: " << pro_id << endl;
return 0;
}
|