我创建了一个使用人工神经网络识别恶意文件的项目。我将PE结构中的一些选定特征作为神经网络的输入,并且正确地对文件进行分类。但是参考这个答案:" https://security.stackexchange.com/questions/37921/windows-pe-file-and-malwares&#34 ;;它说代码可以注入PE,可选标题中的值可以改变!我想知道是否有任何方法可以知道PE结构是否已被修改? 关于将代码注入PE文件的另一个链接:http://www.codeproject.com/Articles/12532/Inject-your-code-to-a-Portable-Executable-file
答案 0 :(得分:0)
如果您没有orignal二进制文件但是每个编译器或打包器都有签名(您可以使用rdg查看例如http://www.rdgsoft.net/),您无法知道pe是否被修改了您可以使用它来查看如果此签名不在此处,但即使二进制文件被修改,签名也可能在此处。
否则,您可以查看二进制文件是否具有奇怪的部分,或者结构中的某些值是否不合逻辑
你也可以看到每个部分是否有正确的保护.text - >执行等。
如果您想了解更多信息,请查看此链接
https://github.com/katjahahn/PortEx/tree/master/masterthesis
您可以阅读恶意软件的差异策略(附加到orignal binary或prependeing or divide in multi part)以及如何检测它。
例如
您应在导入表LoadLibrary
,GetProcAddress
等
以及他在实践中测试这些方法的工具: