Перейти к содержимому
Zone of Games Forum

Рекомендованные сообщения

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

вопрос к знающим: как изменить длинну строки?

Поделиться сообщением


Ссылка на сообщение

@XiGMA Благодарю за помощь и подробное пояснение с конкретными скриншотами действий! Только прочитав ваш  детальный предыдущий пост мне удалось разобраться и решить эту задачу. Нигде ответов на этот вопрос не получал. Мучался очень долго и почти отчаялся, а сейчас радости нет предела)) Мир не без добрых людей! Спасибо  еще раз  XIGMA!) 

Поделиться сообщением


Ссылка на сообщение

@XiGMA 

В 10.04.2024 в 22:32, XiGMA сказал:

Что-то я не уверен в том, как отвечать по некоторым причинам, но ладно…
@nemo-gp  там что-то вроде файла внутри файла, потому выжать много вряд ли выйдет. Открываем hex редактор, начало того, где нужный вам текст на 0x7a4b2 (условный 0). Первые 4 байта это количество строк, далее идёт таблица оффсетов на строки по 4 байта. Если это всё дело смотреть внутри файла, то строку искать по 0x7a4b2 + оффсет нужной строки.
 

 

Подскажите, пожалуйста еще один момент. Как вы в том случае определили, что  условный ноль  это именно — 0x7a4b2 ?      Хочу попробовать изменять длину строк в другой части этого же файла и понять, как найти условный ноль уже для этой новой задачи. Есть ли, применительно к этому файлу,  какой-то полу — универсальный принцип нахождения условного ноля?    Или эта методика подходила только к той первой ситуации, что вы помогли мне решить?  Если конкретно, то возникла потребность вычислить адрес и изменить длину предложения вот в этом месте.  

 

Поделиться сообщением


Ссылка на сообщение
1 час назад, nemo-gp сказал:

Как вы в том случае определили, что  условный ноль  это именно — 0x7a4b2 ?

Опыт помог, наверное. А так просто видно было, что среди строк «странных» байт не было, к тому же пролистав вверх, нашлось что-то похожее на таблицу адресов, которая после проверки ей и оказалась. Проверить можно, например, путём сравнения расстояния между первой и второй строки, что идёт после таблицы, с разницей первых двух значений в таблице, или 2 и 3, так как первое значение может оказаться количеством строк в таблице, что проверяется через сравнение размера таблицы и первого значения, умноженного на 4. Да и оно обычно сильно меньше последующих. Метод не уникален, но по сути должна соблюдаться структура: таблица адресов + строки.
 

1 час назад, nemo-gp сказал:

Если конкретно, то возникла потребность вычислить адрес и изменить длину предложения вот в этом месте.  

Там, к сожалению, сложнее. Вообще судя по тому, что вижу, размер строки обозначен 2 байтами до неё. Но просто так менять их не стоит, ибо файл очень вероятно сломается из-за своеобразной структуры. Но может и прокатит, проверить стоит.

Скрытый текст

1600 → 0x0016 →  22, это соответствует размеру строки + 0.
Editor2.jpg
 



 

Изменено пользователем XiGMA

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас



Zone of Games © 2003–2024 | Реклама на сайте.

×