标签: portable-executable

在PE的导入表中添加一个条目

我正在寻找一个命令行程序来向 PE 文件的导入表添加条目。我的目标是将一个新的导入函数从外部 DLL 添加到我的 EXE,然后使用 ollydbg 使用代码洞穴插入新代码。新代码将使用新导入的函数。

事实上我已经实现了我的目标,但是为了向导入表添加新条目,我使用了Stud_PE,它是一个 GUI 应用程序,我想自动化这部分过程。

我会考虑以编程方式解决方案,但我担心 PE 结构太复杂,无法在我的时间范围内学习和探索。此外,如果已经存在一个实现,那么不使用它将是一种耻辱。:-)

windows dll automation portable-executable

3
推荐指数
1
解决办法
7474
查看次数

CAB 文件如何成为 PE 文件?

OSR在其博客上发布了与 Microsoft 人员的问答环节。主题是与早期 Windows 版本相比,Windows 10 驱动程序签名要求的变化。

\n\n

微软项目经理 James Murray 在一份声明中表示(粗体部分):

\n\n
\n

Peter:新的驱动程序签名过程表明您必须构建一个 CAB 文件来上传进行签名,然后使用您的 EV 证书对该 CAB 文件进行签名。为什么是 CAB 文件(而不是 ZIP\n 存档等常见文件)?如何构建 CAB 文件?是否有特定的流程或工具可供使用?

\n\n

James: 选择CAB是因为CAB本身就是PE文件。这在一定程度上简化了签名过程,因为signtool.exe具有\xe2\x80\x9cnative\xe2\x80\x9d支持。如果\n我们选择了ZIP存档(注意,我们\xe2\x80\x99d仍然喜欢移动\n方向),我们将需要提供\n单独的签名机制。类似于 HLK studio,一个具有签名 ZIP 或 OPC 功能的小工具。

\n
\n\n

这让我很惊讶。我知道很多 PE/COFF 详细信息,但从来没有印象过 CAB 文件适合其中。它似乎也与包含 CAB 的自解压可执行文件无关。

\n\n

我必须在十六进制编辑器中打开一个 CAB 文件才能亲自查看它,但不知何故,我无法看出该声明在何种意义上是正确的。

\n\n

谁能提供有关 CAB 文件如何/为什么PE 文件的详细信息?

\n

cab code-signing portable-executable

3
推荐指数
1
解决办法
533
查看次数

.exe 和 .pe 文件的区别?

编译visual studio c#应用程序时会生成PE和EXE文件。那么PE和EXE文件的主要区别是什么?据我所知,PE文件包含

PE/COFF Headers,
CLR Headers,
CLR Data,
Meta Data,
IL code,
.data,.text...
Run Code Online (Sandbox Code Playgroud)

比 exe 包含什么? PE 与 EXE 有何不同?

c# exe compilation portable-executable visual-studio

3
推荐指数
1
解决办法
4095
查看次数

PE:节头的 SizeOfRawData 和 VirtualSize 字段之间的关系

我看到对于图像文件中的部分,该VirtualSize字段是加载到内存中时该部分的总大小,而该SizeOfRawData字段是该部分在磁盘上的初始化数据的大小。

在检查一个.idata部分时,该VirtualSize字段设置为 0x14,而该SizeOfRawData字段设置为 0x400。

为什么链接器 - 在这种情况下 MinGW ld- 使文件部分如此之大,而加载到内存中的部分只是它大小的一小部分?

另外,这个VirtualSize领域的目的是什么?为什么不总是加载整个部分,即加载SizeOfRawData字节?

我在官方 PE 文档中没有看到描述或它们的关系。

windows assembly portable-executable windows-10

3
推荐指数
1
解决办法
1802
查看次数

PE 标头中绑定导入和延迟导入之间的差异

任何人都可以解释一下 PE 标头中绑定导入和延迟导入之间的差异。我参考了几本书,但我无法清楚地理解它的概念。任何人都可以帮助我。

reverse-engineering portable-executable

3
推荐指数
1
解决办法
2785
查看次数

PE 中的“隔离图像”属性是什么?

如果我查看可移植可执行文件的内部结构,该IMAGE_OPTIONAL_HEADER部分内有一个IMAGE_DLLCHARACTERISTICS_NO_ISOLATION字段,正如微软在这里提到的那样,这意味着:“图像是隔离感知的,但不应该被隔离。”。但是,我不明白这里的含义或隐含的含义,也无法找到更多相关信息。此选项也作为 Visual Studio 选项存在,并且在创建 Win32 应用程序项目时默认启用 (VS 2015 C++)。在启用它之前,我想知道它对代码生成有何作用。

如果有人知道,请分享。提前致谢。

c++ windows portable-executable visual-studio

3
推荐指数
1
解决办法
414
查看次数

那么大部分二进制文件都是由reloc表组成的?

我只是用来objdump -x ...检查PE文件的各个部分.

大约有90,000行reloc条目:

reloc   92 offset  bc0 [524bc0] HIGHLOW
reloc   93 offset  bc4 [524bc4] HIGHLOW
    ....
Run Code Online (Sandbox Code Playgroud)

大多数PE文件的大部分空间是否都是由上面的reloc条目组成的?

那些条目是什么?

UPDATE

任何人都可以解释重定位条目如何像上面那样工作?

relocation portable-executable

2
推荐指数
1
解决办法
2025
查看次数

如何以编程方式判断Windows PE文件是控制台子系统还是Windows子系统?

基本上我需要一个程序,它将从控制台对应的窗口.exe中排序.

文件扫描程序:

SortExe(file exe) 
{
 if (IsPeWindows(exe)) 
    {
      AddToList1(exe); 
    }
 else if (IsPeConsole())
    {
    AddToList2(exe); 
    }
 }
Run Code Online (Sandbox Code Playgroud)

我如何实现IsPeWindows或IsPeConsole()?

我不特别介意什么语言解决方案,只要它是c,c ++,c#或visual basic之一.

windows console winapi exe portable-executable

2
推荐指数
1
解决办法
714
查看次数

为什么UPX不能用于.NET可执行文件?

如果.NET可执行文件是PE文件,为什么像UPX这样的所有打包程序"会破坏"它?

.net compression executable portable-executable

2
推荐指数
1
解决办法
2814
查看次数

为什么存储在PE文件中的值是反向的?

当我在hexeditor值中查看pe文件时,存储在其中的是反转,但为什么呢?
例如:
在pe文件头结构中,第2条记录被称为Number Of Section
,其值为0300,
但实际值为0003
,这意味着从pe文件中读取值,我们必须从右边逐字节读取它!

portable-executable

2
推荐指数
1
解决办法
72
查看次数