Открытие бинарного файла в VI и XXD - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь изменить двоичные данные исполняемой программы в Linux с помощью Ubuntu.

У меня есть файл с именем a.out. Я могу сбросить его в гекс, используя xxd a.out | less. Затем в другом окне терминала я запускаю vi a.out.

Данные Vi во многих местах немного отличаются от выходных данных xxd. Оба отображают адреса в файл, но данные разные. Например, в самом начале исполняемого файла в xxd есть два байта C006, которые в VI отображаются как c380

Кто-нибудь знает, почему они разные? Похоже, VI по какой-то причине изменяет некоторые данные.

1 Ответ

0 голосов
/ 27 марта 2019

Я думаю, вы не понимаете, что делает трубопровод (|) на меньше .

xxd a.out, покажет шестнадцатеричный вывод a.out на терминале.

xxd a.out | less, просто отправит вывод из xxd в less , чтобы вы могли прокрутить его в командной строке

Я думаю, что вы хотите сделать, это xxd a.out > file_to_open_in_vi.txt. Это фактически выведет ваш вывод xxd в текстовый файл, который вы затем сможете открыть с помощью vi.

...