Несколько дней спустя я
вернулся домой с работы
и моя жена встретила
меня у дверей, объяснив,
что проблема снова
повторилась, и она
оставила окно открытым,
чтобы показать мне эти
таинственные файлы. Я с
предвкушением подошел к
компьютеру и изучил
ситуацию. На компьютере
было открыто окно IE,
развернутое на весь
экран, с большим
количеством открытых
вкладок с открытыми
письмами. На переднем
плане было открыто
диалоговое окно IE
"Открыть файл", в
котором отображался
список файлов в папке
Desktop, возникающее при
щелчке по кнопке
"Приложить файл".
Диалоговое окно
выглядело следующим
образом:
Я свернул окно IE, чтобы
увидеть сам рабочий
стол, который находился
на фоне, и убедился, что
несколько файлов,
которые присутствовали в
диалоговом окне, в
частности, папка Maui
Feb. 08 и JPG-файлы
CIMG13xx, отсутствовали.
Я открыл окно Windows
Explorer, чтобы зайти в
папку Desktop, чтобы
посмотреть, будут ли
видны эти файлы в
проводнике, но там также
ничего не было:
Раньше я никогда с таким
не сталкивался. Я знал,
что это работа для
Process Monitor. Так
как на компьютере моей
жены инструментов
Sysinternals не
установлено (грустно, но
правда), я запустил их
прямо из сети, используя
адрес Sysinternals Live
-
live.sysinternals.com\tools\procmon.exe.
С помощью функции
Process Monitor по
записи активности я
закрыл и снова открыл
диалоговое окно выбора
файлов в редакторе почты
и начал искать CIMG -
набор имен файлов,
многие из которые
отображались в
диалоговом окне выбора
файлов, но не в Windows
Explorer. Первое
совпадение произошло при
перечислении операций с
папками, содержащих
такие имена файлов,
которые показываются в
самой правой колонке
Details:
Файлы находились в
профиле пользователя в
папке Appdata\Local\Microsoft\Windows\Temporary
Internet Files\Virtualized\C\Users\Daryl\Desktop.
Эта папка Virtualized
является директорией,
создаваемой IE7 при
запуске в защищенном
режиме (Protected Mode,
PMIE), который является
стандартным в Windows
Vista и Windows Server
2008. PMIE использует
уровни целостности,
представленные в Vista и
Server 2008, для
ограничения записей
реестра и местоположений
на диске, которые может
модифицировать код,
запущенный в IE. Как я
уже описывал в
более ранней статье,
изолированная
программная среда
определяется
местоположением, имеющим
значение Low Integrity,
уровнем на котором
запускается PMIE, и
определяет, какие
объекты может изменять
PMIE, что позволяет
сохранять избранные
ссылки и временные файлы
как кэш IE и историю
браузера. Однако, PMIE
не может изменять другие
папки в пользовательском
профиле, такие как папки
документов, ветки
реестра и папки диска с
указанием автоматически
загружаемых программ для
каждого пользователя,
так как они имеют
уровень целостности
Medium. Это препятствует
так называемому
drive-by-download
вредоносного ПО, которое
может заразить процесс
IE благодаря постоянному
присутствию в системе.
Чтобы сохранить обратную
совместимость с
наследственным кодом,
таким как элементы
управления ActiveX и
Browser Helper Objects,
которые могут быть
написаны с
необходимостью создания
файлов вне изолированной
среды, PMIE создает
компенсационный слой,
который перехватывает
операции с реестром и
диском и перенаправляет
операции, направленные
за пределы изолированной
среды в
виртуализированную
папку.
Чтобы удостоверится в
том, что именно это
здесь и произошло, я
изучил представленный
выше стек трассировки
виртуализированных
операций, нажав правой
кнопкой по строчке и
выбрав элемент Stack.
Стек показал, что
библиотека Acredir.dll
перехватывала операции и
запускала функцию
переадресации:
Двойной щелчок на строке
в трассировке стека
открыл диалоговое окно
свойств модуля, в
котором было написано,
что DLL является
"Windows Compatibility
DLL", таким образом,
доказывая, что это часть
реализации PMIE:
Я уже был знаком с
виртуализацией PMIE, но
никогда не видел
виртуализированные файлы
на компьютере, поэтому
для меня не было
очевидного ответа, что
стало причиной такого
несоответствия. Process
Monitor показал причину,
поэтому все, что мне
оставалось сделать -
удалить
виртуализированные
файлы. Большинство
пользователей не знают,
что могут перемещать и
удалять файлы из
диалогового окна выбора
файлов, поэтому я
использовал возможность
показать своей жене, что
она может управлять
виртуализированными
файлами из диалогового
окна редактора почты при
выборе файлов, если она
вдруг столкнется с
данной проблемой в
будущем. Мы удалили
файлы, которые ей были
не нужны, и переместили
нужные файлы в ее папки
библиотек фотографий.
Дело было закрыто. Моя
жена была поражена той
легкости, с которой мне
удалось обнаружить
причину появления
таинственных файлов.
Однако, она еще больше
удивилась, узнав, что
именно я написал
программу для решения
этой проблемы. В связи с
появлением проблемы моя
жена, сама того не
желая, изучила
виртуализацию PMIE и
уровни целостности.
Между прочим, скорее
всего вы увидите файлы и
папки, если загляните в
виртуализированную папку
PMIE в вашем профиле,
так как даже самые
рутинные операции в IE
приводят к
переадресации. Здесь вы
можете увидеть файлы
кэша эскизов, которые
создает диалоговое окно
оболочки для просмотра
файлов в IE. Обычно
оболочка хранит файлы
кэша эскизов в вашем
профиле, но PMIE не
имеет туда доступа,
поэтому все они
виртуализируются.
Источник:
http://blogs.technet.com/mark_russinovich