【发布时间】:2020-11-05 21:29:27
【问题描述】:
我编写了以下程序来向用户打印一条消息并从中获取密码。然后我想用我的首选密码检查并验证输入密码。最后,我想向用户显示一条消息。但是,我的程序不起作用。它会向用户打印垃圾字符,或者当我给它输入时,它会显示错误消息。我认为我错误地定义了变量,但是,我不知道使用这些 API 的最佳方式是什么。
#include <Windows.h>
#include <stdio.h>
void PasswordCheck()
{
char message_console[MAX_PATH];
char key_accepted[MAX_PATH];
char bad_key[MAX_PATH];
char password_store[MAX_PATH];
DWORD chars_read;
strcpy(message_console, "Enter password for this malware: ");
WriteConsoleA(GetStdHandle(STD_OUTPUT_HANDLE), message_console, sizeof(message_console), NULL, NULL);
ReadConsoleA(GetStdHandle(STD_INPUT_HANDLE), password_store, MAX_PATH, &chars_read, NULL);
if (!strcmp(password_store, "password"))
{
strcpy(key_accepted, "Key Accepted");
WriteConsoleA(GetStdHandle(STD_OUTPUT_HANDLE), key_accepted, sizeof(key_accepted), NULL, NULL);
}
else
{
strcpy(bad_key, "Bad key");
WriteConsoleA(GetStdHandle(STD_OUTPUT_HANDLE), bad_key, sizeof(bad_key), NULL, NULL);
}
}
int main(int argc, char* argv[])
{
PasswordCheck();
return 0;
}
【问题讨论】: