selph
selph
发布于 2022-08-17 / 207 阅读
0
0

新160个CrackMe练习:046-keyme1

算法难度:⭐⭐

爆破难度:⭐

信息收集

运行情况:

真难得见到一次控制台程序:

image

查壳与脱壳:

还带壳,ESP定律走起

image

调试分析

这里拿了一堆结构里的东西在做计算,直接F5看吧,方便一点:

刚开始拿结构里的东西计算了一个值,然后判断输入是否等于这个值,如果等于就成功

image

这个VersionInformation结构体变量是在上面那个call401390里填充的:

image

注册机

注册码生成算法:

#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");
}


效果:

image


评论