Цель (общая) Моя конечная (долгосрочная) цель - записать импортер двоичного файла в другое приложение
Справочная информация
- Меня интересуют два поля в двоичном формате файла.Один зашифрован, а другой сжат и, возможно, также зашифрован (см., Как я пришел к такому выводу здесь ).
- У меня есть программа для просмотра (назову ее viewer.exe).), который может открыть эти файлы для просмотра.Я надеюсь, что это может дать некоторые подсказки.
- У меня (скоро) будет расшифрованный коррелированный вывод для сравнения и будут значения для поиска.
- Это наиболее релевантный stackoverflow Q / A Я обнаружил
Специфичный вопрос
Какова наилучшая стратегия, учитывая ресурсы, которые у меня есть для определения используемого алгоритма?
Текущие идеи
Я понимаю, что без ключа идентифицировать алгоритм из просто данных практически невозможно
Имея файл и viewer.exe, у меня где-то должен быть ключ.Будь то открытый, закрытый, симметричный и т. Д., Было бы неплохо выяснить.
Я бы хотел разобрать viewer.exe, используя OllyDbg с плагином findcrypt в качестве первого шага.,Я просто недостаточно опытен в таких вещах, чтобы выполнить это.
Ресурсы
полный файл примера
извлекает двоичный файл из поля, которое меня интересует
расшифровывает данные В этом zip-архиве есть двоичный список с плавающей точкой, представляющий x, y, z (model2.vertices) идвоичный список целых чисел (model2.faces).Я также включил файл "stl", который вы можете просматривать во многих бесплатных программах, но из-за странного способа хранения данных в STL это не то, что мы ожидаем получить из исходного файла.
Progress
1. Я разобрал программу с Olly, затем сделал единственное, что я знаю, как это сделать в этой постановке и «искал весь ссылочный текст» после приостановки программы перед тем, как импортировать изфайлы.Затем я искал такие слова, как «crypt, hash, AES, encrypt, SHA и т. Д. И т. Д.»Я придумал кучу вещей, особенно «Blowfish64», который, кажется, хорошо сочетается с тем фактом, что mydata иногда слишком длинен на 4 байта (и так как он гарантированно должен быть mod 12 = 0), для меня это выглядит как заполнение дляРазмер 64-битного блока (нечетное количество вершин приводит к 8-байтовому количеству не по модулю).Я также обнаружил сообщения об ошибках, такие как ...
«Неверный размер данных, (размер-4) mod 8 должен быть 0»
После прочтения ответа Игоря ниже, вот вывод из signrch.Я обновил это изображение зелеными точками, которые не вызывают проблем при замене на int3, красным, если программа не может запуститься, и оранжевым, если оно не удалось загрузить интересующий файл. Точка не означает, что я еще не проверял его.
Информация о аксессуарах
- Я использую Windows 7 64 бит
- viewer.exe - win32 x86application
- Данные в кодировке base64, а также в зашифрованном виде
- Расшифрованные данные представляют собой группы из 12 байтов, представляющих 3 числа с плавающей запятой (координаты x, y, z)
- У меня есть OllyDbv1.1 с плагином findcrypt, но мое использование ограничено, чтобы следовать вместе с этими парнями видео YouTube