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

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

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

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

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


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

Угу, спс за прогу. В своей тоже переключил к виду "16 на строку".

Также спасибо enz° за прогу и потраченное время на объяснение.

Получилось таки изменить две надписи. В игре уже проверил - работает. Рад безмерно :D

PS:

Планирую сделать небольшой наглядный мануальчик по смещениям для абсолютных новичков.

Разжевать подробно.

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

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


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

Сделал небольшой видео ролик-слайд шоу по теме.

Целевая аудитория - народ редко сталкивавшийся с HEX редакторами, но желающий получить знания. :D

Содержание - на примере показываю как перевести фразу, с помощью подмены ссылок.

http://sendfile.su/313348 - 22 мегабайта - слайд шоу, минимум анимации.

http://sendfile.su/313351 - 80 мегабайт - видеоролик, присутствует анимация.

По ссылкам лежат EXE файлы. В ЕХЕ файле вшит ролик и сам плеер.

Выполнено в UVScreenCamera.

Если есть предложения и дополнения, высказывайтесь.

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

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


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

Ну необязательно складывать значение строки и столбика. :)

Насколько я знаю, во всех хекс редакторах есть графа где смещение показывается.

HxD

e9039ccc7e78t.jpg

010

e1fe1a810e07t.jpg

HexWorkshop

e9b32be2b75bt.jpg

А так все правильно.

правда я че то сомневаюсь, что тому кто сам до этого не додумал ролик поможет .:)

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


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

MeteoraMan, спс буду знать.

Тут вот возник такой вопрос - Как добавить в готовый экзешник еще одну секцию?

Предположим, что оригинальный экзе файл забит до отказа и места нет, значит нужно создать еще свободного места. А вот как это сделать, чтобы экзешник не перестал работать корректно. :D

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


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

Разве так сложно погуглить? Любой нормальный PE редактор, оптимальный выбор - PE Tools.

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


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

ToXa

сделай плз небольшой тутор, для нас, деревянных. :)

Мне када надо было ,я гуглил, но ничего не понял, как то случайно получилось добавить.

Охота научится делать это правильно. :)

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

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


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

Напомни в асе, сделаю

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


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

А как узнать указатель на строку, если текст хранится в отдельном файле?

Например, в Legend of Kyrandia нужно от адреса начала строки отнять 2А и получим указатель. Почему именно 2А и как узнать, что надо отнимать?

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


Ссылка на сообщение
А как узнать указатель на строку, если текст хранится в отдельном файле?
Видишь ли, в данной теме до стих пор обсуждался перевод текста внутри исполняемого файла. Если же необходимо перевести текст в каком-то внешнем файле ресурсов, то необходимо разбирать его формат либо искать в интернете уже готовые утилиты для работы с ним. При этом в исполняемом файле никаких "указателей" править не нужно. А в файле ресурсов наверняка придётся править не одно значение... но это зависит от конкретного формата. Здесь принцип будет кардинально отличаться от перевода EXE.
Например, в Legend of Kyrandia нужно от адреса начала строки отнять 2А и получим указатель. Почему именно 2А и как узнать, что надо отнимать?
Только опытным путём:

1) находим строку, находим указатель на неё

2) находим следующую строку, находим указатель

3) пытаемся найти закономерность.

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

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


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

Ссылка на Rova.exe , та что в теме давно сдохла, а прога в хозяйстве полезная

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


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

Подскажите, пожалуйста, кто-нибудь, как удлинить хотя бы на один символ строку вот в таком файле с раcширением .PL ?
Ссылка на файл.
Конкретно — если открыть этот бинарный файл через Notepad++, то в строке 5177 мне нужно при переводе увеличить слово "tueur" c 5 до 6 символов (чтобы в переводе вместо"tueur" стало “slayer”).  Но  найти в этом файле указатели на нужные  строки или ограничитель символов у меня не получается. 
Сложность в том, что ни одна из предложенных программ (OllyDbg,  OgreGui,  Radialix) этот формат  не понимает. Может есть какой-то более простой вариант снять ограничение на количество символов в этом файле?

 

 

Изменено пользователем nemo-gp

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


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

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

13 часов назад, nemo-gp сказал:

Конкретно — если открыть этот бинарный файл через Notepad++, то в строке 5177 мне нужно при переводе увеличить слово "tueur" c 5 до 6 символов (чтобы в переводе вместо"tueur" стало “slayer”).

Например, оффсет этой строки 0x25d5, внутри файла он на 0x7a78e. Дальше сообразить, если понимание есть, проблем не должно составить.

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

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


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

@XiGMA <Большое человеческое спасибо за отклик! Прошу извинить за совсем низкий уровень понимания. Если оффсет это адрес строки, то  видимо я как-то неправильно настроил hex редактор, или использую не совсем подходящий редактор (Hex editor Neo). В этом редакторе нужное место файла выглядит вот так. И адреса выглядят по-другому. Если вам не  сложно - можно чуть подробнее пояснить, что мне надо сделать? Мучаюсь с этим вопросом уже несколько дней. 

 

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


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

@nemo-gp  да нет, всё правильно. Хм, не уверен, что смогу нормально объяснить, но чутка попробую.
Та строка начинается на 0x7CA87.

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

Screenshot-2150.jpg 

0x7CA87 - 0x7a4b2 получаем 0x25d5, переходим на 0x7a4b2 и ниже ищем получившееся значение в перевёрнутом виде (d5250000). Оно на 0x7a78e, как и писал ранее. 

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

Screenshot-2148.jpg 

Тем не менее вычислять подобным образом адрес всех строк в файле не рекомендую, так как данный способ касается только этого файла и конкретно строк из таблицы, начинающейся с 0x7a4b2. 
Переходим туда.
Первые 4 байта (DA010000 -> 0x000001da (474)) - это количество строк. Каждые следующие 4 — адрес на начало строки, который, если смотреть внутри файла, нужно корректировать путём прибавления 0x7a4b2. Например, у первой там строки адрес следующий: 6C070000 -> 0x76c + 0x7a4b2 = 0x7AC1E, переходим по получившемуся адресу и обнаруживаем саму строки. А, если ещё вносить конкретику, то концом строки при таком раскладе считается 0x0, который идёт после неё.

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

Screenshot-2149.jpg 
Screenshot-2151.jpg 


P.S. По-хорошему это всё не так надо делать.

  • Спасибо (+1) 1

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


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

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

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

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

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

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

Войти

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

Войти сейчас



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

×