crackme--Afkayas 1
这题需要输入用户名和序列号通关

由于知道这是个vb的程序,所以直接尝试用VB Decompiler打开,查看按钮点击的事件处理消息的反编译代码
很明显0x00402400地址的代码像是一个算法的计算过程,由于无法动态调试,所以配合x32dbg看一下var_1c和var_18这两个值是什么

先看第一个var_1c,此时的edi是我们输入的用户名的长度,对应上len(var_1c)那么var_1c就是我们输入的用户名

而0x00402436行代码中,edx上的值是我们输入的用户名的第一个字符的ascii码,对应的上Asc(var_18)

最后拼接上前缀AKA-结束战斗
注册机代码如下:
#include <stdio.h>
#include <string.h>
int main()
{
char szBuffer[30] = {0};
printf("请输入用户名:");
scanf("%s", szBuffer);
int result = szBuffer[0] + 97531 * strlen(szBuffer);
printf("AKA-%d", result);
return 0;
}

浙公网安备 33010602011771号