Есть ли команда Linux для извлечения всех строк ascii из исполняемого файла или другого двоичного файла? Полагаю, я мог бы сделать это с помощью grep, но я помню, что где-то слышал, что такая команда существовала?
Есть ли команда Linux для извлечения всех строк ascii из исполняемого файла или другого двоичного файла? Полагаю, я мог бы сделать это с помощью grep, но я помню, что где-то слышал, что такая команда существовала?
Ответы:
Команда, которую вы ищете strings
Его имя не требует пояснений, оно извлекает любую печатаемую строку из заданного файла.
man strings
дает:
НИТИ (1)
NAME
strings - найти строки для печати в объекте или другом двоичном файлеСИНТАКСИС
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]
Команда strings - это способ решения проблем данного типа. Иногда вы также должны передать это grep .
Например:
strings somebinaryfile | grep textuwanttofind
Команда od может сделать это:
od -c *filename*
Проблема с использованием строк заключается в том, что вы не видите окружающих, не пригодных для печати, и вы должны быть осторожны с минимальной длиной строки.
Проблема с использованием
od -c ФАЙЛили
hexdump -C ФАЙЛв том, что последовательность может быть трудно найти, если она переносит строку.
Для этого мне очень нравится ZTreeWin, работающий в WINE под Linux - с ним можно многое сделать, но поиск в любом файле или редактирование двоичных файлов может быть особенно полезным.
Потрясающий пакет ytree доступен для многих вариантов Linux и Unix и имеет хорошее представление Hex-дампа для любого файла, но не имеет поиска, который есть у ZTreeWin (и его 16-битного предшественника, XTree).