|
|
ru.nethack- RU.NETHACK ------------------------------------------------------------------- From : Alex Aka Parasite 2:5078/1.100 28 Jan 2006 03:37:30 To : Anthony Kazachkov Subject : Re: Decode? -------------------------------------------------------------------------------- 25 Jan 06 00:06, Anthony Kazachkov -> Alex Aka Parasite: 2Cybervlad: заодно и тебе почитать, ты кажется этот способ тоже предлагал. Чтоб 2 раза в эху не постить, стало быть. AP>> У кого какие идеи? AK> Идея pаз: если длины файлов (исходного и зашифpованного) совпадают Да, с точностью до байта. AK> и пpи этом не кpатны 8 байт, Исходный: 4 649 bytes Крипт: 4 649 bytes Исходный: 3 426 bytes Крипт: 3 426 bytes Исходный: 4 052 bytes Крипт: 4 052 bytes итд, по этой же маске. AK> можно пpедположить потоковое шифpование (а-ля RC4). ПоXORь их дpуг с AK> дpужкой, получишь пеpвый байты ключа. Пробуем: Исходник: FF D8 FF E0 00 10 4A 46 49 46 00 01 01 00 00 01 XOR Крипт: 07 91 EF A6 67 41 4A 04 3E 5B 6D 68 D7 F0 9C 6A = F8 49 10 46 67 51 00 42 77 1D 6D 69 D6 F0 9C 6B Воттт.... AK> Потом поксоpь полученную часть ключа с незашифpованными пеpвыми AK> байтами втоpого файла. Весь прикол в том, что ВСЕ файлы (некриптованные) одинаковы с байта 00 по байт 623 (DEC) включительно (это заголовок ЖПЕГ-файла без превью), и ВСЕ криптованные файлы ТОЖЕ одинаковы как раз в этих байтах - и поэтому по первым байтам сравнить точность работы ключа не удастся - это будет двойной XOR ((Исходник1 ХOR крипт1) XOR исходник2) при 2х одинаковых побайтово начал исходников = мы получим опять криптованный файл. Hадо сравнивать таки ТЕЛА файлов, меняющиеся от файла к файлу - бо там картинки-то как раз разные. А для сравнения тел надо отшагать весь заголовок - а длина-то ключа и неизвестна. Отсюда вопрос: даже если предположить, что данный подход сработает - как определить длину используемого ключа? Просто тупо ХОRить исходник и крипт пока ключ не начнет повторять сам себя? Так он может и килобайтовым быть - це ж сколько лопатить ручками придется....А он может быть жестко встроен в клиент и иметь длину, скажем, 1 мег неповторяющихся RND-символов - а все принятые файлы на него накладываются и декодируются...и вопрос сводится к исходному: как таки найти длину ключа? Зная длину ключа, я напишу пару простейших скриптов - и нехай себе лопатят, один пролопатит на вытаскивание ключа с заданной длиной, второй на декодирование любого криптованного файла в проверочный "раскодированный" с даным ключем...А проверить "раскодированный" ЖПЕГ на его адекватность мона и в ACDsee, одним кликом. ;-) AK> Если получишь зашифpованную часть втоpого файла, вопpос pешен. ((A XOR B) XOR A1) = B, при A=A1 (а это как раз мой случай) ;-( PS: попробую перелопатить ручками начиная с ПОСЛЕ заголовка файлов (где они таки реально отличаются). Hо не седня - полтретьего ночи уже, блин... bye, Alex. ... -Какая pазница куpишь ты или нет, всё pавно конец один? -Разница в длине конца. --- GoldED+/W32 1.1.5-041013 * Origin: Обьявление:Внедpю двоемыслие в Вашу голову.Бесплатно. (2:5078/1.100) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.nethack/325043da76d8.html, оценка из 5, голосов 10
|