LINUX.ORG.RU
решено ФорумTalks

Кто-нибудь помнит такой bin-to-ascii формат?

 , uuencode


0

1

1-я буква в строке «M». За ней идут 60 знаков от «!» до «`» — ASCII коды от 33 до 96, 64 возможных значения. Текстовых строк до и после закодированных нет.

Очевидно, это что-то вроде uuencode (или base64), но не совсем. Программы uudecode эти файлы не понимают, ругаются на отсутствие «begin». Если просто вычесть из каждого байта 33 и склеить 4 6-битные последовательности в 3 байта, получается мусор.

file (libmagic) опознаёт их как текст ASCII.

Кто-нибудь помнит, что это за кодировка?

Ответ: это такой uue. Питоновский binascii.a2b_uu() нормально обрабатывает его, если по одной строке.

★★★★★

Последнее исправление: question4 (всего исправлений: 2)
Ответ на: комментарий от justAmoment

А где такое применялось?

В почте.

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

https://en.wikipedia.org/wiki/Binary-to-text_encoding

Оттуда начал. Самое похожее — uuencode, но там прибавляют 32, а не 33, и нет ничего похожего на «M» в начале.

Мог что-то пропустить. Тем более, статьи и примеры есть не на всё.

question4 ★★★★★
() автор топика

man 1 btoa

btoa, atob, tarmail, untarmail - encode/decode binary to printable ASCII

FEATURES

 Btoa uses a compact base-85 encoding so that 4 bytes are
 encoded into 5 characters (file is expanded by 25%).  As a
 special case, 32-bit zero is encoded as one character.  This
 encoding produces less output than uuencode(1).
Mirage1_
()
Ответ на: комментарий от question4

Лови сорцы BTOA.C/ATOB.C (tgz-архив в кодировке base64):

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
67Ve67Ve67Vef7D1b7DrBSgAKAAA
Mirage1_
()
Ответ на: комментарий от Mirage1_

Btoa uses a compact base-85 encoding

И в Википедии:

The initial proposal for btoa encoding used an encoding alphabet starting at the ASCII space character through «t» inclusive, but this was replaced with an encoding alphabet of "!" to «u»

В моём случае используются всего 64 символа, от ! до `.

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

Спасибо, попробую, но это явно не то.

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

В моём случае используются всего 64 символа, от ! до `.

Сейчас погляжу ещё.

Mirage1_
()

Программы uudecode эти файлы не понимают, ругаются на отсутствие «begin»

Так допиши. И end.

Если просто вычесть из каждого байта 33

В uue надо вычитать 32. ` в конце - игнорировать. ` не в конце (если есть) - синоним к пробелу.

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

А это вообще может быть кастомный формат на основе одного из.

Какой-нибудь широко распространённый в 1990-е мэйлер. Поэтому и спрашиваю коллективный разум. Я на такие вещи неоднократно в архивах Google Groups натыкался. Насчёт «M» в начале не уверен.

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

и нет ничего похожего на «M» в начале.

Ну как ты читаешь. Ты uue-тексты ни разу не видел что ли?

firkax ★★★★★
()

, получается мусор.

Если там текст, попробуй частотный словарь прогнать. Или просто `enconv`.

Mirage1_
()

Может, какой-нибудь BASE63, много их всяких.

Mirage1_
()
Ответ на: комментарий от firkax

Так допиши. И end.

Для этого сперва нужно узнать что за формат, чтобы знать, что писать.

в конце - игнорировать. не в конце (если есть) - синоним к пробелу.

Пробелов там нет. Там ровно 64 различных символа. Хотя если ` считать пробелом и вычитать 32…

Попробовал. Всё равно, мусор.

Ну как ты читаешь. Ты uue-тексты ни разу не видел что ли?

Не вглядывался в них. Бессмысленный текст капсом, у которого все строки одной длины, дальше не обращал внимания. Сейчас поэкспериментировал с библиотекой и понял, откуда берётся первая M. Число закодированных в строке байт + 32.

После этого раскодировал библиотекой по одной строке. Всё равно, мусор получился.

Спасибо за пинок в нужном направлении.

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

попробуй частотный словарь прогнать

Все 256 байт с довольно близкой вероятностью. Подозреваю, что это JPEG или ZIP без начала и конца.

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

Для этого сперва нужно узнать что за формат, чтобы знать, что писать.

Формат - uuencode, по-моему это очевидно.

раскодировал библиотекой

Надо было дописать в начало строку «begin 0 qqq» и в конец строку «end», затем вызвать uudecode.

мусор получился.

Значит там он и есть. Если б ты объяснил суть задачи было бы проще.

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

Все 256 байт с довольно близкой вероятностью. Подозреваю, что это JPEG или ZIP без начала и конца.

А ещё там может быть что-то зашифрованое любым из алгоритмов. Но поскольку контекст всего мероприятия неясен то гадать бесполезно.

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

Если б ты объяснил суть задачи было бы проще.

Для этого надо было самому её понять :)

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