是否可以读取.exe文件?

时间:2013-05-03 09:09:39

标签: c# java antivirus

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

6 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

  

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

是的,当然。

  

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

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

等工具阅读已编译的代码

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

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

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

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

希望这有帮助

答案 5 :(得分:0)

不,你不能逐行读取exe文件,因为它是一个二进制文件,里面没有行。