算法难度:⭐⭐⭐
爆破难度:⭐⭐
信息收集
运行情况:
查壳与脱壳:
无壳:
调试分析
IDA打开程序分析,是个C++程序
搜索字符串发现提示信息:You solve it
然后根据提示信息定位到反汇编,F5一下偷个懒:
这里就是根据Name生成一个字符串,然后和Serial进行对比,只要按照生成顺序生成一个字符串,即是Serial
注册机
注册码生成算法:
#include <iostream>
#include <string>
int main()
{
std::string name;
std::cin >> name;
for (int i = 0; i < name.length(); i++) name[i] -= 4;
name.insert(3, "-");
name.insert(5, "-");
name.insert(6, "axd");
std::cout << name;
}
效果: