Сейчас на форуме: vsv1, r0lka, -Sanchez-, testrev1337, johnniewalker (+3 невидимых)

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

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

Создано: 12 февраля 2010 15:59
· Личное сообщение · #1

Здравствуйте я новичок, поэтому много ещё не знаю, и возможно не в той теме разместил сообщение. Собственно у меня вопрос:
Есть в общем одна игра, она состоит из 1 ехе и 1 dat файла. Мне уже удалось написать распаковщик для dat архива в нём содержаться: TEXT.US(весь игровой текст), IM000000-0000035.PCM и Y01-100.ANM. Поиски в интернете помогли определить что файлы с расширением PCM содержат в себе звук а файла с расширением ANM содержат в себе анимацию(последовательность кадров как например в gif файле). Собственно теперь вопрос подскажите как отслеживать работу программы что бы в последствии можно было написать конвертер АNM ->GIF(либо последовательность BMP)->ANM. Извините, что вышло сумбурно. Просто информации по реверсированию форматов файлов практически не существует, а те крупицы, что есть очень сложны, в понимании.
P.S. На filext.com/file-extension/ANM
DeluxPaint (Animation) – The identifying characters used for this association are - Hex: 4C 50 46 20 00 01 , ASCII: LPF. В моём случае заголовок файла состоит из 19 нулевых байт затем идёт один байт в некоторых файлах он одинаковый в некоторых разный, скорей всего это указатель количества кадров в файле. (Найти идентификатор LPF не удалось)
Jazz Jackrabbit 2 (Title Sets Images) by Epic Games, Inc. Тоже маловероятно, потому что игра которую я разбираю японского происхождения, скорей всего там свой формат используется.
Dragon UnPACKer и подобного рода распаковщики не находят ничего.
p.p.s. Ссылку на игру я не разместил т.к. маловероятно кто возьмётся за такой гимор, на сколько мне известно зарубежные товарищи потратили несколько месяцев на то чтобы реверсировать этот формат, правда от другой версии игры, которая не совместима с моей, я пытался с ними связаться, но безуспешно. Я не прошу готового решения, просто объясните по возможности, в какую строну мне копать , или где ещё можно найти информацию на эту тему.



Ранг: 38.1 (посетитель), 4thx
Активность: 0.030
Статус: Участник

Создано: 12 февраля 2010 16:02
· Личное сообщение · #2

А в чем цель копания?



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

Создано: 12 февраля 2010 16:04
· Личное сообщение · #3

Написать конвертер АNM ->GIF(либо последовательность BMP)->ANM а для этого видимо надо понять как программа работает над этим форматом.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 12 февраля 2010 16:17
· Личное сообщение · #4

predtech пишет:
P.S. На filext.com/file-extension/ANM DeluxPaint (Animation) – The identifying characters used for this association are - Hex: 4C 50 46 20 00 01 , ASCII: LPF. В моём случае заголовок файла состоит из 19 нулевых байт

ну, то что он имеет такое расширение - это не значит что это такой же тип...

общая схема реверса - это тебе нужно найти место в програме где читается этот файл, а после должно идти считывание с него определеных структур/блоков, вот это тебе и нужно найти...
для этого тебе нужно уметь пользоватся отладчиком, ну или как некоторые любят исспользовать IDA для анализа )

-----
Лучше быть одиноким, но свободным © $me





Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 12 февраля 2010 16:33 · Поправил: OKOB
· Личное сообщение · #5

http://www.file-extensions.org/search/?searchstring=anm
http://www .wotsit.org/list.asp?search=anm&button=GO%21

-----
127.0.0.1, sweet 127.0.0.1





Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 14 февраля 2010 04:42
· Личное сообщение · #6

если это японская новелла, то вполне вероятно, что она использует какой-то известный движок, для которого существуют тулзы по переводу.
Так что советую всё-таки озвучить ссылку на игрушку, чтобы разговор стал более предметным



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

Создано: 14 февраля 2010 18:34
· Личное сообщение · #7

Спасибо всем кто ответил. Да это была визуальная новелла серии Viper. В общем, я пришёл к выводу, что разбор формата ANM не нужен т.к. в принципе графики там для редактирования мало. Пришлось помучаться с форматом скрипта, но пара часов в HEX редакторе помогла разобраться. У меня сейчас возник другой вопрос. Решил попробовать разобрать игру Kara no Shoujo vndb.org/v810 , с целью перевода её в будущем, когда выйдет английский перевод. Графика нормально распаковывается и запаковывается программой AnimED, а вот файлом скрипта тяжелее, это тоже DAT файл с заоголовком PACKDAT как и все остальные архивы в игре :
00000000 50 41 43 4B 44 41 54 2E 01 04 00 00 01 04 00 00 PACKDAT.........
00000016 69 39 35 5F 30 31 2E 74 78 00 00 00 00 00 00 00 i95_01.tx.......
00000032 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000048 40 C0 00 00 00 00 00 20 62 00 00 00 62 00 @А..... b...b.

50 41 43 4B 44 41 54 -Это заголовок (первые 7 байт)
2E 01 04 - это не пойму, что, возможно смещение
01 04 – Количество файлов в архиве
i95_01.tx – Название файла.
Остальное я пока не разобрал, т.к. в скрипте содержаться только иероглифы а ни WinHex ни Hex Workshop не отображают иероглифы, даже если выбрать юникод и нужный шрифт, поэтому я не могу ни одного байта модифицировать в скрипте, ведь могу случайно модифицировать какие-нибудь управляющие байты. И не знаю, как теперь извлечь текст нормально, AnimED извлекает не читабельный скрипт (файл точно не зашифрован т.к. программа ExtractData извлекает практически нормальный скрипт, но после упаковки его, игра перестаёт запускаться)
Ещё интересует вопрос:
Какими API функциями производится чтение файла и его содержимого я знаю только такие (CreateFile, CreateFileMapping, OpenFile).
P.S. Извиняюсь за сумбурное изложение своих мыслей.
Если кому-то интересно вот прилагаю файл script.dat www.mediafire.com/?ynhkhnjoe04
Саму игру я нашёл только на torrents.ru . На сколько мне известно люди, которые переводят игру на английский разобрались с этой проблемой, но мне пока что хочется своими силами разобраться, иначе опыта не наберусь никогда.



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 16 февраля 2010 11:08
· Личное сообщение · #8

>>Ещё интересует вопрос:
Какими API функциями производится чтение файла и его содержимого я знаю только такие (CreateFile, CreateFileMapping, OpenFile).
1) пишешь в браузере google.com
2) пишешь Msdn read file
3) получаешь одну из строк "VPF::Файл не читается с помощью ReadFile - Форум программистов"
4) так ты узнал, что файл можно читать спомощью ф-ции ReadFile
5) вводишь msdn readfile
6) Читаешь по-буржуйски описалово как тебе юзать эту ф-цию

-----
My love is very cool girl.




Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 16 февраля 2010 11:16 · Поправил: HiEndsoft
· Личное сообщение · #9

работа с файлом сводится к (натив):
NtCreateFile - NtReadFile - NtWriteFile - NtDeviceIoControlFile и иже с ними.
если же API: можно даже использовать DeviceIoControl с IoControlCode с префикса FSCTL_ (raw mode)

-----
продавец резиновых утёнков




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 16 февраля 2010 13:10
· Личное сообщение · #10

theCollision пишет:
Читаешь по-буржуйски описалово как тебе юзать эту ф-цию


Можно и на родном и переведено не на "коленке".
social.msdn.microsoft.com/Search/ru-RU/?Refinement=15&Query=readfile



Ранг: 74.1 (постоянный), 34thx
Активность: 0.030
Статус: Участник

Создано: 16 февраля 2010 15:04
· Личное сообщение · #11

HiEndsoft
боюсь так углублятся ТС рановато

predtech
Как в свое время я реверсил:
Береш апи шпиона (я юзал свой API Logger), оставляешь в нем для логирования только функции CreateFileA/W, ReadFile, CloseHandle
запускаешь в нем игру, появится лог.

смотришь, где в параметре имя твой файла с ресурсами, и адрес откуда идет вызов. Потом грузишь ехе в ида и изучаешь
можно сразу бряк в оле на CreateFile, но левых вызовов будет много

Тут есть подводные камни, вызов CreateFile будет идти, скорее всего из библиотечной функции, поэтому надо подняться "выше" и выйти в материнскую функцию, это можно сделать в той же оле, потом реверсишь сам код




Ранг: 324.3 (мудрец), 221thx
Активность: 0.480.37
Статус: Участник

Создано: 17 февраля 2010 02:59
· Личное сообщение · #12

SetFilePointer нужно добавить для апи шпиона. Ибо часто проги читают несколько раз из одного файла по разным смещениям. Это побочный эффект многоклассовой структуры кода...

-----
IZ.RU



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


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