![]() |
eXeL@B —› Вопросы новичков —› Криптованый текст |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 13 октября 2009 17:13 · Личное сообщение · #1 |
|
Создано: 13 октября 2009 17:20 · Поправил: theCollision · Личное сообщение · #2 |
|
Создано: 13 октября 2009 17:40 · Личное сообщение · #3 |
|
Создано: 13 октября 2009 17:52 · Личное сообщение · #4 |
|
Создано: 13 октября 2009 18:59 · Поправил: _ruzmaz_ · Личное сообщение · #5 gazlan пишет: IMHO, там банальный XOR. Да уж, что-то не похоже, чтоб сильно закриптован или пожат был - энтропия мала и из 256 значений байта в файле не используется 83. gazlan пишет: Предположительно, $00 - это $0D Похоже на то. В таком случае 0A не сдвинут т.к. в этом файле байт 00 идет только с 0A (может и идет отдельно, но я не замечал пока) - судя по всему перевод строки. ![]() |
|
Создано: 13 октября 2009 19:55 · Поправил: gazlan · Личное сообщение · #6 _ruzmaz_ пишет: Похоже на то Поскольку строки и их порядок сохранены, то имея скрин хотя бы нескольких первых строк, за несколько минут можно сделать таблицу трансляции. Можно и без них, но лень ![]() Upd: Frequency Table ![]() ![]() |
|
Создано: 13 октября 2009 22:16 · Личное сообщение · #7 |
|
Создано: 13 октября 2009 22:43 · Личное сообщение · #8 _ruzmaz_ пишет: Неплохо было бы на них взглянуть. Это мало что даст - только принцип нумерации блоков и проч. мелочи. Важнее получить сам plain text (пусть даже и с другим порядком блоков). И, пока, для обдумывания: частоты 2, 3 и 4-графов. ![]() ![]() |
|
Создано: 14 октября 2009 10:09 · Поправил: Oput · Личное сообщение · #9 кому интересно то в кишках файл вот такой вот СТРУКТУРЫ, теоретически части шапки у них должны быть одинаковы. ![]() ![]() |
|
Создано: 14 октября 2009 18:28 · Личное сообщение · #10 Oput пишет: файл вот такой вот СТРУКТУРЫ Это может помочь, но все еще требует усилий по разгадыванию криптотекста. Гораздо полезнее был бы скрин экрана, где показывается дешифрованный текст, который можно немедленно сопоставить с криптотекстом. Если таких экранов несколько, то выложите на обменник _все_ зашифрованные файлы и, желательно, все скрины с дешифрованными текстами. Нужна по крайней мере одна пара соответствий, чтобы не ломать понапрасну голову. ![]() |
|
Создано: 14 октября 2009 18:54 · Личное сообщение · #11 Это отнюдь не простая таблица соотвествий. Откройте зашифрованный файл в любом текстовом редакторе который понимает 0А как перенос строки и гляньте строки 145-149 и так ясно что там структура вида ;-------- ; ;text ; ;-------- однако эти сами разделители зашифрованы разными символами, и как видно там повторяется блок со сдвигом ![]() |
|
Создано: 14 октября 2009 20:55 · Личное сообщение · #12 Veliant пишет: не простая таблица соотвествий Крайне низкая энтропия текста заставляет меня пока придерживаться версии именно простой таблицы замен (НЕ XOR, как я ошибочно написал вначале). Кроме того, если бы строки шифровались независимо, их вариабельность была бы больше, а так мы видим сходные группы символов в различных позициях - довод в пользу табличной замены, единой для всего файла. повторяется блок со сдвигом Почти уверенно, можно утверждать, что символ в ';' в первой позиции строки является комментарием (и нигде больше НЕ встречается), а тогда 1) Этот символ никогда НЕ шифруется - довод в пользу таблицы замен 2) Указанный Вами блок начинается со строки 101 и кончается в строке 147 (т.е. 145-149 пересекают границу блока) 3) Стиль файла 3.1 НЕ выдержан в файле 1.1, т.к. комментарий начинается без пробела сразу за маркером (строки 4, 14, 20, 30 и 232) ![]() |
|
Создано: 14 октября 2009 21:42 · Личное сообщение · #13 Структура скорее всего такая же. gazlan пишет: Этот символ никогда НЕ шифруется Шифруется. Ему также могут соответствовать символы 'Г', 'C', '»' в анси, т.к. первые 36 строк в 1.1, а также вставки, наподобие вышеописанной, начинаются именно с них (либо самого ';'). gazlan пишет: комментарий начинается без пробела сразу за маркером Так пробел здесь не только 0x6F. ![]() |
|
Создано: 14 октября 2009 22:07 · Поправил: gazlan · Личное сообщение · #14 |
|
Создано: 15 октября 2009 01:28 · Поправил: gazlan · Личное сообщение · #15 Пока, для тех кому интересно, toy VAG-COM decoder vc.com: читает модифицированный файл m1.1 ($0 заменен на $0D - чтобы файлик стал чисто текстовым), принимает в качестве параметра имя XLAT-таблицы (например, test_table.xlt) и выдает в STDOUT перекодированный текст. Тестовую таблицу test_table.xlt предагается изменять, оригинальную - ORIGINAL_table.xlt, использовать как стартовый шаблон. ![]() ![]() |
|
Создано: 15 октября 2009 05:45 · Поправил: gazlan · Личное сообщение · #16 Veliant пишет: не простая таблица соотвествий Подсчитал еще раз размер криптоалфавита - 173. Многовато даже для двуязычного файла. Довод в пользу a la XOR шифрования. Однако, символ перевода строки ($0A) НЕ шифруется, также НЕ шифруется ';', если это первый символ строки. В пользу последнего соображения свидетельствует "хвост" файла. Тогда возможная схема выглядит как построчное шифрование (гамма, вероятно, тождественна) с исключениями для спец.символов ($0A, $3B). Для облегчения работы с отдельными строками файла сделал маленький сплиттер - режет файл на строки, помещая каждую в отдельный файл с соответствующим номером. ![]() ![]() |
|
Создано: 15 октября 2009 05:52 · Личное сообщение · #17 Еще одним доводом в пользу построчного шифрования может служить сравнение таблиц октетов для plain и cipher текстов. ![]() ![]() |
|
Создано: 15 октября 2009 06:05 · Личное сообщение · #18 И еще одна (не оправдавшая себя) идея: открытый текст содержит большое количество парных скобок. Если бы использовался шифр простой замены, то (в аккуратно написанном файле), символы равной частотности, не встречающиеся в строке сдвоенными были бы хорошими кандидатами на роль парных скобок. Прилагаемая программа отыскивает такие пары символов и выводит сортированный список. Для 3.1: ) [29] 233 ( [28] 233 ![]() ![]() |
|
Создано: 15 октября 2009 10:30 · Личное сообщение · #19 Даю идею. В тексте действительно есть несколько включений ;-------- ; ;text ; ;-------- На криптованном тексте явно видно циклические повторения. Если проанализировать, то получим что для символа "-" есть 6 вариантов подстановки/XOR. К сожалению период порядка 64, поэтому надо анализировать все 3 включения. Желательно бы взять что-то типа 3.1, где таких блоков больше. Попытка продлить цикличность по формуле XOR на ";" не проходит. Либо она кодируется по другим правилам, как и конец строки, либо там 6 таблиц подстановки. ![]() |
|
Создано: 15 октября 2009 10:42 · Личное сообщение · #20 gazlan пишет: VAG-COM decoder Другой вариант - для проверки на построчный XOR с гаммой. Гамма читается из файла (задается как параметр). ![]() ![]() |
|
Создано: 15 октября 2009 11:18 · Личное сообщение · #21 tundra37 пишет: Попытка продлить цикличность по формуле XOR на ";" не проходит. Либо она кодируется по другим правилам, как и конец строки, либо там 6 таблиц подстановки. IMHO, символ ';' в первой колонке не кодируется вообще. А вот блоков, каждый из которых кодируется иначе, вероятно, действительно несколько. Дело в том, что если вырезать произвольный _столбец_ из текста (предполагая тождественный способ кодирования всех символов текста в данной позиции строки), то не удается подобрать XOR-комбинацию единую для всех строк. Причем, сам метод шифрования в данном случае неважен - единственное условие, шифрозамена однозначно определяется позицией в строке и заменяемым символом в этой позиции (простая гамма). Простенький брутфорсер перебирает 256 значений элемента гаммы для заданной позиции (указывается как параметр командной строки) и проверяет наличие в декодированном столбце символов с кодами < 0x20 (выводится * и код символа) и символы верхней половины таблицы ASCII (коих в английском тексте быть НЕ должно). Количество таких символов подсчитывается и выводится последним числовым параметром, за которым печатается декодированная строка. Сделано наспех, поэтому все столбцы выровнены на максимальную высоту и из-за коротких строк возникает систематическая погрешность, которая, впрочем, не мешает оценить "успешность" замены. ![]() ![]() |
|
Создано: 15 октября 2009 11:46 · Личное сообщение · #22 gazlan пишет: шифрозамена однозначно определяется позицией в строке и заменяемым символом в этой позиции Символы '-' с одинаковой позицией в строках, обрамляющих название следующего раздела файла шифруются по-разному. Можно вот отсюда скачать www.azlina.ru/download/VCDS-Release-9080-Installer.exe и посмотреть алго), предварительно сняв прот. Версия по-моему другая, но чувствуется, что криптуха та же) ![]() |
|
Создано: 15 октября 2009 13:05 · Поправил: gazlan · Личное сообщение · #23 _ruzmaz_ пишет: отсюда скачать Скачал. Без железяки не запустить - кроме About & Exit ничего не доступно. Файлики похожие есть, но не такие. Крипто, возможно, такое же, но это еще надо выяснять отдельно. В любом случае, к чему они относятся, понять затруднительно. Защита какая-то стоит (PEiD сказал PC-Guard 5.0). Я предпочел бы скрины оригинальной версии. Где TS? Возня с этой заведет слишком далеко. Да и, честно говоря, шифрование выглядит таким слабым, что до сих пор непонятно, почему не удалось к нему подступиться :-\ И, кстати, в большинстве просмотренных мною файлов меток никакого "обрамления" разделов не было. Вот так, к примеру: Code:
![]() |
|
Создано: 15 октября 2009 14:09 · Личное сообщение · #24 чуть выше, перед самым 1 каналом описано Code:
потом идёт после всех каналов Code:
а так дальше. все каналы именуються как Code:
И так далее ![]() |
|
Создано: 15 октября 2009 16:24 · Поправил: tundra37 · Личное сообщение · #25 gazlan пишет: MHO, символ ';' в первой колонке не кодируется вообще.А вот блоков, каждый из которых кодируется иначе, вероятно, действительно несколько.Дело в том, что если вырезать произвольный _столбец_ из текста (предполагая тождественный способ кодирования всех символов текста в данной позиции строки), то не удается подобрать XOR-комбинацию единую для всех строк. Про ";" легко проверить и писали уже, что кодируется разными символами. Идея про столбец абсолютно неверная. Надо убрать вообще символы 0х0 и 0xa и наложить гамму размером не менее 96. числа в гамме от 0 до 5. По образцу 1.1 гамму не удается восстановить, т.к. второй коментарий хоть и содержит похожий кусок, но нет периода 96 . Гипотеза XOR не проходит для символа ";", или разных байтов в гамме больше 6. Но это вряд ли - почему они не попадают на "----------------------" ? Обидно - показалось, что период 96 - тогда по нескольким файлам можно было частотный анализ по 6 группам провести. ++++++++++++++++++++++ Понял свою ошибку. Символов "-" там много и гамма повторяется. Т.к. гипотеза про "период минуя концы строк" не годится, то должна подойти гипотеза: применение "вращающейся гаммы" длиной 64 или больше к строкам. Гамма при переходе со строки на строку сдвигается циклически на какое-то число символов - завтра попытаюсь угадать. Тогда и c ";" понятно. ![]() |
|
Создано: 15 октября 2009 17:27 · Личное сообщение · #26 _ruzmaz_ пишет: Можно вот отсюда скачать www.azlina.ru/download/VCDS-Release-9080-Installer.exe и посмотреть алго), предварительно сняв прот. Файл 3.1 слегка изменился - похоже там ключ защиты другой. А вот 1.1 - это 1K0-959-433-MAX.clb Я ничего не устанавливал, а просто распаковал папку labels через 7zip. Завтра проанализируем. Сдвиг гаммы не циклический, но точно есть. На первой "------------------" на 24 вправо, на второй на 8 влево. Когда позиция в гамме =0 , то ";" не кодируется ! ![]() |
|
Создано: 15 октября 2009 18:25 · Личное сообщение · #27 |
|
Создано: 15 октября 2009 18:38 · Личное сообщение · #28 Будем надеяться, что разделитель ";-----" всегда имеет "правильный" размер - 52 байта. В эташе дампер строк такой длины. ![]() ![]() |
|
Создано: 15 октября 2009 19:08 · Личное сообщение · #29 gazlan пишет: Dump_52 вариант для работы сразу со всем набором файлов (d52a.com *.clb > delimiters.txt) + собственно дамп. ![]() ![]() |
|
Создано: 15 октября 2009 19:16 · Поправил: gazlan · Личное сообщение · #30 tundra37 пишет: Сдвиг гаммы не циклический, но точно есть. Да, на картинке хорошо просматривается скользящая гамма. Для каждой следующей строки гамма сдвигается влево на 2 символа. ![]() ![]() |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Криптованый текст |