|
|
1
40
如果已安装Visual Studio,则可以使用
Dumpbin会将DLL报告为
Get PEHeader会将DLL报告为
|
|
|
2
29
(来自另一个Q,自删除后) 机器类型:这是一段快速的代码,我基于一些获取链接器时间戳的代码。这是在同一个报头中,它似乎可以工作-编译时返回I386-任何cpu-,使用它作为目标平台编译时返回x64。 正如另一个回复所指出的,探索PE标题(K.Stanton,MSDN)博客条目向我显示了偏移量。
|
|
|
3
11
您需要GetBinaryType win32函数。这将返回PE格式可执行文件的相关部分。 通常,您会在BinaryType字段中获得SCS\u 32位\u二进制或SCS\u 64位\u二进制, 另外,您可以检查PE格式本身,以查看编译可执行文件的体系结构。 IMAGE_FILE_HEADER.Machine字段将为IA64二进制文件设置“IMAGE_FILE_Machine_IA64”,为32位文件设置IMAGE_FILE_Machine_I386,为64位文件设置IMAGE_FILE_Machine_AMD64(即x86_64)。 增编: This 我可以再帮你一点忙。将二进制文件作为文件读取:检查前2个字节,如“MZ”,然后跳过接下来的58个字节,并将60个字节处的魔法32位值读取到图像中(对于PE可执行文件,这等于0x00004550)。以下字节为 this header ,其前2个字节告诉您二进制文件是为哪台机器设计的(0x8664=x86_64,0x0200=IA64,0x014c=i386)。 (执行摘要:读取文件的字节65和66以获取图像类型) |
|
|
4
8
然后,目标机器应该在机器中。
|
|
|
5
3
据此, post ,您可以通过使用打开DLL或EXE来检查它是32还是64 在开头查找“PE”,如果下一个字母是“L”,则平台为32位,如果字母是“D”,则平台为64位。 我在我的DLL上试用过,它似乎是准确的。 |
|
|
6
2
|
|
|
7
1
我可以提供一个 link to some C# code 用于访问IMAGE_FILE_头,我认为可以(轻松地)编译成PowerShell cmdlet。我相当肯定您不能直接在PowerShell脚本中使用该方法,因为它缺少指针和PInvoke功能。 但是,您现在应该能够使用您对PE头格式的丰富知识;-)直接转到正确的字节,然后找出它。这 将 在PowerShell脚本中工作,您应该能够转换 this C# code from Tasos' blog 编写脚本。我不会在这里重复代码,因为它不是我的。 |
|
|
8
1
|
|
|
9
0
Unix操作系统有一个名为“file”的实用程序,用于标识文件。识别规则保存在一个名为“magic”的描述文件中。您可以尝试使用该文件,看看它是否能够正确识别您的文件,并从魔法文件中获取适当的规则。 |
|
|
10
0
这是我自己的实现,它有多个检查,并且总是返回一个结果。
如何使用:
pe.go . 之所以这样做,是因为对于“go”的每个二进制ditdistribution,程序集中必须有正确的标志,才能让它通过操作系统“can you run here?”检查。由于“go”是跨平台的(所有平台),因此它是获取此信息的良好基础。这些信息可能还有其他来源,但它们似乎嵌套在齐膝深的谷歌ca中,需要谷歌fu中的第10条黑带才能找到。 |
|
|
11
0
这里是C语言的一个实现。
|
|
|
12
0
|
|
|
velenos14 · zgemv与dgemv/sgemv的算术强度? 2 年前 |
|
|
MagicRacoon · TSO和存储转发保证 2 年前 |
|
|
ugo_capeto · gcc使用“lea”而不是“add”` 2 年前 |
|
|
platelet · Skylake有环流探测器吗? 2 年前 |
|
|
vengy · 显示如何发现zenbleach的组装说明 3 年前 |