算法难度:⭐⭐
爆破难度:⭐
信息收集
运行情况:
真难得见到一次控制台程序:
查壳与脱壳:
还带壳,ESP定律走起
调试分析
这里拿了一堆结构里的东西在做计算,直接F5看吧,方便一点:
刚开始拿结构里的东西计算了一个值,然后判断输入是否等于这个值,如果等于就成功
这个VersionInformation结构体变量是在上面那个call401390里填充的:
注册机
注册码生成算法:
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <Windows.h>
#pragma warning(disable: 4996)
int main()
{
OSVERSIONINFOA VersionInformation={0};
VersionInformation.dwOSVersionInfoSize = 148;
GetVersionExA(&VersionInformation);
int key = VersionInformation.dwBuildNumber
+ VersionInformation.dwBuildNumber
+ VersionInformation.dwMajorVersion * VersionInformation.dwMinorVersion
- VersionInformation.dwMinorVersion
+ 3293 * VersionInformation.dwBuildNumber;
printf("%d",key);
system("pause");
}
效果: