Chief-NET

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Chief-NET » Базовый хакинг » помогите разобрать лангпак


помогите разобрать лангпак

Сообщений 1 страница 7 из 7

1

линк
таблица:

Код:
01= 
02=!
03="
04=#
05=$
06=%
07=&
08='
09=(
0A=)
0B=*
0C=+
0D=,
0E=-
0F=.
10=/
11=0
12=1
13=2
14=3
15=4
16=5
17=6
18=7
19=8
1A=9
1B=:
1C=;
1D=<
1E==
1F=>
20=?
21=@
22=A
23=B
24=C
25=D
26=E
27=F
28=G
29=H
2A=I
2B=J
2C=K
2D=L
2E=M
2F=N
30=O
31=P
32=Q
33=R
34=S
35=T
36=U
37=V
38=W
39=X
3A=Y
3B=Z
3C=[
3D=\
3E=]
3F=^
40=_
41=`
42=a
43=b
44=c
45=d
46=e
47=f
48=g
49=h
4A=i
4B=j
4C=k
4D=l
4E=m
4F=n
50=o
51=p
52=q
53=r
54=s
55=t
56=u
57=v
58=w
59=x
5A=y
5B=z

не пойму, или поинтеры как-то хитро хранятся или вообще в другой файле :/

2

Почему в таблице не указаны символы концов строк?

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

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

3

Спасибо.
По правде говоря, проект не мой, просто пытаюсь помочь человеку разобраться, но не всё понятно самому, вот и решил здесь попросить совета.
Похоже, что:
0xFEFF - разрыв строки
0xFFFF - в начале каждой строки
0x00 - конец строки.

4

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

Отредактировано TrickZter (2012-01-09 11:39:23)

5

Вот и я про то же самое подумал. Как-то уж слишком странно всё организовано. Плюс периодически в строке какие-то доп. символы встречаются. Короче надо качать ром и смотреть самому, что там рядом с лангпаком лежит.
Да, игра вот эта: http://gbx.ru/index.php?showtopic=73936
Спасибо, что глянул. Думаю, это ещё не конец  :ph34r:

6

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 столбце числа идут по возрастанию. Не обязательно без пропусков или повторений. Сразу думал, что это что-то вроде номеров сообщений, но нет, изменение ведет к похожим сдвигам, как и со вторым столбцом. Так что скорее всего это старший разряд в числе, означающем позицию в файле. Хотя, хрен там, тогда числа идут не всегда по возрастанию.
Вроде пока все)

Отредактировано Badguysol (2012-01-10 02:23:23)

7

TrickZter
Спс за ответы. Хотелось бы поподробнее узнать о размере вложенного файла.

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

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

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

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

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

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

Отредактировано TrickZter (2012-01-10 09:41:56)


Вы здесь » Chief-NET » Базовый хакинг » помогите разобрать лангпак