Купание троянского коня - Alternate Input killing ../images/2thTitles/TFreeCat.jpg 578

Купание троянского коня
(или уничтожение подлого альтернативного ввода)

     История началась как обычно. Как всегда, когда ставишь новую программу - сначала радуешься, что ставишь новую программу с новыми возможностями(хотя, как часто бывает, иногда они ни к чёрту и не нужны) - а затем расхлёбываешь последствия. Последствия бывают разные - от простейших сбоев до полного падения системы с потерей данных в роли суперприза. В общем - никому скучно не бывает.
    В этом случае всё началось с того, что я установил новую поделку Microsoft-а - Office XP. Как всегда вначале установка была произведена на основе установки по умолчанию. И всё было хорошо. До той поры, пока не начали в Word-е набирать русский текст. При этом произошли просто изумительные явления.
    Во-первых из трея пропал переключатель языков(русский-английский) - а вместо этого появился новый - в нижней части Word-а, среди служебных индикаторов. И, хотя этот переключатель несколько притормаживал, он всё же выполнял свою работу. До тех пор, пока не закончилась работа с Word-ом.
    А как только работа закончилась, то и этого переключателя не стало - Word же закрыт. Т.е. ни стало ни одного. Вот такое неожиданное приключение.
    Выяснить, что же стало причиной, было легко. В составе средств Офиса входило средство альтернативного ввода текста. Т.е., если его не ставить при установке - то и проблемы не возникает. А если Офис уже установлен - полностью деинсталлировать - и установить уже без этого вредоносного компонента. Своего рода троянский конь - выглядит как подарок(т.е. даёт дополнительные возможности) - а в самом деле несёт кучу неприятностей.
    Итак, первый акт был успешно завершён. Всё прекрасно разрешилось. До второго оставалось два года.
    Именно через это время ко мне попал ноутбук, на котором в своё время стоял Office XP - но деинсталлирован был так неудачно, что альтернативный ввод текста остался. При этом переключение на русский было невозможно(язык по умолчанию - английский). Установка Офиса и последующая его деинсталляция ни к чему ни привели. Тупик.
    Конечно, самым простым и примитивным средством было бы переустановить Windows. Но уж больно много времени это занимало, да и не импонировал мне инженерный подход. Зачем же трясти, если лучше подумать.
    Подлость этой установки заключалось не только в установке этого альтернативного обработчика но и в том, что полностью пропала возможность настройки языковой поддержки клавиатуры. Вместо привычного выбора языков и кнопок для их переключения в закладке "Языки"(Languages) висела иконка настройки альтернативного ввода текста. Ну что ж, раз этот конь такой настырный, то с этого места и начнём.
    Не доставило большого труда найти тот модуль, который управлял настройкой альтернативного ввода в Панели Управления. Это оказалась DLL input98.cpl, расположенная, естественно в каталоге System. Лёгкая манипуляция с этой DLL-кой позволило быстро найти главную DLL-ку всего альтернативного ввода. Ей оказалась msctf.dll - расположенная, естественно, в том же каталоге System. Дальнейший поиск принёс ещё небольшую кучку программ и DLL-ей из System: ctfmon.exe, dimm.dll, hkl0404.dll, hkl0411.dll, hkl0412.dll, hkl0804.dll, input16.dll, MSCTFP.dll, msimtf.dll, msutb.dll. После удаления этих файлов(удаление пришлось проводить в режиме DOS - поскольку некоторые файлы(к примеру - главная DLL msctf.dll) были заняты системой и не удалялись в режиме Windows). и повторного запуска системы все симптомы пропали - и удалось насладится стандартными средствами переключения языков(редкий случай ;-)). Естественно пришлось запустить программу RegClean - чтобы окончательно очистить Windows от следов этой заразы.
    Как всегда в случае с Microsoft(как они говорят ;-)) решение можно было найти и другим способом. В каталоге Windows - подкаталог MUI\fallback\0419 (созданный явно тем же инсталлятором, который и добавил средства альтернативного ввода текста) нашёлся хитрый наборчик файлов - input98.cpl.mui, msctf.dll.mui, msutb.dll.mui, softkbd.dll.mui, sptip.dll.mui. Это тоже было подсказкой. Только она уже не пригодилась. Хотя и приятна забота Microsoft о пользователях ;-).
    А причём же тут купание троянского коня - недоуменно спросите вы. Задержавшись на прощание скажу - да почти и не при чём. Но если бы троянцы в своё время соблюдали правила гигиены и выкупали бы подарок - то избавились бы от последующих неприятных последствий. Хотя тогда бы ошибки наверно бы называли не жуками(bugs) а конями(horses) : Но это уже совсем другая история ;-).