我在 Linux 系统上有一堆名称混乱的 Windows 可执行文件。检查这些文件并了解它们是什么的最便捷方法是什么?
目前我唯一拥有的就是文件名。我认为至少我们应该能够提取一些程序元数据、标题、字符串等。EXE 分析器会很有帮助。
将它们复制到 Windows 系统等解决方案是不可接受的。理想情况下,有一些方法不需要安装另一个系统,即使在虚拟机或 wine 上也是如此。
答案1
你可以尝试ExifTool
尽管它的名字如此,但它处理的不仅仅是图像文件。
它libimage-exiftool-perl
在 Debian/Ubuntu 和perl-Image-ExifTool
RHEL/CentOS/Fedora 上打包。
示例输出:
ExifTool Version Number : 10.10
File Name : explorer.exe
Directory : .
File Size : 4.5 MB
File Modification Date/Time : 2016:12:21 17:37:33-08:00
File Access Date/Time : 2016:12:21 17:37:33-08:00
File Inode Change Date/Time : 2016:12:21 17:37:52-08:00
File Permissions : rwx------
File Type : Win64 EXE
File Type Extension : exe
MIME Type : application/octet-stream
Machine Type : AMD AMD64
Time Stamp : 2016:11:11 01:08:32-08:00
PE Type : PE32+
Linker Version : 14.0
Code Size : 1736704
Initialized Data Size : 2902528
Uninitialized Data Size : 512
Entry Point : 0x9edc0
OS Version : 10.0
Image Version : 10.0
Subsystem Version : 10.0
Subsystem : Windows GUI
File Version Number : 10.0.14393.479
Product Version Number : 10.0.14393.479
File Flags Mask : 0x003f
File Flags : (none)
File OS : Windows NT 32-bit
Object File Type : Executable application
File Subtype : 0
Language Code : English (U.S.)
Character Set : Unicode
Company Name : Microsoft Corporation
File Description : Windows Explorer
File Version : 10.0.14393.479 (rs1_release.161110-2025)
Internal Name : explorer
Legal Copyright : © Microsoft Corporation. All rights reserved.
Original File Name : EXPLORER.EXE
Product Name : Microsoft® Windows® Operating System
Product Version : 10.0.14393.479
Warning : Possibly corrupt Version resource
答案2
1) 根据名称的混乱程度,可能可以将其恢复为乱码,但您应该给出一些例子来说明它们是什么样子的。
2)objdump -x
等可以转储PE 格式标题、导入、导出。
3)strings
可以在各种文件中查找(8 位)ASCII 字符串。
4)hexdump -C
将向您显示十六进制转储和 ASCII 解释。
5)file
如果它不是可执行文件,将会告诉您文件类型,包括许多 Windows 类型。
6)biev
还可以分析Windows EXE格式。