当可执行文件被重命名后,有没有办法在 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
赛格威和操作系统两者都提供file
和find
命令(通过file
和findutils
包)。
Unx工具类包括find
,但我无法验证是否file
包含该命令。该软件包似乎没有得到维护,因此 GnuWin32 可能是更好的选择。
答案2
如果我理解正确的话,答案是没有。
您仍然可以搜索文件名...
顺便问一句:你为什么要把 EXE 的扩展名改为 txt、jpeg 之类的?这样做没有任何好处,而且会导致 txt 文件中出现一堆无法使用的字符,而 jpeg 则显示“无法打开”。
(我会改变你的标签,使用像“exe”或“search”这样的标签
答案3
我只需使用目标文件中足够具体的部分进行搜索(在这种情况下显然是已知的);它可能非常慢,具体取决于要处理的数据量,但理论上不会比任何根据内容专门识别 EXE 文件的解决方案更慢。但它可能不适用于 Windows 资源管理器,因为只能在有限范围的扩展名内搜索文件内部(例如,我试图在 SRT 字幕文件中找到对话的特定部分,但找不到匹配项,但确实有一个文件包含相关部分)。
答案4
您可以使用特尔 ID检查文件的实际类型并选择性地更改其扩展名。