portable-executable相关内容

执行缓冲区中的文件

我在缓冲区中有一个可执行文件,我希望在不将其写入文件的情况下执行它。这个是可能的吗?我的代码示例: with open("somefile.exe", "rb") as exe_file: executable_string = exe_file.read() run(executable_string) def run(executable_string): ..
发布时间:2022-07-17 12:53:37 Python

如何手动创建可执行的 .exe PE 文件?

在解释词法分析器和解析器之后,所有关于如何创建编译器的文本都停止了.他们没有解释如何创建机器代码.我想了解端到端的流程. 目前我的理解是,Windows exe 文件格式被称为 Portable Executable.我阅读了它的标题,但尚未找到可以轻松解释这一点的资源. 我的下一个问题是,我没有看到任何解释机器代码如何存储在文件中的资源.是不是像 .text 段中一个接一个的存储 3 ..

为什么我们在进行代码签名时要设置时间戳?

如果我为签名设置时间戳,会发生什么? 如果我不设置怎么办? 这是必要的吗?为什么推荐? 解决方案 时间戳用于指定进行数字签名的时间.这是正确验证签名所必需的. 如果存在签名时间戳,验证(验证)签名的应用程序将检查签名验证所涉及的证书在签名时是否有效.如果签名没有时间戳,则在签名验证时检查证书有效性,这并不总是可以接受的. 示例:证书有效期:2008 年 1 月 1 日证书有 ..

如何在 C 中读取导入目录表

我正在尝试用 C++ 构建一个 PE 查看器,如果我尝试在导入目录表中输出库的名称,它似乎会崩溃.我似乎没有得到程序使用的 DLL 的正确指针. HANDLE handle = CreateFile("messagebox.exe",GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);DWORD 大小 = GetFileSize(han ..
发布时间:2021-12-25 19:58:26 C/C++开发

导入地址表中的 Thunk 表?

与 EXE 文件中用于导入外部 DLL 中使用的函数的导入地址表相关的 thunk 表是什么? 这个 thunk 表只是一个包含其他函数的 'Thunks' 的表吗? 解决方案 Thunks 是导入表的一部分 (IMAGE_DIRECTORY_ENTRY_IMPORT) 和延迟导入表 (IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT).它们被描述 http:// ..
发布时间:2021-12-25 16:25:03 其他开发

Windows 下的确定性构建

最终目标是比较在完全相同的环境中从完全相同的源构建的 2 个二进制文件,并能够判断它们确实在功能上是等效的. 为此的一个应用程序是将 QA 时间集中在发布之间实际更改的事情上,以及一般的更改监控. MSVC 与 PE 格式的结合自然使这很难做到. 到目前为止,我发现并消除了这些东西: PE 时间戳和校验和 数字签名目录条目 调试器部分时间戳 PDB 签名、年龄和文件路 ..
发布时间:2021-12-22 18:31:46 C/C++开发

加载 PE 标头

基本上,我想做的是找到 PE 文件的最后一部分.我已经很仔细地阅读了 PE 规范,但我无法发现我的代码哪里出错了. PIMAGE_DOS_HEADER pidh = (PIMAGE_DOS_HEADER)buffer;PIMAGE_NT_HEADERS pinh = (PIMAGE_NT_HEADERS)(pidh + pidh->e_lfanew);PIMAGE_FILE_HEADER pif ..
发布时间:2021-12-18 00:10:45 其他开发

什么是最小的 Windows (PE) 可执行文件?

作为编写编译器的前身,我试图了解 Windows(32 位)可移植可执行文件格式.我特别希望看到一个简单的可执行文件示例,它除了正确加载、运行和退出之外什么都不做. 我尝试编写和编译一个简单的 C 主函数,它除了生成的 .exe 大约 22KB 之外什么都不做,并且包含许多来自 KERNEL32.DLL 的导入(大概被 LIBC 用于设置环境、堆等).甚至 DOS 标题也可能更小(它当前打印 ..

64 位 Windows 上 PE 文件的最大大小是多少?

在我看来它总是 4GB,因为它使用相同大小的数据类型 (A DWORD)?SizeOfImage 的 DWORD 不是总是 32 位吗?还是我对这个限制有误解? 答案 4GB 确实似乎是所有便携式可执行文件(32 位和 64 位 PE+)的硬限制. 解决方案 根据 规范它是 32 位无符号值,用于 PE32+ 图像,就像 PE32 图像一样. 但是,在我对 Windows ..
发布时间:2021-11-25 05:32:00 C#

如何将 64 位和 32 位可执行文件绑定为一个?

好吧,所以我的想法是将 64 位和 32 位 Windows 可执行文件绑定到一个应用程序中,这样如果它不运行 64 位版本,它就会尝试 32 位版本. 我正在阅读有关 PE 的内容,并了解了一些关于 MS-DOS 实模式存根的知识,它说明了它如何调用应用程序(通常是错误消息).但是每次我尝试研究 MS-DOS 实模式存根时,它似乎只显示错误消息.所以我的想法是用我的 32 位应用程序覆盖 ..
发布时间:2021-11-24 23:40:34 C#

64 位 Windows 上 PE 文件的最大大小是多少?

在我看来它总是 4GB,因为它使用相同大小的数据类型 (A DWORD)?SizeOfImage 的 DWORD 不是总是 32 位吗?还是我对这个限制有误解? 答案 4GB 确实似乎是所有便携式可执行文件(32 位和 64 位 PE+)的硬限制. 解决方案 根据 规范它是 32 位无符号值,用于 PE32+ 图像,就像 PE32 图像一样. 但是,在我对 Windows ..
发布时间:2021-11-24 23:39:01 C#

这些 Windows 可执行元数据特征是否意味着我认为它们的作用?

我正在学习汇编作为恶意软件分析项目的一部分,并尝试使用一些 Node.js 库从 GitHub 抓取可执行文件并反汇编它们. 特别是我专注于 x86-64 PE. 但是一个反汇编器,比如我选择的那个 不一定要找到特定可执行格式的指令,例如在 PE 中. 除了首先需要知道我的指令应该从哪里开始,当我开始使用反汇编程序时,我意识到我还需要为程序设置一个特定的 RIP 值来启动.我不完 ..
发布时间:2021-09-29 19:48:10 其他开发

如何在部分上使用 fixups 属性?

“修正"在应用于某个部分时究竟有什么作用?在 fasm 示例中,我发现了以下部分声明,但我真的不确定 fixups 属性的作用,我在 fasm 文档中找不到太多相关信息. section '.reloc' fixups data 可读可丢弃如果 $=$$dd 0,8 ;如果没有修正,则生成虚拟条目万一 解决方案 这似乎是 FASM 如何生成 PECOFF DLL 的错误..reloc 部分仅 ..
发布时间:2021-09-29 19:46:09 其他开发

机器码如何存储在 EXE 文件中?

我的问题如下: 可移植可执行文件格式(在 Windows/Unix 上)与一般的 x86/x64 指令集有何关系? PE 格式是存储处理器支持的确切操作码集,还是操作系统转换为与 CPU 匹配的更通用的格式? EXE 文件如何指示所需的指令集扩展(如 3DNOW!或 SSE/MMX?) 操作码是否在所有平台(如 Windows、Mac 和 unix)中通用? 与 Intel i386 ..

有没有办法在运行时找到代码段(.data、.text 等)的地址?

我想编写一些代码,在运行时将在其自己的进程中打印每个代码段的地址和长度.是否有捷径可寻?我知道使用 void* main_address = main; 之类的代码找到 main 等函数的位置相对容易,但我想找到 .data 和 .text 之类的部分,我不知道当我编译时,我可以对它们做同样的事情.我正在 Windows 系统上编写此实验并针对 x86 架构进行编译.如果解决方案需要,我知道一些 ..
发布时间:2021-09-26 19:18:47 其他开发

Windows 10 无法识别可在 WINE 中运行的手工 PE 可执行文件

我已经为 x86-64 制作了(在汇编器中,没有链接器)一个 EXE,它在 Linux 下的 Wine 中运行得非常好.这是一个调用 MessageBoxA 和 ExitProcess 的基本 HelloWorld. Windows 10 无法识别它,并说“此程序无法在您的计算机上执行,请与您的供应商联系以获取适合您计算机的版本". 我使用 PE 格式阅读器(PE 工具和 CFF Ex ..
发布时间:2021-09-26 18:37:12 其他开发

PE 文件 - 缺少什么?

我正在尝试生成 PE 格式的可执行文件 - Windows 7,64 位,最初是用于测试目的的最小文件,仅用于 mov eax, 42回复 我有一个 dumpbin 似乎很满意并且包含所有字段的明显有效值,我可以找到的各种来源说实际使用过,但是当我尝试运行它时,Windows 说“不是有效的 Win32 应用程序".dumpbin 输出如下;谁能从中看出我错过了什么? 文件 a.exe 的转 ..
发布时间:2021-09-25 20:35:20 其他开发