Сейчас на форуме: Magister Yoda, vasilevradislav (+3 невидимых) |
eXeL@B —› Крэки, обсуждения —› Aipsin (ревесинг формата базы) |
Посл.ответ | Сообщение |
|
Создано: 20 июля 2015 22:43 · Поправил: plan-b · Личное сообщение · #1 Есть такая прога - aipsin.com - база данных для сотрудников трёхбуквенных контор по разным аспектам наркотических средств (списки запрещённых, спектры, свойства, методики анализа, и т.д.). http://aipsin.com (за ссылкой на скачивание - в ЛС) Сперва направления исследования разделились: один товарищ стал отламывать USB ключ guardant, другой обнаружил что база (mdb) непошифрована и стал переносить её в mysql. Оба подхода дали результат - guardant отломан, база перенесена. Тут образ VM с установленной и отломаной: https://yadi.sk/d/SD-BCLmghvcbK (пароль заинтерисовавшимся через ЛС) а тут наработки по приделыванию web интерфейса к mysql базе: http://755izzxlxk452qr2.onion/aipsin/index.php Кроме самой базы (для примера 180.d) есть ещё 'архивы' с всякими полезными pdf (184d.*) - это просто куча pdf записаных подряд, а в конец дописана таблица с их размещением. Формат таблицы простой: 4 последних байта = количество записей, перед ней 20-байтные 'записи' в которых в последих 2 dword указано смещение в файле и длина. Назначение первых 3-х dword непонятно. Вот пример записи: файл 184d.40 f1=0x62EE35AB f2=0 f3=0 offs=96690389 len=338497 (в некоторых случаях поля f2 и f3 не равны 0, поля f1 соседних записей отличаются на 1 в первом байте). По указанному смещению лежит pdf. Этот же pdf имеется в базе 180.d таблица Sections: Index=41472 Name=Phentermine Теперь собственно проблема: нужно установить соответствие между файлом из 'архива' и записью в базе. (В оригинальном интерфейсе конечно оно соответствует) Похоже, что в 'архиве' этой информации нет (либо хорошо спрятано) - следовательно в базе. Для этого даже есть подходящее поле (e_DateLine) ибо содержимое остальных полей уже разобрано. Вот оно: Code:
Стало быть задача 1 - узнать где хранится соответствие файл - Index в базе и задача 2 - что храниться в поле e_DateLine (и других аналогичных полях в других таблицах) P.S. Предполагается обсужление технической части, а не морально этических аспектов такого исследования, и выкладывания сей базы в паблик. Добавлено спустя 7 минут Собственно предварительный план действий (сомнительный на мой взгляд) 1. поставить бряк на ReadFile (ProcMon показывает что количество чтений из базы небольшое) 2. Отловить момент, когда будет прочитан фрагмент, содержащий нужное поле 3. Поставть бряк на чтение памяти. 4. Вероятно, сработает в недрах движка, парсящего mdb формат. Непонятно, как найти кусок, который что-то полезное делает с самими данными из поля... |
|
Создано: 20 июля 2015 23:03 · Личное сообщение · #2 plan-b пишет: один товарищ стал отламывать USB ключ guardant, другой обнаружил что база (mdb) непошифрована и стал переносить её в mysql. Оба подхода дали результат - guardant отломан, база перенесена. Респект! plan-b пишет: файл 184d.40 f1=0x62EE35AB f2=0 f3=0 offs=96690389 len=338497 f1 наверно какой-то идентефикатор файла plan-b пишет: Вероятно, сработает в недрах движка, парсящего mdb формат По стеку можно прогуляться и выцепить первичную функцию чтения с параметрами. p.s. Надо качать и разбираться |
eXeL@B —› Крэки, обсуждения —› Aipsin (ревесинг формата базы) |