|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 7
|
|
Возможно ли определить алгоритм шифрования28.09.2015, 17:10. Показов 1731. Ответов 11
Метки нет (Все метки)
Есть пары шифрованный - не шифрованный текст.
Зашифрованные данные не длинные (названия). Обращение к ним очень частое, расшифровка на каждом обращении, так что должно быть что-то простое и быстрое. Подскажите в какую сторону смотреть? (Возможно первые буквы большие в расшифрованном тексте) C36A852C3B8A64 - стартер 3DBEC74FE62EAE9D0A - термостат 9DC457C7A93BBF24EF - генератор 16E5134A216E00ED - радиатор 55DBA22B63 - капот 87CB580D63 - крыша 2988A7D6B899 - панель 4E993414EA2627EF - тахометр 5CF1556079 - радио F62272AAAF76 - серьга 4DCB982AABA90F - маховик
0
|
|
| 28.09.2015, 17:10 | |
|
Ответы с готовыми решениями:
11
Определить алгоритм шифрования Определить алгоритм шифрования |
| 28.09.2015, 17:38 | ||
|
Сопоставьте сначала строки одного размера. Не исключено, что шифртекст записан в обратном порядке, т.е. перед дешифровкой строку следует перевернуть. Не по теме: Возможно, лучшим вариантом было бы изучение самой программы.
0
|
||
|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 7
|
|
| 28.09.2015, 18:05 [ТС] | |
|
изучение самой программы крайне затруднено старфорсем
Добавлено через 11 минут 16E5134A216E00ED - радиатор 4E993414EA2627EF - тахометр на перевертыш с ксором не похоже, тогда бы совпадали первые или последние байты
0
|
|
| 28.09.2015, 18:29 | |
|
В данном случае - нет, так как первые буквы различны, а XOR, обычно, делается "бегущим": первый байт с размером, второй - с первым итд. (CBC mode).
0
|
|
|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 7
|
|
| 28.09.2015, 18:48 [ТС] | |
|
спасибо за наводку сейчас буду пробовать, еще насчет "перевернуть строку"
это 55DBA22B63 -> 632BA2DB55 или 36B22ABD55
0
|
|
|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 7
|
|
| 28.09.2015, 21:08 [ТС] | |
|
Данная идея ни к чему не привела.
Может еще есть идейки, что можно проверить? или я забыл какие-нибудь кодировки однобайтовые? internal class Program{ private static byte[] Cbc(int[] arr, int key){ var rez = new List<byte>(); var prev = key; for (int i = 0; i < arr.Length; i++){ prev = arr[i] ^ prev; rez.Add((byte)prev); } return rez.ToArray(); } private static bool IsLetters(string msg){ return msg.ToCharArray().All(Char.IsLetter); } private static void Main(string[] args){ var encoders = new[]{Encoding.GetEncoding("utf-7"), Encoding.GetEncoding("utf-8"), Encoding.GetEncoding("koi8-r"), Encoding.GetEncoding(1251), Encoding.GetEncoding(866)}; var encoded = new[]{0x5c, 0xF1, 0x55, 0x60, 0x79};//{0x55, 0xDB, 0xA2, 0x2B, 0x63}; var encodedInv = encoded.Reverse().ToArray(); var lst = new List<string>(); for (int i = 0; i < 256; i++){ var bytes1 = Cbc(encoded, i); var bytes2 = Cbc(encodedInv, i); foreach (var enc in encoders){ var msg1 = enc.GetString(bytes1); var msg2 = enc.GetString(bytes2); if (IsLetters(msg1)) { lst.Add(msg1); } if (IsLetters(msg2)) { lst.Add(msg2); } } } foreach (var line in lst){ Console.WriteLine(line); } Console.Read(); } }
0
|
|
| 28.09.2015, 22:35 | |
|
Кодировка не имеет значения (если символы не смешиваются) - она просто будет учтена константами преобразования.
Не по теме: А с идеями старый анекдот вспоминается, про лечение и ветеринара: Например, часто используются варианты ROL/ROR ... расписывайте побитово и медитируйте. И, вместо листинга на невменяемом языке, приведите лучше еще примеры пар - может что-то и увидится...
0
|
|
|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 7
|
|
| 29.09.2015, 03:01 [ТС] | |
|
Нашел 2 схожих последовательности судя по всему разница что-то типа нижний-задняя, но почему байты разнесены по последовательности?
4CA613D0C06D906E5AC8EFB5CA661B86CB20B23C6CD88FCFC77888DEEB790CA906E651A90F 4CA613D0C06D906E5AC8EFB5CADC1B86CB03B23CAAD823CFC77888DEEB790CA906E651A905 Добавлено через 1 час 51 минуту Еще интересная тройка. К сожалению при таких длинных шифровках гарантировать точную расшифровку нельзя, могут быть перестановки слов и сокращения. 15C377B20DED5EC8714214C71EA667E365C828F6 35E30D1F3241839CDAB6 15C377B20DED5EC87142C8C71EA679E365C828F6 BCE30D1F77BA0E9CDAB6 15C3D6B20DED5EC87142D5C71EA67137FAC828F6 39E3A71FC8129C9CD4B6 Усилитель порога передний прав Усилитель передней стойки прав Усилитель бампера передний лев Добавлено через 1 час 18 минут E3049ADF50 49 E4EDC758 8F 61 38 E072D0AE9510 E3049ADF50 4B E4EDC758 67 61 9E E072D0AE9510 Судя по всему: Блок управления ABS Блок управления АБС Строки равные по длине "близкие" до кодирования "близки" и после кодирования. Отличая в длине хотя бы на символ полностью меняет зашифрованную последовательность, даже для очень "близких" строк.
0
|
|
|
653 / 161 / 64
Регистрация: 08.04.2015
Сообщений: 412
|
|
| 29.09.2015, 06:29 | |
|
Очевидно, что это не простой ксор. Также очевидно, что это не какое-нибудь типовое потоковое шифрование типа RC4 или оракловского Encode/Decode, т. к. в них одинаковые первые символы текста должны давать одинаковые первые байты шифра.
Можно было бы предположить, что здесь какой-нибудь блочный алгоритм в режиме CFB или OFB, но последние примеры это опровергают. Получается, это что-то самоизобретенное, и без анализа ПО не обойтись.
0
|
|
|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 7
|
|
| 29.09.2015, 11:51 [ТС] | |
|
Все потоковые алгоритмы отметаются, при попадании первого не равного символа, должна меняться вся оставшаяся последовательность, а это явно не так.
Сейчас выглядит как-то так: 1. шафл всей строки 2. по байтовая кодировка 3. ксор по длине (попробую проверить данное предположение)
0
|
|
|
0 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 7
|
|
| 03.10.2015, 01:13 [ТС] | |
|
научился кодировать определенные строки вот что получил
аа - CE 1С аб - CF 1C ав - CC 1C ад - CD 1C бд - 60 1D Разгрести так и не смог ![]() Взял более длинное и менял по 1 букве начиная с конца Ремонт - 5B C0 CF 85 A7 AB Ремонс - 5B C0 CF 14 A7 AB Ремокт - 5С C0 CF 99 A7 AB Ремпнт - 50 C0 CE 68 A7 AB Ренокт - 79 C1 10 4E A7 AB В общем видно следующее: после шифрования имеется перестановка, а именно Ремонт-нмотРе, а шифрование блочное после того как натыкаемся на неверный символ бьются и все после него с учетом перестановки. Подкиньте идейку плз... Добавлено через 36 минут Зачем перемешивать байты после шифрования?
0
|
|
| 03.10.2015, 01:13 | |
|
Помогаю со студенческими работами здесь
12
Определить алгоритм шифрования пар двубайтовых значений.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|