Сейчас на форуме: testrev1337, vsv1, 2nd, bedop66938 (+7 невидимых)

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

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

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

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



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

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

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



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

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

Dec_ пишет:
Just for fan

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

p.s. just for fun

-----
Реверсивная инженерия - написание кода идентичного натуральному





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

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

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

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


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

-----
[nice coder and reverser]




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

Создано: 20 марта 2009 18:17
· Личное сообщение · #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 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

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

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

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

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

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

-----
Я медленно снимаю с неё UPX... *FF_User*




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

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

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

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



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

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

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



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

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

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

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

-----
Я медленно снимаю с неё UPX... *FF_User*



 eXeL@B —› Крэки, обсуждения —› Исследование следов программ
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати