C# 可以读取.exe文件吗?

C# 可以读取.exe文件吗?,c#,java,antivirus,C#,Java,Antivirus,我想做一个识别恶意软件的项目。 那么,是否可以读取.exe文件来查找恶意部件?如果是,如何读取。您必须将.EXE文件作为二进制文件读取,而不必执行它来读取内部文件 是否可以在不执行的情况下读取.exe 当然可以 可以逐行读取.exe文件吗 理论上,你可以。但我怀疑那是你想要的 你应该以字节块的形式读取二进制文件(即.exe)。直到一个exe运行时它只是一个二进制文件,所以你可以读取它。然而,二进制文件没有行,它只是一个常量流 大多数病毒检查器使用某种形式的模式识别,在文件中查找字节模式,可能是指

我想做一个识别恶意软件的项目。
那么,是否可以读取.exe文件来查找恶意部件?如果是,如何读取。

您必须将.EXE文件作为二进制文件读取,而不必执行它来读取内部文件

是否可以在不执行的情况下读取.exe

当然可以

可以逐行读取.exe文件吗

理论上,你可以。但我怀疑那是你想要的


你应该以字节块的形式读取二进制文件(即.exe)。

直到一个exe运行时它只是一个二进制文件,所以你可以读取它。然而,二进制文件没有行,它只是一个常量流


大多数病毒检查器使用某种形式的模式识别,在文件中查找字节模式,可能是指令或消息。如果您发现足够多的病毒与已知病毒相匹配,则将该文件标记为有问题

读取可执行文件不会执行它。此外,可执行文件是二进制数据流,因此可能不包含换行符。因此,逐行阅读是没有意义的。你需要一个字节一个字节地读。

我不太清楚你所说的逐行读是什么意思,你的意思是读实际的代码吗。如果是这样,那就不完全是这样了。但是,您可以使用
hextump
gdb

hextump
将允许您查看文件的实际二进制文件。您可以使用多种格式。给定hextump,您可以读取二进制文件并设计一个程序来计算内部工作并确定问题

gdb
允许您以更可读的格式查看程序的框架。然而,为了使gdb工作,程序必须使用调试标志进行编译

然而,还有另一个程序叫做
strace
。这将显示程序对内核的所有调用。但是,这将执行程序。也许在沙箱里跑步会有帮助

我提到的工具已经是编译过的程序,可以让你做你想要做的事情。但是你可以一个字节一个字节地读取文件,然后确定你的程序认为什么是恶意的


希望这对您有所帮助。

不,您不能逐行读取exe文件,因为它是一个二进制文件,其中没有行。

“可以逐行读取.exe文件吗”exe不是文本,因此毫无意义。1)2)读取!=执行,所以是的(但是程序中的一行是什么?)3)你将很难制作一个程序来识别恶意软件。这并不容易。这是一个数百万美元的生意。另一方面,有一些很棒的网站会从你那里获取一个文件,对主要的防病毒程序运行它,并询问他们是否认为这是一个病毒——如果你不需要检查很多文件,这是一个很好的解决方案。维基百科是你的朋友:(还有指向PE规范的指针)谢谢你的回答。我的概念不清楚.exe文件是如何工作的。我的意思是如何在.exe文件中查找恶意部分。答案很有帮助。非常感谢。谢谢。我尝试了hexdump。它会很有帮助,因为它允许查看文本文件或任何其他格式的文件的实际二进制文件。