Здравствуйте, есть программа тестирования с базой вопросов. Хочу расшифровать эту базу. Загрузил программу в Die-он показывает это Потом запустил ProcMon,Увидел что читает нужный файл порциями по 128 бит Загрузил фаил в OllyDbg - поставил брекпоинт на функцию ReadFile - нашел ее по адресу 402C0E Дальше не понятно как быть- на F8 долго ждать пока программа прочитает весь файл такими порциями-как быть дальше? Спасибо. Сама программа с базой https://dropmefiles.com/WFtSl
Данные в блоках выравненных по 5002 байта(5000 + перенос [0dh 0ah]) сами данные распределены от 0e0h до 0ffh, при этом 0efh — в данных не встречается т. е. ваши данные распределены по 31 значению. Делайте выводы.
Предварительно на 0x10 ксорится, [e0..ff] получаются 32 символа и несколько управляющих кодов. Есть соблазн назвать это кодом цезаря, но по-моему это какая-то поносная феерия из нагромождения всего, что автору программы в голову пришло. Я бы посоветовал взять функцию .004AB734 (edx:указатель на шифрованные данные, ecx:размер, eax:указатель на переменную, куда будет вывален результат), найти там где-нибудь как уцепиться за буфер после расшифровки (оно похоже стрипает до длины строки), сделать скриптик, который накормит эту функцию всем файлом базы (по 0x1388 байт) и заберет результаты. По-хорошему реверсить эту туфту имхо так себе занятие.
f13nd, Для начала нужно узнать происходит ли декрипт бд в полную её сборку. Если база собирается в памяти, то её можно дампить, тогда незачем копаться в крипто функциях. Аналогично как с протекторами - зачем нужен анпак, если слой крипта снимается после инит.
Расшифровка происходит прозрачно при ее интепретировании. Создается гориллиард связанных объектов, парсить это еще хуже, чем на коленке расшифровать и разобрать формат файла.
f13nd, Не рациональный путь решения. Нужно найти при выборке ссылку в бд. Далее понять, статична ли она. Либо декрипт на лету. А какие то действия апп не относящиеся к целевой выборке совершенно прозрачны и не важны.
f13nd, Запросто, у меня есть инструмент для этого. Только вот это не задача, а вопрос тс для обучения.
extravert, > Инди придумал анклавовы-XSR и анклавы-АБВГД Сарказм что ле, софт анклавы это следствие устройства ав виртуалок. Они используют шлюз для эмуляции, я лишь развил эту тему. Оказалось что можно создать не читаемый блок(скан памяти) и общим способом обнаружить/обойти симуляцию.
extravert, Тут две темы с крэкми. Вот материал(кл заработал) решение автоматикой https://exelab.ru/f/index.php?action=vthread&forum=1&topic=25888&page=0 Это школьное говно решается на потоке https://exelab.ru/f/?action=vthread&forum=2&topic=25952&page=0#26
Спасибо. f13nd, попробую этот вариант- написать скрипт. Indy_, смотрел с адреса 4AB734, непонятный алгорит: Код (Text): mov dl,byte ptr ds:[edx+esi-1] значение dl не используется потом, как понять куда расшифровывает чтобы забрать?