BlackStar Localizations Studio

Объявление

Прежде чем начать работу с форумом, прочитайте правила: ПРАВИЛА ФОРУМА

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

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


Вы здесь » BlackStar Localizations Studio » Литература и мануалы по русификации » Статья по работе с Hex для начинающих


Статья по работе с Hex для начинающих

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

1

Статья по работе с Hex для начинающих

Здесь мы рассмотрим работу с Hex-данными на примере использования самого популярного Hex-редактора - WinHex.

Итак начнём:

1. Начало:
Открываем наш файл в редакторе WinHex, самый простой способ - открыть файл из контекстного меню проводника, щёлкаем правой кнопкой мыши на нашем файле и выбираем "Редактировать в WinHex" или "Open with WinHex" зависит от того какая у вас версия WinHex. Откроется окно редактора, в левом окне мы видим Hex-значения, в правом окне текст зашитый в теле программы и код программы.

http://img59.imageshack.us/img59/373/hex1wl8.gif

2. Поиск нужного текста:
По умолчанию, при запуске в WinHex метка стоит в окне Hex-данных, но так как нам нужен текст ставим метку в самый верх правого текстового окна. Заходим в поиск текста, вводим искомое слово, ставим галку в чекбоксе "Слово целиком" (иначе придётся долго ползать по всему окну) и нажимаем "ОК". Редактор находит первое слово (по направлению сверху - вниз). Если это не наше слово (одинаковых слов будет много) жмём F3 и идём дальше до тех пор пока не доберёмся до нужного нам слова. 

http://img59.imageshack.us/img59/7030/hex3pr8.gif

Например переведём слово "Applications" в программе на снимке ниже.

http://img59.imageshack.us/img59/2687/hex2py0.gif

http://img59.imageshack.us/img59/7286/hex4hu6.gif

3. Перевод:
Выделяем найденное слово (блок), жмём Strl + С или "Правка" > "Копировать блок" > "Обычно", переводим его в переводчике, в нашем случае это - "Приложение" и вводим вместо "Applications". У нас остаётся два лишних знака (буквы), переставляем метку в левое окно Hex-значений на значение первой лишней буквы и жмём на "0" забиваем нулями обе лишние буквы. Жмём "Сохранить", сворачиваем окно редактора (выходить из него не надо) и запускаем нашу программу. Проверяем, если всё в порядке, ищем и переводим следующее слово, если же что то не так то разворачиваем окно редактора и жмём Strl + Z до тех пор пока не восстановятся оригинальные значения (отмена).

http://img66.imageshack.us/img66/6975/hex5tw3.gif

Лишние знаки:"ns"

http://img66.imageshack.us/img66/2111/hex6dy8.gif

Забиваем нулями:

http://img66.imageshack.us/img66/14/hex7qo6.gif

Получаем результат:

http://img66.imageshack.us/img66/5387/hex8rb8.gif

Примечание:
Нули принимают не все программы, в этом случае забиваем лишние знаки пробелами. И наоборот, некоторые программы не принимают пробелы, на их месте отображаются вертикальные чёрточки.

4. Удлинение слова:
Переведём на примере слова "Explorer". Это слово переводится как "Проводник", как видим в нём на один знак больше, поэтому нам надо его удлинить. После слова "Explorer" идут нулевые значения, на их место можно вводить дополнительные знаки, главное чтобы между последним знаком и кодом программы (разделитель и т.д.) было не менее одного нуля.

http://img66.imageshack.us/img66/1829/hex9fd5.gif

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

http://img66.imageshack.us/img66/4340/hex10jo7.gif

И в дополнение:
Не закрывайте WinHex, пока не убедитесь что всё нормально, просто сворачивайте его окно и проверяйте файл, иначе после закрытия редактора вам не удастся отменить изменения и придётся ковыряться вручную, (поиск, редактирование).

Ну вот пожалуй и всё, вопросы в студию!

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

Для просмотра скрытого текста - войдите или зарегистрируйтесь.

+1

2

а как дальше бороться с этим геморойчиком?

0

3

А дальше веселее. Перенос слова на новый адрес. Например в редакторе OgreGUI.

0

4

а можно поподробнее об этом процессе, буду очень благодарен, пробовал, но что-то у меня не получается

0

5

ivs898 написал(а):

а как дальше бороться с этим геморойчиком?

Вот специально для Вас ролик снял

Изменение длинны строки с помощью OLLY DBG

0

6

Причем тут тут Олли Дебаггер??? Человек с Огром то незнаком, а ты ему свои дебаггеры суешь. Он ему потом в кошмарных снах сниться будет.

ivs898

Качай видеоролик отсюда

0

7

Rowdy написал(а):

Человек с Огром то незнаком

А я знаком :yep:
Как то прогу переводил, так горя с ним хлебнул!!! :angry:
Этот козлик (читай  Оgre)  секции в файле так перкрутил,  что потом ничем файл не мог открыть!!! :mad:
Ни ресторатором, ни ResHackerom ни PEexploerom короче ничем !!! 
И Упаковать неудалось,  файл становился нерабочим!!!

С тех пор этим  Оgre не пользуюсь!!!   
Не знаю, может мне бажная версия попалась :dontknow:

0

8

Tekton написал(а):

С тех пор этим  Оgre не пользуюсь!!!   Не знаю, может мне бажная версия попалась

Зря ты так, огром просто надо уметь пользоваться, хорошая программа. Очень много раз выручала, когда надо было русифицировать много строк в коде. Через отладчик ты целый день делать это будешь, а в огре главное правильно расставить настройки и все будет чики-пуки.

0

9

Спасибо, буду знакомится с обоими вариантами  :)

0

10

Rowdy написал(а):

Причем тут тут Олли Дебаггер???

Погляди ролик  поймёшь ;)

А нсчёт того что для новичка, работа с отладчиком может вызвать некоторые неудобства,
в силу того что он не знаком с ним и не умеет с ним работать
С этим заявлением СОГЛАСЕН НА 100 %
:yep:

P.S.   Не надо останавливаться на достигнутом!!!  Учиться !!!... Учиться !!!... Учиться !!!

Отредактировано Tekton (2010-01-15 19:30:46)

0

11

А с помощью OgreGUI не выходит, слово не влезает в длину изображения кнопки, по видимому мне надо и саму  длину кнопки изменять  %-). Во в дебри-то залез  :), придётся наверно всё таки в переводе слово покороче подбирать. В Restorator изменял размеры окон и кнопок, но жаль что он не все ресурсы видит.

Отредактировано ivs898 (2010-01-16 00:19:01)

0

12

Tekton написал(а):

Как то прогу переводил, так горя с ним хлебнул!!!  Этот козлик (читай  Оgre)  секции в файле так перкрутил,  что потом ничем файл не мог открыть!!!

Хорош бодяжить то!  :D  Я им с самого начала занятия русификацией пользуюсь, и даже переводил им прогу почти полностью в которой ресурсов вообще не было. И никто еще на мои русики не жаловался.

Tekton написал(а):

Погляди ролик  поймёшь

Глядел уже, до половины доглядел и выкинул на хрен. Со скуки сдохнешь. Правильно Solenij говорит одно слово пол дня будешь ковырять.

ivs898

А где прога то? Что там за проблема? Давай я посмотрю.

0

13

MapSetToolKit 1.70a Beta-  http://bestshare.ifolder.ru/15832424
проблема с основным окном, но хотелось бы самому разобраться и сделать

0

14

ivs898 написал(а):

А с помощью OgreGUI не выходит, слово не влезает в длину изображения кнопки, по видимому мне надо и саму  длину кнопки изменять

А с помощью OgreGUI длину кнопки и не увеличить. Интерфейс главного окна программы весь в коде, а не в ресурсах программы, т.е. менять надо, используя средства для отладки программы, это уже реверсинг получается. Могу кнопки вытянуть уже на готовой работе. Т.е. делайте перевод, а потом уже дайте мне и я вам подправлю все кнопки.

ivs898 написал(а):

проблема с основным окном, но хотелось бы самому разобраться и сделать

Сами вы не разберетесь, надо использовать отладчик для этого.
Грубо говоря, вот что надо делать:
например, чтобы изменить длину кнопки Select IMG, нужно менять подчеркнутую красным цветом:
http://img196.imageshack.us/img196/8633/24325311.png
- подчеркнутое красным цветом определяет длину кнопки;
- подчеркнутое зеленым цветом определяет высоту кнопки.

0

15

а что делать, если после сохранения переведённых слов в WinHex вместо русских слов в  переведенном тексте программы появляются какие-то иероглифы

0

16

ivs898 написал(а):

если после сохранения...вместо русских слов в  переведенном тексте программы появляются какие-то иероглифы

Вариантов несколько:

1) Программа не поддерживает русские символы (что скорее всего),

2) Ты где то перестарался и затёр кусок следующих данных
(Но тогда бы это было местами! Если вся программа в "Иероглифах" скорее всего вариант №1 или №3)

3) Не правильно выбрана кодировка символов

ivs898 написал(а):

тексте программы появляются какие-то иероглифы

Хде они ??? Иероглифы ??? 
Скрины хде ???
Или ссылка на переведённую программу???
:dontknow:

Отредактировано Tekton (2010-01-17 04:12:50)

0

17

ivs898 написал(а):

а что делать, если после сохранения переведённых слов в WinHex вместо русских слов в  переведенном тексте программы появляются какие-то иероглифы

Я надеюсь вы серьезно спрашивайте или просто так, чтобы поговорить?!!! (это я на всякий случай, просто у нас таких случаев на форуме много уже было).
В каком конкретно месте появляются иероглифы? Давайте скриншот, либо описание. Если речь идет все о той же программе, то когда я её смотрел, то никаких других кодировок я не увидел. Скорее всего, либо кодовая страница мешает, либо вы переводите строки уникода в формате ASCII. В русском уникоде байтовое окончание идет как 04, а не 00.

0

18

вот что получается
http://s002.radikal.ru/i197/1001/f8/265b2e17c44a.jpg
это я делал в OgreGUI, в WinHex так же получается.

Solenij написал(а):

Я надеюсь вы серьезно спрашивайте или просто так, чтобы поговорить?!!!

если бы у меня не было желания научиться, то заморачиваться точно бы не стал, а попросил бы перевести программу в соответствующем разделе форума :)

0

19

Solenij написал(а):

либо вы переводите строки уникода в формате ASCII

Так оно и есть. Берем мой Флекс и переводим юникод в нем.

ivs898 написал(а):

если бы у меня не было желания научиться, то заморачиваться точно бы не стал,

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

0

20

Rowdy написал(а):

для юбучения выбрана программа которая несколько вам не по зубам

да я уж об этом и сам догадался, да вроде как-то и отступать уж не охота :)

0

21

Rowdy написал(а):

Берем мой Флекс и переводим юникод в нем.

а в Флексе всё то же самое получается или я что-то не так творю :dontknow:

0

22

Во Флексе нужно редактировать в той колонке в которой UNICODE, там две колонки показывает одна юникодная, другая ASCII.

0

23

а как в HEX изменить кодовую страницу используемого шрифта, а то программу перевёл, но осталась проблема с кодировкой страницы

0

24

Ничего там в хексе менять не надо никаких кодировок. И откуда такие сведения что проблема с кодировкой страницы?

0

25

когда меняю кодировку в системе, то русский  отображается без кракозябров

0

26

Она в системе и должна стоять, а не в хексе. Ее вообще то ставят твиком при настройке винды после установки. А не в панели управления.

0

27

Я о том что в некоторых программах где нет русского интерфейса нет поддержки кодовой страницы 1251, как в моём случае. На форумах читал, что меняют кодировку в хексе программы или добавляют ключ в реестре для замены шрифта в программе. Вот и спрашиваю как это делается в HEX, или может надо сделать инсталятор программы с установкой ключа в реестр?

0

28

Если программа не поддерживает кодовой страницы 1251, то и в самом файле её не изменишь. Это я говорю по собственному опыту, может как-то кто и делает, но ни разу не видел такого. Выход один - либо использование файл реестра с подменой кодовой страницы, либо (но на 100% не уверен) надо переводить на шрифте MS Sans Serif. А инсталлятор сделать не проблема, который будет при инсталляции добавлять соответствующие данные в реестр.

0

29

ivs898 написал(а):

или добавляют ключ в реестре для замены шрифта в программе.

Это должно ставиться для всех программ, твиком. Или в вашем понимании - подменой шрифтов в реестре. Многие программы отображают кракозябры поэтому и ставится этот твик. Копируй весь текст в текстовый документ и переименовывай расширение в .reg, потом запускай и все!!! Это называется - Коррекция русского языка. Такие вещи вообще то нужно знать до того как пытаться ковырять программы.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
"1253"="c_1251.nls"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"System,0"="Arial,204"
"Fixedsys,0"="Fixedsys,204"
"Small Fonts,0"="Small Fonts,204"
"MS Serif,0"="MS Serif,204"
"MS Sans Serif,0"="MS Sans Serif,204"
"Courier,0"="Courier New,204"
"Arial Cyr,0"="Arial,204"
"Courier New Cyr,0"="Courier New,204"
"Times New Roman Cyr,0"="Times New Roman,204"
"Helv,0"="MS Sans Serif,204"
"Tms Rmn,0"="MS Serif,204"
"Arial,0"="Arial,204"

Отредактировано Rowdy (2010-02-02 23:18:43)

0

30

о таких манипуляциях мне известно, меня интересовало можно ли это сделать в самой прграмме

0


Вы здесь » BlackStar Localizations Studio » Литература и мануалы по русификации » Статья по работе с Hex для начинающих