我创建了一个使用人工神经网络识别恶意文件的项目。我给出了一些从PE结构中选择的特征作为神经网络的输入,它正确地对文件进行了分类。但是提到这个答案:“https://security.stackexchange.com/questions/37921/windows-pe-file-and-malwares”;它说代码可以注入到PE中,并且optional header中的值可以更改!我想知道是否有任何方法可以知道PE结构是否被修改?关于将代码注入PE文件的另一个链接:http://www.codeproject.com/Articles/12532/Inject-your-code-to-a-Portable-Executable-file
发布于 2017-11-23 22:25:26
如果你没有原始的二进制文件,但是每个编译器或打包器都有一个签名(你可以用rdg查看,例如http://www.rdgsoft.net/),你就不能知道pe是否被修改了。你可以用它来查看这个签名是否不在这里了,但是即使二进制文件被修改了,签名也有可能在这里。
否则,您可以查看二进制文件是否有奇怪的部分,或者结构中的某些值是否不符合逻辑
您还可以查看每个部分是否具有权限保护、.text、->、execute等。
如果你想了解更多关于它的信息,你可以查看这个链接
https://github.com/katjahahn/PortEx/tree/master/masterthesis
您可以阅读恶意软件的差异策略(附加到原始的二进制文件或前缀或分成多个部分)以及如何检测它。
例如

您应该在导入表LoadLibrary、GetProcAddress等中找到哪些函数。
以及他在实践中测试这些方法的工具:
https://stackoverflow.com/questions/23030154
复制相似问题