25 августа 2019 года    
Воскресенье | 20:01    
Главная
 Новости
Базы данных
Безопасность PC
Всё о компьютерах
Графика и дизайн
Интернет-технологии
Мобильные устройства
Операционные системы
Программирование
Программы
Связь
Сети
 Документация
Статьи
Самоучители
 Общение
Форум







Разделы / Всё о компьютерах / Другие

Следы на воде

Следы на воде


Автор: Александр Захарченко, az13@mailru.com
Опубликовано: 28.02.2002
Оригинал: http://www.softerra.ru/review/security/16353/


“Большие программы подобны спагетти на тарелке - тянешь с одной стороны, шевелиться где-то с другой”
(ван Тассел)

“Доверйяй, но проверйяй”
(народная мудрость в исполнении Р. Рейгана)

Так уж получается, что на мелкие неполадки в работе Windows пользователи внимания почти не обращают. С тем, что программы периодически «выполняют недопустимую операцию», большинство уже смирилось. Опять глюк. Ну ничего, поищем новую версию и, глядишь, само пройдет. Увы, не всегда.

Поначалу странное исчезновение функции «Исходное сообщение» в Outlook Express 6 (OE6) вызывало только легкую досаду. OE была английской, а Win98 — русской, может быть и не стыкуются в какой-то мелочи.

Вскоре подоспела русская версия, но ситуация не изменилась: кнопка присутствует (рис. 1), а эффекта от нее никакого. Откат к предыдущей версии (такая возможность заложена при установке Internet Explorer'а 6 и сопутствующих программ) тоже результата не принес. Ну и ладно. Функция, конечно, нужная, и особенно, если требуется поподробнее рассмотреть, что за «хитрое» вложение прицеплено к письму. Но ведь, в конце концов, определить, что вирусы приходят не из японской корпорации, а из Екатеринбурга можно другим способом: с помощью простого тестового редактора.

01
Рис. 1. Служебные заголовки в OE6.

Никаких других оснований для тревоги не было: в автозагрузке лишние программы не замечены, межсетевой экран (firewall) не зарегистрировал попыток несанкционированной связи, антивирусная программа молчала, да и сама OE не предупреждала об отправке почты посторонними программами (рис. 2). Когда-нибудь разберемся.

02
Рис. 2. OE6 против почтовых червей.

Планы пришлось изменить после того, как забастовал пакет для обработки данных и инженерной графики Origin. А инструмент сей нам зело нужен, поэтому его решительный отказ от работы (рис. 3) создал массу проблем.

03
Рис. 3. Первый "саботажник".

Загадка заключалась в том, что как раз новые-то документы Origin создавал, а приведенное сообщение появлялось при открытии уже готовых проектов. Значительная часть накопленной информации оказалась недоступной. Вслед за непонятным сообщением немедленно всплывало уже знакомое окно «программа выполнила недопустимую операцию», после чего графический пакет аварийно завершал работу (рис. 4).

04
Рис. 4. Аварийное завершение Origin.

К сожалению, опять сработал стереотип: найти версию Origin посвежее. Этим способом проблему удалось частично решить, но все же некоторые проекты так и не открылись. А вскоре стало ясно, что в отказники записался и переводчик PROMT. Все испытанные версии вылетали с тем же диагнозом (рис. 3 и 4).

Разбираться с тем, кто хозяйничает в компьютере приходится довольно часто. Утилита TaskInfo совместно с msconfig позволяют быстро отследить постороннего резидента. Но в данном случае явного чужака не было. Анализ протокола изменений программных модулей, получаемый программой SFC пришлось отложить из-за большого количества обновленных файлов после установки IE6 и К.

DRWATSON добросовестно ловил ошибку, выполнял трассировку вызовов, но объяснить причину не смог. Во всяком случае его традиционные в любой ситуации намеки на переключатель клавиатуры Ruslat95 были абсолютно безосновательны.

Выручила крошечная утилита Mark'а Russinovich'а File Monitor, предназначенная для регистрации обращений программ к диску (кроме Реестра, для этого отдельно есть Registry Monitor, на авторском сайте найдете еще много интересного). Протоколы работы приложений однозначно показали, что всем сбойным ситуациям предшествует неудачная попытка обращения к библиотеке GAPI32.DLL. Неудачная потому, что на этом компьютере ее нет и не должно быть. По информации на сервере Microsoft можно понять, что GAPI32 — составная часть Microsoft Exchange и предназначена для конфигурации Microsoft Mail. Но большим Outlook'ом (без Express) пользоваться не приходилось и, естественно, такой библиотеки в каталоге WINDOWS\SYSTEM не оказалось. От некогда установленной Windows 95 осталась GAPIA32.DLL, но какому-то коду тонкости переименования были недоступны. Какому? В протоколах они оказались рядышком — RICHED32.DLL.

«А вот это уже провал». Эта системная библиотека именуется Windows 95 Rich Text Edit Control и абсолютно непонятно зачем ей почта?! (В комплект ActiveX контрола RichTextBox входит еще файл Richtx32.ocx). Какие такие IMessage он собрался проверять? Дальнейшие эксперименты показали, что обращение к почте происходит при создании простеньких текстовых окон, как-то «Исходное сообщение» в OE. Origin'у такое окно требуется после выполнения подгонки данных (data fit) для вывода параметров функций. Но, интересно, что OE справляется с отсутствием GAPI32 и просто игнорирует операцию, а Origin и PROMT попадают в ловушку.

Пришелец выглядит странновато (рис. 5) — я его переименовал, поскольку опыт NIMDA показывает, что dll библиотеки могут стартовать в самый неподходящий момент.

05
Рис. 5. И что же это на самом деле?

Мало того, что графе «Название продукта» вместо Microsoft® Windows Operating System содержится Microsoft Exchange. Еще и язык «Китайский (Тайвань)». С чего бы это? RICHED32.DLL из WinMe (рис. 6), имеет на пять месяцев более позднюю дату выпуска и в заметках содержит Service Pack 4, а не 3, как у приблудного файла.

06
Рис. 6. Оригинальный файл из дистрибутива WinMe (Win98 содержит 4-ую версию).

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

Замена файла на стандартный вернула системе нормальную работоспособность. Теперь оставалось только выяснить, кому понадобился доступ к почте при обработке текста. Увы, язык не подвел. Некоторое время тому назад мы экспериментировали с оборудованием одной тайваньской фирмы (счетчики, конверторы, контроллеры и т.д.) Тестовые утилиты (бесплатные), загруженные с ее сайта как раз и содержат этот странный модуль. Цифровых подписей в программах нет, как, впрочем, и в заменяемом модуле. Так что можно только гадать, попались фирмачи сами на крючок, подсунули им бракованный DLL или все-таки шпионят потихоньку? Кабы не ошибочная уверенность в повсеместном распространении Exchange никто бы ничего и не заметил. А ведь промах исправить недолго и снова хорошие программы окажутся под подозрением.


 Следы на воде
Лента новостей


2006 (c) Copyright Hardline.ru