在 Windows 中查找二进制文件

在 Windows 中查找二进制文件

当可执行文件被重命名后,有没有办法在 Windows 中搜索它?假设 .exe 文件已重命名为 .txt 或 .jpeg 扩展名。

答案1

您可以使用Unixfile实用程序,它可以根据文件内容告诉您文件是什么。您需要Cygwin 环境或者 win32-port 包操作系统或者Unx工具类

工作原理如下file

# previously, e.exe was renamed to e.jpg
$ file e.jpg
e.jpg: MS-DOS executable PE  for MS Windows (console) Intel 80386 32-bit

显然,您必须给出file文件名(或文件名列表)作为参数。find如果您大致知道文件应该在哪里,您可以使用find和文件夹名称来执行此操作:

$ find <foldername> -type f -print0 | xargs -0 file

如果将其与结合起来grep,您可以去除不可执行的文件:

$ find e-0.02718 -type f -print0 | xargs -0 file | grep executable
e-0.02718/e.jpg:          MS-DOS executable PE  for MS Windows (console) Intel 80386 32-bit
e-0.02718/e.linux:        ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), stripped
e-0.02718/e.sun4u56:      ELF 32-bit MSB executable, SPARC, version 1 (SYSV), dynamically linked (uses shared libs), stripped
e-0.02718/EXAMPLES:       Bourne shell script text executable
e-0.02718/makefile:       script text executable for make -f

赛格威操作系统两者都提供filefind命令(通过filefindutils包)。

Unx工具类包括find,但我无法验证是否file包含该命令。该软件包似乎没有得到维护,因此 GnuWin32 可能是更好的选择。

答案2

如果我理解正确的话,答案是没有。

您仍然可以搜索文件名...

顺便问一句:你为​​什么要把 EXE 的扩展名改为 txt、jpeg 之类的?这样做没有任何好处,而且会导致 txt 文件中出现一堆无法使用的字符,而 jpeg 则显示“无法打开”。

(我会改变你的标签,使用像“exe”或“search”这样的标签

答案3

我只需使用目标文件中足够具体的部分进行搜索(在这种情况下显然是已知的);它可能非常慢,具体取决于要处理的数据量,但理论上不会比任何根据内容专门识别 EXE 文件的解决方案更慢。但它可能不适用于 Windows 资源管理器,因为只能在有限范围的扩展名内搜索文件内部(例如,我试图在 SRT 字幕文件中找到对话的特定部分,但找不到匹配项,但确实有一个文件包含相关部分)。

答案4

您可以使用特尔 ID检查文件的实际类型并选择性地更改其扩展名。

相关内容