PE 标头要求

2023-12-21

PE 文件 (PE/COFF) 有哪些要求?应该设置哪些字段、哪些值,以使其能够在 Windows 上“运行”(即执行“ret”指令然后关闭,没有错误)。

我首先构建的库是链接器:现在,我遇到的问题是 PE 文件(PE/COFF)。我不知道 PE 文件在我的平台上实际执行之前“需要”什么。我的测试平台是Vista。我收到一条错误消息,内容为“这不是有效的 Win32 可执行文件。”当我通过双击执行它时,我得到一个“访问被拒绝”。当使用 CLI 执行它时cmd。我有两个部分,.text 和.data。

我已经实现了几个在线文档(即 MSDN 和其他一些第三方文档)提供的 PE 标头。如果我使用十六进制编辑器,它看起来几乎就像一个普通的 PE 文件。我不使用任何导入,也不使用 IAT,也不使用 PE 标头中的任何目录。

Edit: 我添加了一个导入表,仍然不是有效的 .exe 文件,我的 Windows 说。我尝试使用最小 PE 文件指南中也提到的值。没有运气。实际上,我似乎唯一无法弄清楚的是需要什么和不需要什么。一些指南告诉我一切都是必需的,而另一些指南则说贬值:而且可以为零。

我希望这是足够的信息。先感谢您。


当前PE头的原始数据(根据要求):

4D 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 00 50 45 00 00 4C 01 02 00
C8 7A 55 4B 00 00 00 00 00 00 00 00 E0 00 82 01 0B 01 0D 25 00 10 00 00
00 10 00 00 00 00 00 00 00 10 00 00 00 10 00 00 00 20 00 00 00 00 40 00
00 10 00 00 00 02 00 00 01 00 0B 00 00 00 00 00 03 00 0A 00 00 00 00 00
00 22 00 00 38 01 00 00 00 00 00 00 03 00 00 00 00 40 00 00 00 40 00 00
00 40 00 00 00 40 00 00 00 00 00 00 0E 00 00 00 00 00 00 00 00 00 00 00
00 20 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2E 74 65 78 74 00 00 00 00 00 00 00 00 10 00 00 00 02 00 00 00 02 00 00
00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 60 2E 69 64 61 74 61 00 00
00 00 00 00 00 20 00 00 00 02 00 00 00 04 00 00 00 00 00 00 00 00 00 00
00 00 00 00 40 00 00 C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3C 20 00 00 00 00 00 00
00 00 00 00 24 20 00 00 34 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 4B 45 52 4E 45 4C 33 32 2E 64 6C 6C 00 00 00 00 01 00 00 80
00 00 00 00 01 00 00 80 00 00 00 00

将粘贴复制到十六进制编辑器中是一件非常痛苦的事情,所以不幸的是我不能立即说任何太聪明的话。

PE文件中需要注意的事项: 确保您的 DOS 标头有效。 确保 IMAGE_OPTIONAL_HEADER 的格式正确,因为尽管它的名称如此,Windows 并不真正喜欢它不正确地完成。

有关 MS 格式之外的更多信息,请查找pe.txt http://webster.cs.ucr.edu/Page_TechDocs/pe.txt,我所知道的最好的 PE 格式自制指南之一。

如果您可以只发布字节,我可以尝试将其放入我自己的 PE 解析器中,看看是否可以提供更多帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PE 标头要求 的相关文章

  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • Java Swing:从 JOptionPane 获取文本值

    我想创建一个用于 POS 系统的新窗口 用户输入的是客户拥有的金额 并且窗口必须显示兑换金额 我是新来的JOptionPane功能 我一直在使用JAVAFX并且它是不同的 这是我的代码 public static void main Str
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 操作错误不会显示在 JSP 上

    我尝试在 Action 类中添加操作错误并将其打印在 JSP 页面上 当发生异常时 它将进入 catch 块并在控制台中打印 插入异常时出错 请联系管理员 在 catch 块中 我添加了它addActionError 我尝试在jsp页面中打
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • SetCurrentDirectoryW 中的错误 206

    在我之后之前不清楚的问题 https stackoverflow com questions 44389617 long path name in setcurrentdirectoryw 我以某种方式能够创建一个具有长路径名的目录 但是
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • JRE 系统库 [WebSphere v6.1 JRE](未绑定)

    将项目导入 Eclipse 后 我的构建路径中出现以下错误 JRE System Library WebSphere v6 1 JRE unbound 谁知道怎么修它 右键单击项目 特性 gt Java 构建路径 gt 图书馆 gt JRE
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 玩!框架:运行“h2-browser”可以运行,但网页不可用

    当我运行命令时activator h2 browser它会使用以下 url 打开浏览器 192 168 1 17 8082 但我得到 使用 Chrome 此网页无法使用 奇怪的是它以前确实有效 从那时起我唯一改变的是JAVA OPTS以启用
  • 声明的包“”与预期的包不匹配

    我可以编译并运行我的代码 但 VSCode 中始终显示错误 早些时候有一个弹出窗口 我不记得是什么了 我点击了 全局应用 从那以后一直是这样 Output is there but so is the error The declared
  • 编译器抱怨“缺少返回语句”,即使不可能达到缺少返回语句的条件

    在下面的方法中 编译器抱怨缺少退货声明即使该方法只有一条路径 并且它包含一个return陈述 抑制错误需要另一个return陈述 public int foo if true return 5 鉴于Java编译器可以识别无限循环 https

随机推荐

  • 交互式保存文件?

    Using tk choose files or file choose我能够交互式地选择一个文件 是否有一个类似的函数 我可以允许用户交互地决定在哪里保存 write table 的输出 在 Windows 7 上并通过 RGUI 工作
  • 将 MediaElement 绑定到 WPF 中的滑块位置

    尝试将滑块的最大值绑定到媒体元素的持续时间并将滑块的当前值绑定到媒体元素的位置 但由于某些原因它没有 我希望滑块在视频播放时移动拇指
  • ReferenceError:使用 Performance.now() 时未定义性能

    我收到错误ReferenceError performance is not defined当尝试使用时性能 now https developer mozilla org en US docs Web API Performance no
  • Kafka AVRO - 从长时间到日期时间的转换

    当我想要发送包含 long 类型字段的 AVRO 消息时 出现以下错误 Caused by org apache kafka common errors SerializationException Error deserializing
  • 仅特定路由或控制器需要 SSL 客户端证书

    我有一个使用 Kestrel 作为服务器的 ASP NET MVC Core 项目 它既提供用户内容 asp net mvc 又托管与代理 软件 通信的 Web API 控制器 我已启用 HTTPS 和客户端证书支持 问题是我想要调用 We
  • 将 excel 的动态文件路径传递给“OPENROWSET”

    我想将 excel 的动态 URL 传递给 OPENROWSET 注意 我将 Excel 文件的返回结果传递给光标 我想将文件路径传递给 excelpath 我尝试了很多方法 但它给出了语法错误 ALTER procedure dbo im
  • Android.mk - 包含 OpenCV 目录,用于使用 NDK 进行本机 C++ 编译

    我正在使用 NDK 将 C OpenCV 代码导入到 Android 应用程序中 首先 我必须说 我没有学过编程 我只是一个业余开发人员 所以有很多事情我无法管理 特别是编码之外的事情 我使用 QtCreator 来编写 C OpenCV
  • Subversion 与 CVS [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 用于从视频源(网络摄像头)发出新帧信号的 Gstreamer 消息

    我正在尝试使用 gstreamer 将网络摄像头的流保存为一系列图像 到目前为止我已经写了这段代码 usr bin python import sys os import pygtk gtk gobject import pygst pyg
  • Symfony2 - 如何在 EventListeners 中使用数据转换器

    我需要使用事件侦听器 因为我需要在表单中显示不同的内容 无论它是新实体还是已存在的实体 我可以做到这一点 我需要一个数据转换器 将实体显示为文本 这也是我可以做的 gt 但是 我无法同时执行 2 个操作 数据转换器 事件监听器 我收到错误
  • 在android中用canvas绘制四分之一规? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我怎样才能创建与此相同的仪表 是否存在这种仪表类型的库或 Maven 我使用画布作为圆规 但我无法创建
  • 为什么我们在编译时需要共享库

    为什么我们需要在可执行文件的编译期间存在共享库 我的推理是 由于共享库未包含在我的可执行文件中并在运行时加载 因此在编译时不应需要它 或者我错过了什么 include
  • 从 Docker Hub 中删除镜像标签?

    我无法找到资源来了解如何管理 Docker Hub 映像 我有一张标记为 V0 0 1 的图像 并构建了一个标记为 V0 0 2 的新图像 现在我想删除 V0 0 1 映像 因为新版本的构建方式不同 并且我不希望用户拉取旧映像 您可以轻松地
  • Delphi - 有关记录中方法的 RTTI 信息

    如何提取有关Delphi记录中方法的RTTI信息 使用新的 Rtti 单元可以吗 抱歉 记录中的方法没有 RTTI
  • 如何刷新 Netbeans 工作区?

    在 Eclipse 中 有一个称为刷新工作区或 F5 的工具可以刷新文件 以确保拾取在 Eclipse 外部更改的任何文件 我如何在 Netbeans 中做到这一点 我使用 6 9 1 进行 PHP Java 开发 我没有看到任何刷新 F5
  • 使用新值刷新 dat.gui

    I would like to refresh the dat gui menu with new values I have loaded a model and display in folder the name of the obj
  • 检查出口是否不存在,在反应路由器 6 中显示其他内容

    我想在反应路由器 6 中 当没有插座时显示一个占位符 有什么办法吗 lt gt
  • 无法使用 Bot Framework SDK v4 在 MS Teams 中渲染自适应卡

    我正在尝试在 MS Teams 中渲染自适应卡并收到消息 不支持指定的卡版本 我正在使用 Bot Framework SDK v4 node js 以下是代码片段 下面是welcome json中的自适应卡 contentType appl
  • Play Framework 2.X 和阻塞数据库调用

    我有点困惑 来自文档 http www playframework com documentation 2 1 0 ThreadPools 播放默认线程池 这是默认线程池 其中 Play Framework 中的所有应用程序代码都会被执行
  • PE 标头要求

    PE 文件 PE COFF 有哪些要求 应该设置哪些字段 哪些值 以使其能够在 Windows 上 运行 即执行 ret 指令然后关闭 没有错误 我首先构建的库是链接器 现在 我遇到的问题是 PE 文件 PE COFF 我不知道 PE 文件