Автор Тема: Решена проблема с новыми версиями Winhex  (Прочитано 17358 раз)

Оффлайн Nexus

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

Оффлайн shkiper

  • Ветеран
  • *****
  • Сообщений: 1095
Решена проблема с новыми версиями Winhex
« Ответ #1 : 09 Июня 2011, 09:39:46 »
Nexus, спасибо. Думаю, многим пригодится в будущем. Переместил тему в подходящий раздел.
DJ, sex, music and a rhythm...

Оффлайн Nexus

  • Новичок
  • *
  • Сообщений: 24
Решена проблема с новыми версиями Winhex
« Ответ #2 : 09 Июня 2011, 17:38:51 »
Извиняюсь, ошибка -  в командах 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

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
Решена проблема с новыми версиями Winhex
« Ответ #3 : 09 Июня 2011, 21:29:03 »
Цитата: 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

  • Новичок
  • *
  • Сообщений: 24
Решена проблема с новыми версиями Winhex
« Ответ #4 : 09 Июня 2011, 23:29:35 »
Цитировать
как нашли код
Ну...Как-то само оно вышло.  . Мне нужно  было вбить русский текст в один игровой архив, но всем известное западло с прогой побудило меня поковыряться в ней. Естесно нахрапом решить проблемку не удалось. Пришлось скачивать Olly Dbg. Ассемблер я знаю на уровне компа ZX Spectrum, а уж о функциях API  и говорить нечего      .Но ничего! Немного почитав об API и насмотревшись роликов Соленого об Olly Dbg я нашел подпрограмму обработки клавиш(через трассировку) и сравнив с 11 версией увидел, что в DispatchMessageA посылаются разные данные. Как-то само в голову пришло поменять A на W. Ну а с крякозябрями проще было - понял, что где-то в проге идет проверка кодовой страницы и давай вбивать вместо E4 04 комбинацию E3 04 - на какой-то раз получилось. Там чуть далее идет проверка польской(восточноевропейской) кодировки. Но после замены строки, в разных местах меню появилось "ЧЧЧЧЧЧ". Пришлось искать дальше - нашел этим же методом строку MOV DX ,4E4. Короче, ничего сложного.