Без описания |
Поиск в теме | Версия для печати |
TrickZter |
Отправлено: 21 Января, 2016 - 07:26:25
|
Покинул форум
Сообщений всего: 560
Дата рег-ции: Июнь 2015
|
TrickZter
Почему в таблице не указаны символы концов строк?
В файле MTBL есть что-то похожее на поинтеры, но так как ты не указал символы концов строк, точно сказать не могу. Кстати, просто так расширять такие файлы нельзя, они представляют из себя контейнеры, в которых, в частности, указываются и размеры вложенных файлов (жёлтым выделен размер вложенного файла):
Если будешь увеличивать файл(ы) внутри контейнера, то нужно соответствующим образом менять заголовок контейнера, а именно - изменять значения адресов и размеров вложенных файлов. Лучше всего написать софтину для разборки/сборки контейнеров, это убережёт тебя от возможных ошибок при изменении размеров вложенных файлов. |
|
|
Badguysol |
Отправлено: 21 Января, 2016 - 07:29:51
|
Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2015
|
Badguysol
TrickZter
Спс за ответы. Хотелось бы поподробнее узнать о размере вложенного файла. Как конкретно менять эти 4 байта при изменениях размера файла.
Что мне удалось накопать:
Чтобы прочитать тексты, достаточно "увеличить" каждый байт в тексте на 31 - кодировка англ. букв и ряда других символов совпадет с ANSI.
Непосредственно тексты начинаются сразу после первой комбинации FF FF. Похоже, это начало строки.
FE FF - конец строки.
FE FF 01 80 FF FF - обычный переход на новую строку. Можно вставить вместо 6 значащих букв текста и получить знак энтера, ничего нигде не сбивается и ром работает дальше.
Попытка перенести существующие "энтеры" приводит к сбоям в тексте сообщения. Возможно, не всегда.
Попытки увеличить/уменьшить размер файла приводят к зависанию игры в момент загрузки файла.
FE FF 01 80 02 80 FF FF - базовый переход к новому сообщению. Можно вставить вместо любых 8 букв текста и разбить сообщение на 2 от того же персонажа.
Внутри конструкции могут содержаться различные данные, видимо, о цвете шрифта, персонаже, переходе к новой картинке и т.д. Крайне маловероятно, что там содержится длина сообщения.
В тексте встречаются "левые" символы. Первый такой тут:
UIFN,TFMWFT
themKselves при сдвиге на 31
В игре не отображается, хотя в другом месте выводил бы букву "К". Попытки убрать символ с его позиции приводят к зависанию игры в момент прогрузки файла.
Что-то похожее на абсолютные указатели есть в начале файла:
00 EO 80 00
41 A0 01 00
00 30 02 00
00 20 03 00
00 70 03 00
00 F0 03 00
00 A0 04 00
00 40 05 00
и т.д.
Изменения этих цифр ведут к сдвигам внутри отдельных групп сообщений в игре. Остальные группы сообщений при этом никак не затрагиваются. Т.е. изменив что-то в первой строке, можно похерить что-то только в первых 2-х сообщениях.
Уменьшение чисел ведет к тому, что может быть показан кусок прошлого сообщения. Увеличение - к тому, что не будет показан кусок текущего сообщения. В большинстве случаев просто вылазит еще и куча кракозябр до/после чего-нить (никогда внутри).
Так что энти байты комбинации скорее всего указывают на начала групп сообщений.
Также видно, что в 3 столбце числа идут по возрастанию. Не обязательно без пропусков или повторений. Сразу думал, что это что-то вроде номеров сообщений, но нет, изменение ведет к похожим сдвигам, как и со вторым столбцом. Так что скорее всего это старший разряд в числе, означающем позицию в файле. Хотя, хрен там, тогда числа идут не всегда по возрастанию.
Вроде пока все) |
|
|
TrickZter |
Отправлено: 21 Января, 2016 - 07:30:53
|
Покинул форум
Сообщений всего: 560
Дата рег-ции: Июнь 2015
|
TrickZter
Цитата:TrickZter
Спс за ответы. Хотелось бы поподробнее узнать о размере вложенного файла.
Заголовок файла легко просматривается визуально:
Размер всего пакета - h2FC9 байт, в заголовке указан размер h2FC9, то есть на h10 меньше, и эта величина как раз совпадает с третьей четвёркой байт, которая является или размером заголовка или поинтером на вложенный файл.
В данном случае внутри FBIN файла находится лишь один вложенный файл, но в других FBINах их может быть больше. Файлы могут быть вложены друг в друга, как матрёшка, и в данном случае оно, похоже, так и есть, хотя структура мне не совсем понятна.
Внутри чётко просматривается MTBL файл, в котором предположительно хрянятся поинтеры:
Если обрезать всё до MTBL, то поинтеры встанут ровно по 4-кам байт (все поинтеры выделены жёлтым цветом):
Что находится между MTBL и первым поинтером - пока не понятно. |
|
|
|
Поиск в теме | Версия для печати |
Страниц (1): [1] |
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0) |
« Базовый хакинг » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|