问题标签 [portable-executable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
131 浏览

adobe - 为什么有些可执行文件和库引用 PDB 文件而有些不引用

在开发自己的 PE 分析工具的过程中,我注意到一些 exe 和库(例如 Adob​​e Reader)引用了一个 Debug PDB 文件。有些根本不引用任何 PDB 文件。有些带有显示构建机器上目录的完整路径,有些带有相对路径,有些仅带有 PDB 文件名。什么是最好的解决方案?根本没有PDB,只引用相对路径,引用完整路径?

0 投票
5 回答
9607 浏览

portable-executable - windows中.lib的格式是什么?

AFAIK,.dllPE格式的,怎么样.lib

0 投票
2 回答
630 浏览

visual-studio - 我的 main() 函数执行之前的 Windows VC++ 2010 代码

我一直在使用 C++ 编译器(Win32 是目标)在 Visual Studio 2010 中编译简单的 Hello World 应用程序,以查看使用 Immunity 调试器运行产品时在显微镜下的样子。然而,我注意到有一些代码(实际上是相当多的代码)在我的 main 函数到达之前运行。很多这些东西看起来与安全相关,或者可能让系统准备好管理流程或其他什么,但那里只有大量的东西。此外,PE 文件头的 EntryPoint 部分似乎指向我的 .text 段的内部,而我的 main() 函数似乎位于 .text 段的最开头。我的问题是这样的:是否有一些关于这个前奏的好文档被拍到我的代码前面和/或 main() 函数通常由 VC++ 编译器放置在 .text 段的开头?感谢您的任何见解!

0 投票
2 回答
2657 浏览

portable-executable - 如何在 C/C++ 中构建没有导入表的可执行文件?

我在这里找到了一个修复导入表的工具,但是在 C/C++ 中首先构建的没有导入表的 PE 可执行文件如何?

0 投票
1 回答
85 浏览

embedded-resource - 有没有办法找到 PE 可执行文件使用的所有资源的位置?

在我的例子中,我试图找到保存配置参数的容器,它可能是注册表、配置文件(.ini 或专有文件)或其他任何东西。

我尝试了一些资源抓取工具,可以从可执行文件中提取图像/字符串等资源,但是在逐个浏览它们之后,我发现configuration file不存在。

有人对此有建议吗?

0 投票
1 回答
2130 浏览

c++ - 如何从C中的pe(exe)文件中删除一些数据

在第一个 exe 中,我定义了带有一些特殊字节的 char 数组作为标签,我将它从另一个 exe 映射到内存,找到所需的标签并将新数据放入其中,但是这个数据可能比定义的数组更短,所以我想剪切这个数组到需要的大小!我该怎么做?

0 投票
1 回答
1009 浏览

reverse-engineering - 可执行部分标志

可移植可执行文件的部分用不同的标志标记。有人可以解释 IMAGE_SCN_MEM_EXECUTE (该部分可以作为代码执行)和 IMAGE_SCN_CNT_CODE (该部分包含可执行代码)之间的区别吗?谢谢。

0 投票
1 回答
1870 浏览

delphi - 将 pe 文件从内存转储到磁盘

我想在磁盘上转储一个进程映像,然后执行它

  • 我列出了流程模块
  • 我使用 readprocessmemory 读取 exe 的内存范围

但是当我尝试执行它时失败了。我该如何解决这个问题?

谢谢

0 投票
3 回答
979 浏览

security - 应用程序的沙盒虚拟机(概念)

我想编写一个沙盒虚拟机来执行编译程序。我的目标是将该程序与操作系统的其余部分隔离开来,并控制其执行,使其不会对主机造成任何有害的影响。

我假设:

  • 执行的程序被编译为可移植的可执行格式,它是机器码,而不是任何类型的字节码或用于 CLR,
  • 执行的程序不允许与打印机、扫描仪等外围设备进行通信,并且不使用任何 GUI,
  • 执行程序的主要任务是处理存储在本地文件中的一些数据(例如计算),并将其结果放入另一个本地文件中,
  • 执行的程序不应该直接与操作系统通信,每个请求都应该由虚拟机处理,任何可能导致操作系统损坏的请求都应该被阻止。

我对沙盒虚拟机的架构和操作的概念:

  • 应用程序由几个模拟对象组成:处理器、内存、对文件的 i/o 操作、
  • 有一个模块可以读取编译文件并将可执行代码加载到虚拟内存中,
  • 然后虚拟处理器从第一个字节开始处理,读取操作码,参数,如果需要,从内存中加载它们,执行命令并将结果放在适当的位置,如果需要设置虚拟标志,然后读取下一个命令,直到程序执行到最后。

你怎么看:这是一个好概念吗?你会改变什么来改善它?

0 投票
2 回答
211 浏览

winapi - 新 .exe 中的 WinAPI 函数

我最近一直在研究创建一种新的母语。我了解 PE 格式的(非常)基础知识,并且我已经从网上获取了一个具有相当友好接口的汇编程序,我已经成功地使用它来实现一些简单的功能。但是我在使用库中的函数时遇到了问题。我之前从动态编译的函数中调用库函数的唯一方法是手动传入函数指针——如果我创建 PE 文件并在它们自己的进程中执行它们,这是我无法做到的。现在,我不打算使用 CRT,但我需要访问 Win API 来实现我自己的标准库。如何生成对 WinAPI 函数的引用,以便 PE 加载程序对其进行修补?