作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要验证给定的二进制文件是否是 PE 文件(例如,如果我将 JS/HTML 或 .class 文件重命名为 .exe 或 .dll),它不会仍然是 PE 文件。解析 PE 文件会给我关于这个问题的信息;什么字段表示给定的二进制文件是否是有效的 PE 文件?
我已经检查了 FileHeader 的“e_magic”字段,它总是在错误的 PE 文件(即 js/html/java/class 文件重命名为 .dll/Exe)的情况下被填充,并且没有说明任何关于PE的有效性。
最佳答案
如果存在这样的字段,则很容易创建无效的 exe 并故意将其标记为有效。
您通过读取 PE header 并检查所有字段的值(值应属于有效范围,不应指向文件外部等)来验证文件是否为 PE 文件。
关于.net - PE Headers 的哪个字段表明 PE 文件是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3245914/
我是一名优秀的程序员,十分优秀!