Windows – 如何手动创建可执行文件.exe文件?

前端之家收集整理的这篇文章主要介绍了Windows – 如何手动创建可执行文件.exe文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
解释词法分析器和解析器之后,关于如何创建编译器的所有文本都会停止。他们不解释如何创建机器代码。我想了解端到端的过程。

目前我所理解的是,Windows exe文件格式称为便携式可执行文件。我读了关于它的标题,并没有找到一个资源,这很容易解释。

我的下一个问题是,我没有看到任何资源解释机器代码如何存储在文件中。它是否像32位固定长度指令在.text节中一个接一个存储?

是否有任何地方至少解释如何创建一个不执行任何操作的exe文件(它有一个No Op指令)。然后我的下一步将链接到dll文件打印到控制台。

好问题!我对这个具体问题没有太多的专门知识,但这是我将如何开始:

> PE或ELF不会创建纯机器代码。它还包含一些标题信息等。阅读更多:Writing custom data to executable files in Windows and Linux
>我假设你正在寻找ELF / PE文件如何保存机器代码,你可以从这个问题得到(使用objdump):How do you extract only contents of an ELF section
>现在,如果您想知道如何生成内容部分,即生成机器代码,那么这就是compiler’s code generation的任务。
>尝试一些资源编辑器,如ResourceEditor,了解exe或简单的ildasm

PS:这些大部分都是Unix的解决方案,但我相信PE应该做的事情基本相似。

我认为最好的方法是首先尝试分析现有的PE / ELF是如何工作的,基本上是逆向工程。而要做到这一点,Unix机器将是一个很好的起点。然后做你的魔法:)

不一样,但类似的问题here

更新:

我从一个示例c代码生成了一个对象转储。现在,我认为这是你正在瞄准的?你需要知道你生成这个文件(a.out)吗?

https://gist.github.com/1329947

看看这个形象,一个c代码的一生。

Source现在,为了清楚,你正在寻求实现最后一步,即将目标代码转换为可执行代码

猜你在找的Windows相关文章