как декодировать строку base64 в удобочитаемые символы на терминале gnome - PullRequest
1 голос
/ 07 апреля 2020

Я хочу декодировать строку в кодировке base64 в удобочитаемые данные и ищу правильное кодирование для того же самого.

Это команда, которую я пытаюсь

echo H4sICJVHi14AA2ZsYWcyLnR4dAAzsvLzdHb193O1Kkktyk3KzLNKLjMp4gIAtRX2oBcAAAA= | base64 -d

Abve выводит в некоторые нечеткие нечитаемые человеком данные.

�G�^flag2.txt3���tv��s�*I-�M�̳J.3)����

Почему пропущено много символов? Как я могу прочитать все символы?

Мой терминал gnome настроен на utf-8. Есть ли лучшая / более широкая кодировка? Как мне установить это?

1 Ответ

7 голосов
/ 07 апреля 2020

Ваши данные в кодировке Base64 являются двоичными со смешанными печатными символами и смешанными непечатными.

Позволяет увидеть, что они на самом деле содержат с hexdump:

<<<'H4sICJVHi14AA2ZsYWcyLnR4dAAzsvLzdHb193O1Kkktyk3KzLNKLjMp4gIAtRX2oBcAAAA=' base64 -d | hexdump -C
00000000  1f 8b 08 08 95 47 8b 5e  00 03 66 6c 61 67 32 2e  |.....G.^..flag2.|
00000010  74 78 74 00 33 b2 f2 f3  74 76 f5 f7 73 b5 2a 49  |txt.3...tv..s.*I|
00000020  2d ca 4d ca cc b3 4a 2e  33 29 e2 02 00 b5 15 f6  |-.M...J.3)......|
00000030  a0 17 00 00 00                                    |.....|
00000035

Вы можете извлечь действительный текст с помощью команды strings:

<<<'H4sICJVHi14AA2ZsYWcyLnR4dAAzsvLzdHb193O1Kkktyk3KzLNKLjMp4gIAtRX2oBcAAAA=' base64 -d | strings
flag2.txt
J.3)

Или сохраните ее в файл bin:

<<<'H4sICJVHi14AA2ZsYWcyLnR4dAAzsvLzdHb193O1Kkktyk3KzLNKLjMp4gIAtRX2oBcAAAA=' >file.bin base64 -d

Давайте проверим, что это такое:

file file.bin 
file.bin: gzip compressed data, was "flag2.txt", last modified: Mon Apr  6 15:15:33 2020, from Unix, original size modulo 2^32 23

Так как это gzip 'ed данные, позволяющие gunzip it:

<file.bin gunzip
2:NICEONE:termbin:cv4r

Или делать все это в одну строку:

<<<'H4sICJVHi14AA2ZsYWcyLnR4dAAzsvLzdHb193O1Kkktyk3KzLNKLjMp4gIAtRX2oBcAAAA=' base64 -d | gunzip
2:NICEONE:termbin:cv4r
...