Есть ли способ поиска исполняемых файлов в Windows, когда он был переименован? Скажем, файл .exe был переименован в расширение .txt или .jpeg.
4 ответа
Вы можете использовать file
утилиту Unix, которая может сказать вам, на чем основан файл. Вам понадобится либо среда Cygwin, либо пакет win32-портов, такой как GnuWin32 или UnxUtils.
Вот как работает 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
Cygwin и GnuWin32 предоставляют file
и команды find
(через пакеты file
и findutils
).
UnxUtils включает в себя find
, но я не могу убедиться, что команда file
включена. Пакет, похоже, не поддерживается, поэтому GnuWin32, вероятно, является лучшим вариантом.
Вы можете использовать TrID, чтобы проверить фактический тип файлов и при необходимости изменить их расширения.
Если я тебя понимаю, хорошо, нет.
Тем не менее, вы можете найти имя файла ...
Кстати: почему вы могли бы изменить расширение EXE на TXT, JPEG или около того? В этом нет никакого преимущества, и это приведет к тому, что в txt появится куча неиспользуемых символов, а jpeg - «не может открыться».
(Я бы изменил ваши теги, используйте что-то вроде «exe» или «search»
Я бы просто сделал поиск, используя достаточно конкретную часть в целевом файле (который, по-видимому, известен в этом случае); это может быть очень медленно, в зависимости от объема обрабатываемых данных, но теоретически не более чем любое решение, которое определенно распознает EXE-файлы в соответствии с их содержанием. Тем не менее, он может не работать с Windows Explorer, поскольку поиск внутри файлов возможен только для ограниченного диапазона расширений (например, я пытался найти определенную часть диалога в файлах субтитров SRT, но не смог найти совпадение, но все же был действительно файл, содержащий соответствующую часть).