#c# #.net #encryption #yahoo-messenger
#c# #.net #шифрование #yahoo-messenger
Вопрос:
Я пытаюсь расшифровать файл DAT, созданный Yahoo Messenger, который выглядит аналогично приведенному ниже тексту, который я сгенерировал, открыв exe-файл в Notepad:
‹
‹N€9 tè…ÀtäÿFöt‹FŠ ‹V‹NˆÿFÿNëÿFH‰F3À9Ft9Ft ö…³ ;Øtsj÷ël;Øt%‹F‹N¶Dÿj Pÿ5@aÐMè5 …À„þÿÿ…Ûuƒ} tÇEø jEPÿvÿvÿuøÿ5DaÐMÿÐM…Àu,ÿÐM=Y tjðë…ÛtjöXë<3Àf‹F,ÇF. ‰Eë‹E‹N…Étÿv2PÿÑëƒ~$ t
‹N(f‰ƒF(ÿF 3À‰F_[É ÌÌÌÌ̃ù
u<r<Ÿ
Я попробовал несколько онлайн-инструментов, которые имеют различные алгоритмы шифрования, такие как Blow-fish, DES, MD5 1-Way и другие обычные способы шифрования, такие как leet speak, rot-13 и т.д., Но я обнаружил, что сгенерированный текст читается нормально, но не является оригинальным. Я думаю, что это AES, или RSA, или Triple DES. На самом деле я работаю над утилитой, которая будет считывать локальный архив Yahoo Messengers. Но когда я открываю локальный, я обнаружил файл DAT с зашифрованным текстом, как указано выше.
(ОБНОВЛЕНИЕ)
Согласно статье venkyduded «yahoo использует простой алгоритм XOR для кодирования сообщений (так много для безопасности !!) «. Любая хорошая ссылка на XOR rversing.
Любая помощь была бы высоко оценена.
Комментарии:
1. Невозможно ответить на такой вопрос.
2. Хотя это заставило меня улыбнуться… счастливые дни…
3. Должно быть практически невозможно найти алгоритм шифрования, просто взглянув на зашифрованные данные. Чтобы узнать, как читать файл DAT, сравните файл до и после добавления еще одной строки в messenger или изменения нескольких байтов и посмотрите, какой эффект это произведет. Это скорее криптоанализ, чем программирование.
4. ИМХО, это не похоже на зашифрованный текст, созданный с помощью сильного алгоритма, слишком много повторяющихся или почти повторяющихся блоков. Похоже, что запутанные данные помещены в какую-то структуру.
5. @AmRan: вы говорите нам, что ожидали, что мы «взломаем» некоторые случайные данные изнутри и exe, которые не имеют никакого значения вообще? <сарказм> Спасибо</sarcasm>. Итак, в статье в @mkeats answer (которую вы сейчас упоминаете в вопросе) уже есть код, показывающий, как декодировать сообщения (подсказка:
^
это оператор XOR в C, и алгоритм декодирования тот же, что и для кодирования).
Ответ №1:
Yahoo Messenger кодирует только файлы данных. Взгляните на http://www.venkydude.com/articles/yarchive.htm подробнее о формате данных.
Ответ №2:
Я не думаю, что мы можем вам помочь. К сожалению, сильно зашифрованные данные будут неотличимы от случайного шума. Я ожидаю, что у АНБ есть статистика, которую они могут запустить с данными, чтобы определить это, но нормальные люди вроде нас — SOL.
Даже если бы вы знали механизм шифрования, вам также понадобился бы ключ, прежде чем вы смогли бы разобраться в нем, и опять же, если шифрование достаточно хорошее, было бы очень трудно / невозможно угадать.
Лучше всего было бы перепроектировать эту часть Yahoo Messenger, чтобы увидеть, что она на самом деле делает и откуда она получает ключ шифрования / где она его хранит.
Ответ №3:
Согласно статье venkyduded «yahoo использует простой алгоритм XOR для кодирования сообщений (так много для безопасности !!) «. Любая хорошая ссылка на XOR rversing.
Нужно было бы знать, против какого исходного значения было XOR. Также необходимо было бы знать некоторую дополнительную информацию, например, о том, сколько слов было преобразовано за раз, ответ на ваш вопрос таков.
Чтобы получить значение, обратное значению XOR, вам нужно просто снова преобразовать значение в XOR с начальным значением.