Программы для локализации > HEX редакторы, Дизассемблер

Решена проблема с новыми версиями Winhex

(1/1)

Nexus:
Всем известно, что в новых версиях нельзя вводить кириллицу так как получается белиберда. И вот, немного подучив Ассемблер решил проблему:
Открываете Winhex.exe в том же Winhex и ищете строчку DispatchMessageA и меняете ее на DispatchMessageW - все! Это касается всех версий. Работает на Windows XP и 7.
Что касается крякозяблей в меню и диалогах, то там в командах MOV SI ,4E3 и MOV DX ,4E3 надо поменять 4E3 на 4E4.

shkiper:
Nexus, спасибо. Думаю, многим пригодится в будущем. Переместил тему в подходящий раздел.

Nexus:
Извиняюсь, ошибка -  в командах MOV SI ,4E4 и MOV DX ,4E4 надо поменять 4E4 на 4E3, то есть через Winhex ищите выражение 66 BE E4 04 и меняете на соответственно 66 BE E3 04 (это в команде MOV SI ,4E4 меняется кодовая страница 1252 на нашу кириллицу 1251 ), также меняете выражение 66 BA E4 04 на 66 BA E3 04 (это MOV DX ,4E4). Правда команд MOV SI ,4E4 в файле несколько, но только одна (самая первая) нужная.

Solenij:

--- Цитата: Nexus ---Извиняюсь, ошибка -  в командах MOV SI ,4E4 и MOV DX ,4E4 надо поменять 4E4 на 4E3, то есть через Winhex ищите выражение 66 BE E4 04 и меняете на соответственно 66 BE E3 04 (это в команде MOV SI ,4E4 меняется кодовая страница 1252 на нашу кириллицу 1251 ), также меняете выражение 66 BA E4 04 на 66 BA E3 04 (это MOV DX ,4E4). Правда команд MOV SI ,4E4 в файле несколько, но только одна (самая первая) нужная.
--- Конец цитаты ---
Nexus, спасибо, очень ценная информация.  
Можно поинтересоваться, как нашли код, который надо патчить?

Nexus:

--- Цитировать ---как нашли код
--- Конец цитаты ---
Ну...Как-то само оно вышло.  . Мне нужно  было вбить русский текст в один игровой архив, но всем известное западло с прогой побудило меня поковыряться в ней. Естесно нахрапом решить проблемку не удалось. Пришлось скачивать Olly Dbg. Ассемблер я знаю на уровне компа ZX Spectrum, а уж о функциях API  и говорить нечего      .Но ничего! Немного почитав об API и насмотревшись роликов Соленого об Olly Dbg я нашел подпрограмму обработки клавиш(через трассировку) и сравнив с 11 версией увидел, что в DispatchMessageA посылаются разные данные. Как-то само в голову пришло поменять A на W. Ну а с крякозябрями проще было - понял, что где-то в проге идет проверка кодовой страницы и давай вбивать вместо E4 04 комбинацию E3 04 - на какой-то раз получилось. Там чуть далее идет проверка польской(восточноевропейской) кодировки. Но после замены строки, в разных местах меню появилось "ЧЧЧЧЧЧ". Пришлось искать дальше - нашел этим же методом строку MOV DX ,4E4. Короче, ничего сложного.

Навигация

[0] Главная страница сообщений

Перейти к полной версии