Гол (General) Моей конечной (долгосрочная) цели состоит в том, чтобы написать импортер для двоичного файла в другое приложениеРазберите для идентификации алгоритма шифрования
Вопрос Фон
- Я интересуется двумя полями в формате двоичного файла. Один из них зашифрован, а другой сжат и, возможно, также зашифрован (см., Как я пришел к такому выводу here).
- У меня есть программа просмотра (я буду называть его viewer.exe), которая может открывать эти файлы для просмотра. Я надеюсь, что это может подтолкнуть некоторые подсказки.
- Я буду (скоро) иметь коррелированный расшифрованный вывод для сравнения и иметь значения для поиска.
- Это наиболее актуальной stackoverflow Q/A я нашел
Вопрос Specific
Что является лучшей стратегией, учитывая ресурсы, которые я должен определить алгоритм используется?
Текущие Идеи
Я понимаю, что без ключа, идентифицирующий Algo от всего данных практически невозможно
Имея файл и viewer.exe, я должен иметь ключ где-то. Является ли это публичным, частным, симметричным и т. Д. ... это было бы неплохо выяснить.
Я хотел бы разобрать viewer.exe с помощью OllyDbg с плагином findcrypt в качестве первого шага. Я просто недостаточно разбираюсь в этом, чтобы выполнить это.
Ресурсы
полный example file
extracted binary из поля Я заинтересован в
decrypted data В этом .zip архиве есть двоичный список поплавков, представляющих х, у, г (model2.vertices) и двоичный список целых чисел (model2.faces). Я также включил файл stl, который вы можете просматривать со многими бесплатными программами, но из-за странного способа хранения данных в STL это не то, что мы ожидаем получить из исходного файла.
Прогресс
1. Я разобрал программу с Olly, то сделал единственное, что я знаю, как это сделать в этой Поинге и «искали все ссылки текста» после приостановки порграммы перед импортирует из из файлы. Затем я искал слова, похожие на «crypt, hash, AES, encrypt, SHA и т. Д.» И т. Д. Я придумал кучу вещей, в первую очередь «Blowfish64», который, похоже, хорошо сочетается с тем, что mydata изредка составляет 4 байта слишком долго (и поскольку он гарантирован быть mod 12 = 0), это для меня выглядит как дополнение для Размер 64-битного блока (нечетные количества вершин приводят к нечетным 8 байтам). Я также нашел сообщения об ошибках, такие как ...
«недопустимый размер данных (размер-4) по модулю 8 должен быть 0"
После прочтения ответа Игоря ниже, вот выход из signsrch. Я обновил этот образ с зеленой точкой, которая не вызывают никаких проблем при замене на INT3, красной, если программа не может начаться, и оранжевый цвет, если это не удается при загрузке файла интереса. нет точка не означает, что я не проверял еще.
Аксессуар Информация
- Im с использованием Windows 7 64 бит
- viewer.exe является Win32 x86 приложению
- Данные в кодировке base64, а также зашифрованы
- Расшифрованная данные группы по 12 байт, представляющих 3 плавает (х, у , г-координата)
- у меня есть OllyDb v1.1 с findcrypt плагиным, но мой Useage ограничивается следующим вместе с этими парнями youtube videos
Почему вы не задаете этот вопрос на суперпользователе? –
IDA имеет метод FLIRT, который идентифицирует известные функции. Если они используют стандартную криптографическую библиотеку, она может идентифицировать алгоритм. – CodesInChaos
@GregS Потому что я не знал, что лучше спросить. Я проверю это как можно скорее – patmo141