как настоящий ленивый пользователь сначала написал письмо авторам с пожеланием отключать это в настройках, но ответа не дождался.
вообщем как обычно, все приходится делать самому. немного пояснительного текста и много-много картинок
грузим в хиев, Enter (переход в режим кода), F8-F7 (просмотр импорта)
конечно же не помню как называется функция winapi, отвечающая за переключение раскладки, но наверняка в ней есть keyb,
попросим хиев показать только те функции, названия которых содержит keyb - F9(фильтр)
всего 4 штуки, Get... вряд ли будут переключать, значит будем смотреть где вызывается LoadKeyboardLayoutW,
нажимаем Enter и хиев находит первый вызов, причем параметром идет 419(hex) = 1049(dec) как раз russian (еще помню 409h это english)
поищем следующие вызовы через Ctrl-Enter... а следующих и нет:
классика жанра - условный переход заменить на безусловный, чтобы функция LoadKeyboardLayoutW не вызывалась никогда
F3(редактировать)
конечно, проще вбить EB на место 75
но картинок просили больше, поэтому F2
jmps - сокращенная команда хиева от jmp short, 2 байта длиной как и исходная команда
Enter - Esc - F9 (записываем изменения)
15 секунд и при старте никакого автоматического переключения раскладки клавиатуры нет.
Полезная статейка. Как я всегда и говорю - для таких вещей не нужен ни отладчик ни ида, только старый добрый хиев :)
ОтветитьУдалитьПолностью поддерживаю! Основной минус Иды в том, что она умеет код только читать. Хиев же умеет равно читать и исправлять, быстро и без сложностей. Как было бы здорово научить Хиев понимать также много процессоров, как это делает Ида! Помню, как мы лет 5 назад исправляли глючивший ARM-драйвер в Windows Mobile путём побайтного редактирования: собирая команды из байтов вручную :))
ОтветитьУдалитьВеликолепно, что сейчас Хиев поддерживает и ARM! Хочется также поддержки MIPS, SuperH, AVR и MCS 51.
>>Великолепно, что сейчас Хиев поддерживает и ARM! Хочется также поддержки MIPS, SuperH, AVR и MCS 51.
ОтветитьУдалитьНе думаю, что это нужно! Понадобится еденицам, а автор убьет уйму своего времени, вместо того чтобы делать более значимые задачи: к примеру подсветить .NET-штукововины в бинаре ! ;)
Хотя SEN-у нужно добавить аналог "процессорных" модулей как в ИДА, так любой желающий сможет добавить новый процессор
ОтветитьУдалитьглубоко сомневаюсь что такие желающие найдутся
ОтветитьУдалитьКрасиво :) И полезно конечно же.
ОтветитьУдалить