Есть ли какая-либо команда linux для извлечения всех строк ascii из исполняемого или другого двоичного файла? Полагаю, я мог бы сделать это с помощью grep, но я помню, как где-то слышал, что такая команда существует?
Команда, которую вы ищете, это strings
Его имя говорит само за себя, он извлекает любую печатаемую строку из заданного файла.
man strings
дает:
СТРУНЫ (1)
НАЗВАНИЕ
струны - найти печатаемые строки в объекте или другом двоичном файлеОБЗОР
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]
В струны команда - это способ решить этот конкретный тип проблем. Иногда вам также нужно вывести его на grep.
Например:
strings somebinaryfile | grep textuwanttofind
Команда действительно существует и называется .... строками!
Команда od может сделать это:
od -c *filename*
Проблема с использованием строк заключается в том, что вы не видите окружающих непечатаемых материалов, и вам нужно быть осторожным с минимальной длиной строки.
Проблема с использованием
od -c FILEor
hexdump -C FILEis that a sequence can be difficult to find if it wraps a line.
Что-то мне в этом очень нравится ZTreeWin работает в WINE в Linux - вы можете многое сделать с ним, но поиск в любом файле или редактирование двоичных файлов может быть особенно полезным.
Потрясающий пакет ytree доступен для многих вариантов Linux и Unix и имеет хорошее представление Hex-дампа любого файла, но не имеет поиска, который есть у ZTreeWin (и его 16-битного предшественника XTree).