虚拟KeyGenMe无壳无花逻辑简单适合新手学习
这回弄了个简单适合新手学习的样例就不放了(逻辑很简单看一眼样例就啥都知道了
要求:
写出注册机通过用户名计算出密码 __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到一段汇编代码然后往下一般的反汇编器就反汇编不出来了。我就不会了。
页:
[1]