0

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

4

6 回答 6

5

直到一个 exe 运行它只是一个二进制文件,所以是的,你可以阅读它。但是二进制文件没有行,它只是一个恒定的流。

大多数病毒检查程序使用某种形式的模式识别,他们正在寻找文件中的字节模式,这可能是指令或消息。如果您找到足够多的这些来匹配已知病毒,那么您将该文件标记为有问题。

于 2013-05-03T09:15:25.097 回答
3

您必须将 .EXE 文件作为二进制文件读取,而无需执行它即可读取内部文件

于 2013-05-03T09:12:19.863 回答
1

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

是的,当然。

是否可以逐行读取.exe文件

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

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

于 2013-05-03T09:14:53.510 回答
0

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

于 2013-05-03T09:15:28.910 回答
0

我不确定你所说的逐行阅读是什么意思,你的意思是阅读实际代码。如果是这样,那么不完全是。但是,您可以使用诸如hexdumpgdb

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

gdb允许您以更易读的格式查看程序的框架。但是,要使 gdb 正常工作,必须使用调试标志编译程序。

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

我提到的工具已经是编译好的程序,可以让你做你想做的事情。但是您可以逐字节读取文件并确定您的程序认为什么是恶意的。

希望这可以帮助

于 2013-05-03T09:15:57.117 回答
0

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

于 2013-05-03T09:31:00.280 回答