算法难度:⭐⭐⭐
爆破难度:⭐
信息收集
运行情况:
查壳与脱壳:
UPX,无脑ESP定律即可
调试分析
Delphi程序,IDR走起
首先是获取Name和Serial校验长度
然后是进行一个计算,根据Name计算Serial:
相同的操作会进行6次:取一个字节,乘以2,然后累加起来,会操作的就是Name的前6个字符
最后把这个累加值保存起来,给这个累加值加上个Name长度的两倍,转字符串(十进制,就是真码了
注册机
注册码生成算法:
#include <iostream>
int main()
{
char name[100] = { 0 };
int sum = 0;
std::cin >> name;
for (int i = 0; i < 6; i++) sum += name[i] * 2;
sum += strlen(name)*2;
if (sum >> 0x1f == 0)std::cout << sum;
}
结果:
总结
又是这种,把能写进循环的东西写了超级多段落,不难,只要有Delphi的符号,分析起来还是挺快的