zbby 发表于 2024-9-7 01:54

虚拟KeyGenMe无壳无花逻辑简单适合新手学习

这回弄了个简单适合新手学习的
样例就不放了(逻辑很简单看一眼样例就啥都知道了
要求:
写出注册机通过用户名计算出密码

qq465881818 发表于 2024-9-9 18:35

__int64 sub_140001420() {
    char v1; // 定义一个大小为32的字符数组v1
    char v2; // 定义一个大小为44的字符数组v2
    unsigned int v3; // 定义一个无符号整数v3

    sub_140001590(); // 调用一个名为sub_140001590的函数

    v3 = 0; // 将v3初始化为0

    memset(v2, 0, 0x20ui64); // 将v2的前32个字节设置为0
    memset(v1, 0, sizeof(v1)); // 将v1的所有字节设置为0

    sub_140002070("user: "); // 调用一个名为sub_140002070的函数,输出"user: "
    sub_1400020C0("%s"); // 调用一个名为sub_1400020C0的函数,输出一个字符串(可能是v1或v2的内容)

    sub_140002070("pass: "); // 调用一个名为sub_140002070的函数,输出"pass: "
    sub_1400020C0("%s"); // 调用一个名为sub_1400020C0的函数,输出一个字符串(可能是v1或v2的内容)

    if ((unsigned int)sub_1400013A0(v2, v1)) // 调用一个名为sub_1400013A0的函数,传入v2和v1作为参数,如果返回值非零
      sub_140002070("succ"); // 调用一个名为sub_140002070的函数,输出"succ"
    else
      sub_140002070("fail"); // 调用一个名为sub_140002070的函数,输出"fail"

    return v3; // 返回v3的值(在这个例子中,它始终是0)
}

   sub_140002070=printf()

sub_1400020C0=scanf()
sub_1400013A0(v2, v1)跳转到sub_140025C7B 这是个验证函数的位置。jmp到一段汇编代码然后往下一般的反汇编器就反汇编不出来了。我就不会了。

_fresh 发表于 2024-9-7 12:06

algy5 发表于 2024-9-7 15:09

页: [1]
查看完整版本: 虚拟KeyGenMe无壳无花逻辑简单适合新手学习