gpt4 book ai didi

c - 如何在c中读取.exe

转载 作者:行者123 更新时间:2023-11-30 15:38:24 24 4
gpt4 key购买 nike

我正在进行一个制作小型压缩程序的小项目。为此,我想读取一个文件(例如 .exe),然后逐个字符地解析它,并使用一些简单的字典算法对其进行加密。

为了阅读文件,我只是想使用我发现的简单代码:

 char *readFile(char *fileName)
{
FILE *file;
char *code = malloc(10000* sizeof(char));
file = fopen(fileName, "rb");
do
{
*code++ = (char)fgetc(file);

} while(*code != EOF);

return code;

}

我的问题是似乎根本无法读取 .exe 或任何文件。当创建“代码”的 printf() 时,没有写入任何内容。

我能做什么?

最佳答案

@BLUEPIXY 很好地识别了代码错误。参见下文。此外,您还返回字符串的结尾,并且可能希望返回开头。

do {
// *code++ = (char)fgetc(file);
*code = (char)fgetc(file);
// } while(*code != EOF);
} while(*code++ != EOF);

让您开始阅读任何文件的东西。

#include <stdio.h>
#include <ctype.h>

void readFile(const char *fileName) {
FILE *file;
file = fopen(fileName, "rb");
if (file != NULL) {
int ch;
while ((ch = fgetc(file)) != EOF) {
if (isprint(ch)) {
printf("%c", ch);
}
else {
printf("'%02X'", ch);
if (ch == '\n') {
fputs("\n", stdout);
}
}
fclose(file);
}
}

当逐个字符读取二进制文件时,代码通常会接收 0 到 255 和 EOF、257 个不同的值。

关于c - 如何在c中读取.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21766523/

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