LINUX.ORG.RU
ФорумAdmin

Как сделать шестнадцатиричный дамп с рус. acsii представлением ?

 ,


0

1

Необходимо увидеть дамп с ascii представлением всех символов, в том числе русских букв. Я понимаю, юникод и все дела, но такое вообще возможно? Нужно в бинарнике отследить русский текст.

hexdump -v -C или xxd показывают только латиницу и точки.

Русские символы не входят в ascii. В любом случае нужно в какой-то кодировке их выводить, и в разных кодировках у русских символов разные коды. В какой кодировке эти русские символы в этом бинарнике?

pi11 ★★★★★
()
Ответ на: комментарий от pi11

Сойдёт хотя бы 1251, 866, но хотелось бы юникод в и д е т ь не так:

d0 b2 d0 b8 d0 b4 d0 b5  d1 82 d1 8c 0a           |.............|

А так:
d0 b2 d0 b8 d0 b4 d0 b5  d1 82 d1 8c 0a           |.в.и.д.е.т.ь.|

hikikomori ★★★
() автор топика
Последнее исправление: hikikomori (всего исправлений: 1)
Ответ на: комментарий от pi11

Эта команда не показывает коды. Я с таким же успехом мог бы использовать cat.

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori
$ cat test 
в и д е т ь

$ hexdump -C test
00000000  d0 b2 20 d0 b8 20 d0 b4  20 d0 b5 20 d1 82 20 d1  |.. .. .. .. .. .|
00000010  8c 0a                                             |..|
00000012

$ pip install unidump

$ unidump test
      0    0432 0020 0438 0020 0434 0020 0435 0020 0442 0020 044C 000A                        в.и.д.е.т.ь.
EXL ★★★★★
()
Ответ на: комментарий от EXL

Чувак привет! Спасибо гуру, это то, что надо! Судя по инсталятору pip это python2?

$which unidump
~/.local/bin/unidump
$vim ~/.local/bin/unidump

  1 #!/usr/bin/python
  2 # -*- coding: utf-8 -*-
  3 import re
  4 import sys
  5 from unidump.cli import main
  6 if __name__ == '__main__':
  7     sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
  8     sys.exit(main())


А что за unidump.cli, кто автор?

hikikomori ★★★
() автор топика
Ответ на: комментарий от hikikomori

Судя по инсталятору pip это python2?

Это зависит от твоего Linux-дистрибутива. В современных pip по умолчанию использует Python 3.

$ pip --version
pip 20.2.2 from /usr/lib/python3.9/site-packages/pip (python 3.9)

$ pip3 --version
pip 20.2.2 from /usr/lib/python3.9/site-packages/pip (python 3.9)

Официальный сайт/GitHub утилиты:

https://github.com/Codepoints/unidump

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Ах да, это я по привычке что без 3 за 2й принимаю) Конечно 3й.

pip -V
pip 20.2 from /usr/lib/python3.8/site-packages/pip (python 3.8)

hikikomori ★★★
() автор топика
Ответ на: комментарий от EXL

У похмельных анонимных школьников обострение)

Мне ещё наглядный пример на смайликах понравился:

(echo -n -e '\xf0\x9f\xa7\x9d\xf0\x9f\x8f\xbd\xe2' ; echo -n -e '\x80\x8d\xe2\x99\x82\xef\xb8\x8f' ; ) | unidump -n 5
      0    1F9DD 1F3FD 200D 2642 FE0F    🧝🏽.♂️

hikikomori ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.