![]() |
eXeL@B —› Вопросы новичков —› Распаковать Interface.dat |
Посл.ответ | Сообщение |
|
Создано: 30 октября 2011 13:48 · Личное сообщение · #1 Есть электронная книга: http://www.multiupload.com/YQ5RTOE9OJ Есть Run.exe, написана на Delphi И interface.dat, где хранятся файлы. Каком образом упаковано понять не могу, но там точно есть папки (html, jpg, jpg_) и файлы. Пробовал DeDe для декомпиляции ехе, но знаний не хватает понять алгоритм. Одно что понял, что все должно находится в папке Run, иначе программа закрывается. Вопрос как распаковать interface.dat или хоть в какую сторону копать? ![]() |
|
Создано: 30 октября 2011 13:50 · Личное сообщение · #2 |
|
Создано: 30 октября 2011 14:19 · Личное сообщение · #3 |
|
Создано: 30 октября 2011 15:19 · Поправил: gazlan · Личное сообщение · #4 volser пишет: понять алгоритм Вероятнее всего, нечто на основе ZLib (но не сама библиотека в "чистом" виде). Натравить IDR и посмотреть дерево классов. Обратить внимание на TComprStream ![]() ![]() |
|
Создано: 30 октября 2011 16:41 · Личное сообщение · #5 Ну этот класс TComprStream я нашел и пр помощи ДеДе. Попробовал открыть файл при помощи zlib 1.23 Ошибка вылете здесь: Code:
не хватает знаний асма, что бы понят в чем отличия этого метода в ехе inflate думаю навряд что как-то правил, возвращает код -3, ![]() |
|
Создано: 30 октября 2011 16:44 · Личное сообщение · #6 |
|
Создано: 30 октября 2011 17:50 · Личное сообщение · #7 |
|
Создано: 30 октября 2011 19:01 · Личное сообщение · #8 |
|
Создано: 30 октября 2011 19:12 · Личное сообщение · #9 |
|
Создано: 30 октября 2011 19:53 · Личное сообщение · #10 |
|
Создано: 30 октября 2011 19:54 · Личное сообщение · #11 |
|
Создано: 30 октября 2011 20:33 · Личное сообщение · #12 |
|
Создано: 31 октября 2011 00:15 · Поправил: gazlan · Личное сообщение · #13 volser пишет: Попробовал открыть файл при помощи zlib 1.23 Zip-stream начинается с маркера в позиции 08 (2 байта - метод компрессии - Best), перед ним 8 байт, в которых, возможно, хранится длина блока, unpacked size итп - надо разбираться. Если Zip-поток не зашифрован, то распаковку надо начинать с позиции 0Ah (подать блок в inflate). Различия между версиями ZLib есть, но после 1.04 - незначительные. С вероятностью 0.99 все, что упаковано версией 1.13 и старше, будет успешно распаковано последней версией ZLib. Update. НЕ зашифрован, спокойно распаковывается. Выделяем первый блок (с небольшим запасом - до следующего маркера 78 DA), суем в inflate - и voila! UnDeflate v1.00 Beta 1 - Deflate data decompressor Name: undf1001.zip URL: ftp://ftp.sac.sk/pub/sac/pack/undf1001.zip Size: 22917 ![]() ![]() |
|
Создано: 31 октября 2011 20:03 · Личное сообщение · #14 |
|
Создано: 31 октября 2011 20:48 · Личное сообщение · #15 |
|
Создано: 02 ноября 2011 21:49 · Личное сообщение · #16 |
|
Создано: 02 ноября 2011 23:13 · Личное сообщение · #17 |
|
Создано: 03 ноября 2011 02:25 · Личное сообщение · #18 |
|
Создано: 04 ноября 2011 21:03 · Личное сообщение · #19 volser пишет: если больше, то все равно результат не меняется, дальше просто отрубает Разумеется. Inflate доходит до конца сжатого потока и останавливается. Судя по контексту, похоже на каталог собственной файловой системы. IMHO, дальше требуется не гадание с Undeflate, а вдумчивый анализ кода в отладчике: сопоставить каталог с файлом данных, определить границы файлов, попытаться сначала сдампить RAW-blocks, затем расшифровывать/распаковывать по отдельности (внешними утилитами). Если все ОК, писать собственный распаковщик. Совершенно необязательно, чтобы все блоки обрабатывлись одинаково. Возможно, например, что каталог незашифрован, а все остальные блоки - зашифрованы. Debugger is your best friend! ![]() ![]() |
|
Создано: 04 ноября 2011 22:11 · Личное сообщение · #20 |
|
Создано: 05 ноября 2011 01:38 · Поправил: Qbik · Личное сообщение · #21 http://aluigi.altervista.org/mytoolz/offzip.zip A very useful tool to unpack the zip (zlib/gzip/deflate) data contained in any type of file included raw files, packets, zip archives, executables and everything else. it's needed only to specify the offset where the zip data starts or using the useful -S search options able to find any possible zip block contained in the provided file. there are also other options for extracting all the zip blocks which have been found or dumping them as in their original compressed form. it's also possible to choose a windowBits value for scanning both the zlib (RFC1950) and deflate (RFC1951) blocks (for example -z -15 for common zip files and so on). the files will be dumped with a guessed extension that can be useful for their quick identification. how to dump all the zlib compressed files in an archive: - offzip.exe -a input_archive output_folder 0 how to dump all the deflate compressed files in an archive: - offzip.exe -z -15 -a input_archive output_folder 0 Рипает все что пожато Zlib'om внутри архива. На выходе получилось 1200+ файлов. ![]() |
|
Создано: 07 ноября 2011 00:06 · Личное сообщение · #22 |
|
Создано: 07 ноября 2011 00:25 · Личное сообщение · #23 |
|
Создано: 07 ноября 2011 00:48 · Личное сообщение · #24 |
|
Создано: 07 ноября 2011 10:51 · Личное сообщение · #25 |
|
Создано: 07 ноября 2011 12:37 · Поправил: Tyra · Личное сообщение · #26 |
|
Создано: 07 ноября 2011 14:46 · Личное сообщение · #27 |
|
Создано: 08 ноября 2011 00:10 · Поправил: volser · Личное сообщение · #28 |
|
Создано: 09 января 2012 19:14 · Личное сообщение · #29 |
|
Создано: 09 января 2012 19:40 · Личное сообщение · #30 |
![]() |
eXeL@B —› Вопросы новичков —› Распаковать Interface.dat |
Эта тема закрыта. Ответы больше не принимаются. |