eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: rmn, viksabur, vitlgt (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Крэки, обсуждения —› Исследование следов программ
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Статус: Участник

Создано: 27 декабря 2008 01:37 New!
Цитата · Личное сообщение · #1

Just for fan работаю над проектом decThumbsDBViewer (http://wincmd.ru/plugring/decThumbsDBViewer.html). Суть – просмотр содержимого кэша (файлов типа thumbs.db) различных графических программ в наглядной форме. Смысл – посмотреть, чем же занимался субъект в свободное (или рабочее) время. Кому это надо – криминалисты или просто любопытные товарищи. В данное время данный продукт позволяет просмотреть кэш около 20 программ. Периодически я встречаю программы, кэш которых я не могу декодировать по причине сложности формата. К сожалению, мои познания (точнее их отсутствие) в реверсе не позволяют мне заглянуть внутрь исполняемого файла, что бы на основе кода составить описание формата. К чему я все это пишу – возможно, у кого-нибудь есть совокупность свободного времени/желания поковыряться с какой-нибудь программой/отсутствия других проектов, и этот кто-нибудь захочет мне помочь? Поскольку проект freeware`ный, то вебманей или же альтернативных прелестей капиталистического строя я предложить не могу, но строчка в readme.txt и в окошке About гарантирована. Меня вполне устроит словесное описание, какой байт за что отвечает. Если кому-либо это будет интересным, то пишите в личку или здесь.

Ранг: 0.2 (гость)
Статус: Участник

Создано: 20 марта 2009 11:38 New!
Цитата · Личное сообщение · #2

Непротив помочь в меру возможностей. Есть опыт крекинга и раскопок по форматам файлов в силу специфики работы. Опиши более подробно в чем нужна помощь(nssven собака gmail.com).


Ранг: 481.4 (мудрец)
Статус: Участник
Тот самый :)

Создано: 20 марта 2009 13:34 · Поправил: Hexxx New!
Цитата · Личное сообщение · #3

Dec_ пишет:
Just for fan

Мдаа... работать для фена... Бытовые электроприборы уже поработили мир!

p.s. just for fun


Ранг: 990.3 (! ! !)
Статус: Модератор
Author of DiE

Создано: 20 марта 2009 13:50 · Поправил: Hellspawn New!
Цитата · Личное сообщение · #4

Dec_
а какой формат в данный момент разбираете?

Hexxx пишет:
Мдаа... работать для фена... Бытовые электроприборы уже поработили мир!


вентилятор скорее))) или кулер.

Ранг: 0.4 (гость)
Статус: Участник

Создано: 20 марта 2009 18:17 New!
Цитата · Личное сообщение · #5

В данный момент я работаю над программой CompuPic (http://www.photodex.com/files/cpro32.exe, 6.28 MB). Она создает в своей директории файл def.phd, содержащий пути файлов и эскизы изображения. Структура начинается с сигнатуры “Photodex File Mirror 1.00”. Начиная со смешения 0x28 начинается заголовок:

Code:
  1.   TdecCompuPicDBHeader = packed record
  2.     Unknown1: DWORD;
  3.     Unknown2: DWORD;
  4.     Unknown3: DWORD;
  5.     Unknown4: DWORD;
  6.     Unknown5: DWORD;
  7.     Unknown6: DWORD;
  8.     Unknown7: DWORD;
  9.     Unknown8: DWORD;
  10.     Unknown9: DWORD;
  11.     CatItemCount: DWORD; // Количество записей
  12.     Unknown10: DWORD;
  13.     Unknown11: DWORD;
  14.     Unknown12: DWORD;
  15.     Unknown13: DWORD;
  16.     Unknown14: DWORD;
  17.     Unknown15: DWORD;
  18.     Unknown16: DWORD;
  19.     Unknown17: DWORD;
  20.     Unknown18: DWORD;
  21.     Unknown19: DWORD;
  22.     Unknown20: DWORD;
  23.     Unknown21: DWORD;
  24.     Unknown22: DWORD;
  25.     Unknown23: DWORD;
  26.   end;


Далее следуют записи в количестве CatItemCount. Формат записи:

Code:
  1.   TdecCompuPicDBCatItem = packed record
  2.     Index: DWORD;
  3.     Offset: DWORD;
  4.   end;


Каждой записи сопоставлен сегмент с индексом Index и смещением от начала файла Offset. Разные сегменты имеют разную структуру. Часть сегментов предназначена для хранения FAT. Сегменты, описывающие каталоги. имеют следующую структуру: сначала идет заголовок.

Code:
  1.   TdecCompuPicDBSegmentHeader = packed record
  2.     Unknown1: DWORD;
  3.     Unknown2: DWORD;
  4.     Unknown3: DWORD;
  5.     DecsIndex: DWORD; // Ссылка на сенмент с описанием данной директории
  6.     SelfIndex: DWORD; // Index данной директории
  7.     Unknown4: DWORD;
  8.     Unknown5: DWORD;
  9.     SegmentSize: DWORD; // Размер данных в данном сенменте
  10.   end;


Далее следуют записи с описанием дочерних элементов в количестве SegmentSize div SizeOf(TdecCompuPicDBFileItem). Структура записи:

Code:
  1.   TdecCompuPicDBFileItem = packed record
  2.     Width: Word; // Ширина кэшируемого изображения
  3.     Height: Word; // Высота кэшируемого изображения
  4.     Unknown1: DWORD;
  5.     Unknown2: DWORD;
  6.     FileSize: DWORD; // Размер кэшируемого файла
  7.     Unknown3: Word;
  8.     ChildIndex: Word; // Если <> 0, то данная запись опивывает каталог,
  9.                          // и эта величина является "хитрым" индексом сегмента с опиманием каталога
  10.                          // иначе данная запись описывает файл.
  11.     LMTime: DWORD; // Дата последней модификации кэшируемого файла в формате DosTime
  12.     Unknown4: DWORD;
  13.     Unknown5: DWORD;
  14.     Unknown6: DWORD;
  15.     Unknown7: DWORD;
  16.     FileNameIndex: Word; // Порядковый номер описателя
  17.     FileName: packed array[0..12] of AChar; // Короткое имя кэшируемого файла
  18.     BitDepth: Byte; // Глубина цвета кэшируемого изображения
  19.     Unknown8: DWORD;
  20.     Unknown9: DWORD;
  21.   end;


Если ChildIndex <> 0, то индекс сегмента с описанием каталога высчитывается по формуле 0xFFFFFC00 - 0x10 * ChildIndex.

Начальным сегментом, содержащим корневую директорию, является сегмент с индексом 0xFFFFFC00.

Многое, конечно, здесь не описано, но вышеупомянутых данных хватает для восстановления полного дерева. Но я ни как не могу понять, где находятся ссылки на сегменты, содержащие эскизы, соответствующие конкретным файлам. Сами эскизы находятся в сегментах с положительными номерами. Могут быть как в jpeg, так и в bmp без заголовков. Вот собственно говоря в этом и проблема.

Могу предоставить исходник на Delphi.

Ранг: 203.3 (наставник)
Статус: Участник
UPX Killer -d

Создано: 20 марта 2009 21:39 New!
Цитата · Личное сообщение · #6

Dec_, cкажите пожалуйста, какими методами исследуете структуры файлов?

Я сейчас занимаюсь аналогичной задачей. Есть некий каталогизатор файлов. И есть у меня привычка (а у DownloadManager'a возможность) класть рядом с закаченым файлом пользовательское описание в формате ТХТ. И чтобы вручную не перебивать описания в каталогизатор, я решил исследовать формат базы и написать автоматизированное добавление описаний.

Делаю просто: открываю файл в хэкс редакторе, выделяю байты, и пытаюсь догадаться что они значат исходя из соображений обязательного присутствия в данных некоторых известных величин. Т.е. в духе "если бы это делал я, то было бы так...".

Конечно, авторские технические структуры и формулы угадывать сложно...

Ранг: 0.2 (гость)
Статус: Участник

Создано: 20 марта 2009 22:11 New!
Цитата · Личное сообщение · #7

Hexxx пишет:
Мдаа... работать для фена.
А что в этом плохого? Считаю, что программирование живет только за счет just for fun работы, иначе бы не имелось в свободном доступе такого кол-ва библиотек и приходилось бы все писать самостотельно.

Dec_ , описание вашей работы на данный момент понял. Попробую просмотреть формат данных файлов. Предлагаю дальнейшее общение по emailу.

Ранг: 0.4 (гость)
Статус: Участник

Создано: 20 марта 2009 22:13 New!
Цитата · Личное сообщение · #8

2AlexZ:
Методы не отличаются от Ваших. WinHex.exe + Filemon.exe - самые универсальный инструменты. А какая программа-каталогизатор?

Ранг: 203.3 (наставник)
Статус: Участник
UPX Killer -d

Создано: 20 марта 2009 23:23 New!
Цитата · Личное сообщение · #9

Dec_ пишет:
А какая программа-каталогизатор?

WinCatalog Lite. Очень приятная бесплатная программа, не перегруженная лишним: мне нравится софт, который можно пользовать "на лету", без всяких ковыряний-изучений. А вот такой функции, как подгрузка файлов-описаний, нету.
 eXeL@B —› Крэки, обсуждения —› Исследование следов программ

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS