форум группы Chief-Net » » Базовый хакинг » Помогите разобрать лангпак

Страниц (1): [1]
 

1. lupus - 21 Января, 2016 - 07:25:18 - перейти к сообщению
lupus

линк

таблица: (Отобразить)


не пойму, или поинтеры как-то хитро хранятся или вообще в другой файле :/
2. TrickZter - 21 Января, 2016 - 07:26:25 - перейти к сообщению
TrickZter
Почему в таблице не указаны символы концов строк?

В файле MTBL есть что-то похожее на поинтеры, но так как ты не указал символы концов строк, точно сказать не могу. Кстати, просто так расширять такие файлы нельзя, они представляют из себя контейнеры, в которых, в частности, указываются и размеры вложенных файлов (жёлтым выделен размер вложенного файла):


Если будешь увеличивать файл(ы) внутри контейнера, то нужно соответствующим образом менять заголовок контейнера, а именно - изменять значения адресов и размеров вложенных файлов. Лучше всего написать софтину для разборки/сборки контейнеров, это убережёт тебя от возможных ошибок при изменении размеров вложенных файлов.
3. lupus - 21 Января, 2016 - 07:27:48 - перейти к сообщению
lupus
Спасибо.
По правде говоря, проект не мой, просто пытаюсь помочь человеку разобраться, но не всё понятно самому, вот и решил здесь попросить совета.
Похоже, что:
0xFEFF - разрыв строки
0xFFFF - в начале каждой строки
0x00 - конец строки.
4. TrickZter - 21 Января, 2016 - 07:28:24 - перейти к сообщению
TrickZter
Сейчас внимательнее поизучал файл - по координатам поинтеры никак не попадают на текст, да и слишком уж они круглые, скорее всего это что-то другое. Сам текст тяжело смотреть, коды между строками могут быть как концами строк, так и каким-то координатами, спецсимволами и т.д. Возможно среди кодов есть что-то вроде длин строк или поинтеров. Вероятно, что поинтеры хранятся вообще в другом файле.
5. lupus - 21 Января, 2016 - 07:28:54 - перейти к сообщению
lupus
Вот и я про то же самое подумал. Как-то уж слишком странно всё организовано. Плюс периодически в строке какие-то доп. символы встречаются. Короче надо качать ром и смотреть самому, что там рядом с лангпаком лежит.
Да, игра вот эта: http://gbx.ru/index.php?showtopic=73936
Спасибо, что глянул. Думаю, это ещё не конец :ph34r:
6. Badguysol - 21 Января, 2016 - 07:29:51 - перейти к сообщению
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 столбце числа идут по возрастанию. Не обязательно без пропусков или повторений. Сразу думал, что это что-то вроде номеров сообщений, но нет, изменение ведет к похожим сдвигам, как и со вторым столбцом. Так что скорее всего это старший разряд в числе, означающем позицию в файле. Хотя, хрен там, тогда числа идут не всегда по возрастанию.
Вроде пока все)
7. TrickZter - 21 Января, 2016 - 07:30:53 - перейти к сообщению
TrickZter
Цитата:
TrickZter
Спс за ответы. Хотелось бы поподробнее узнать о размере вложенного файла.

Заголовок файла легко просматривается визуально:


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

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

Внутри чётко просматривается MTBL файл, в котором предположительно хрянятся поинтеры:


Если обрезать всё до MTBL, то поинтеры встанут ровно по 4-кам байт (все поинтеры выделены жёлтым цветом):


Что находится между MTBL и первым поинтером - пока не понятно.

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®