Чи є якась команда linux для витягування всіх рядків ascii з виконуваного файлу чи іншого двійкового файлу? Я гадаю, я міг би це зробити з грепом, але я пам’ятаю, де я чув, що така команда існувала?
Чи є якась команда linux для витягування всіх рядків ascii з виконуваного файлу чи іншого двійкового файлу? Я гадаю, я міг би це зробити з грепом, але я пам’ятаю, де я чув, що така команда існувала?
Відповіді:
Команда, яку ви шукаєте, така strings
Його ім'я досить зрозуміле, воно витягує будь-який рядок для друку із заданого файлу.
man strings
дає:
STRINGS (1)
Рядки NAME - знайдіть рядки для друку в об'єкті чи іншому бінарному файліСИНОПИС
strings [ - ] [ -a ] [ -o ] [ -t format ] [ -number ] [ -n number ] [--] [file ...]
Команда рядків - це спосіб вирішити цей конкретний тип проблем. Іноді вам також доводиться виводити трубку, щоб зафіксувати .
Наприклад:
strings somebinaryfile | grep textuwanttofind
Команда od може це зробити:
od -c *filename*
Проблема з використанням рядків полягає в тому, що ви не бачите оточуючих недрукованих друкованих файлів і вам потрібно бути обережними з мінімальною довжиною рядка.
Проблема з використанням
OD -c ФАЙЛабо
hexdump -C ФАЙЛполягає в тому, що послідовність може бути складно знайти, якщо вона обертає лінію.
Щось мені дуже подобається для цього, це ZTreeWin, який працює в WINE на Linux - ви можете зробити багато з цим, але пошук у будь-якому файлі чи редагування бінарних файлів може бути особливо корисним.
Дивовижний пакет ytree доступний для багатьох варіантів Linux та Unix. Він має хороший шестигранний перегляд файлів у будь-якому файлі, але не має пошуку у ZTreeWin (та його 16-бітового попередника, XTree).