Download - Совместимость приложений
![Page 2: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/2.jpg)
User Account Control (UAC)
Windows Resource Protection
(WRP)
Mandatory Integrity Control (MIC)
Версия операционной системы
Изоляция сессии 0
Windows Vista, Windows Server 2008 и Windows 7
Ключевые проблемы
![Page 3: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/3.jpg)
Версия операционной системы
• Внутренний номер версии в Windows Vista/Server 2008/Windows 7 (функция GetVersion) = 6
• Версия Internet Explorer - 7.0/8.0– Версия включена в строку User Agent– Строка User Agent включается в заголовок
каждого HTTP запроса• Измените код – нужна проверка типа >= 6• GetVersionEx()
Windows 2000
Windows XP
Windows Server
2003
Windows Vista
Windows Server
2008
Windows 7
Версия 5.0 5.1 5.2 6.0 6.0 6.1
![Page 4: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/4.jpg)
Версия операционной системы
54% всех ошибок,
связанных с совместимостью
![Page 5: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/5.jpg)
User Account Control
• Операционная система подвергается существенным рискам когда пользователь работает под учетной записью Administrator– Более простая установка вредоносного
кода– Возможность повышения привилегий– Открытость для вредоносного кода
• Случайные повреждения, вносимые пользователем
![Page 6: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/6.jpg)
User Account Control
• User Account Control• Manifest• Standard User vs. Administrator• Virtualization
![Page 7: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/7.jpg)
User Account Control
![Page 8: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/8.jpg)
Windows Resource Protection
• Ключевые файлы операционной системы и ключи реестра могут быть заменены на предыдущие версии или вредоносный код – ущерб стабильности и безопасности системы
• Задача Windows Resource Protection – защита ключевых компонентов операционной системы, увеличение стабильности, предсказуемости и надежности системы
![Page 9: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/9.jpg)
Windows Resource Protection
• Запрещены обновления защищенных ресурсов– Только программы установки, известные ОС
(Windows Update)– ACL для ресурсов
• Распространяется на файлы, папки и ключи реестра– Большинство ключевых модулей ОС (EXE и
DLL) – Большинство ключей реестра (HKCR) – Папки, используемые ресурсами ОС
• Проверка– SfcIsFileProtected() - файлы– SfcIsKeyProtected() – ключи реестра
![Page 10: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/10.jpg)
Mandatory Integrity Control (MIC)
• Реализовано в Windows Vista, Windows Server 2008 и Windows 7
• Процессы выполняются на одном из четырех уровней целостности (Integrity Levels):– Системные процессы - System IL– Приложения с привилегиями администратора - High
IL– Стандартные приложения - Medium IL– Приложения с ограничениями - Low IL
• Защищаемые объекты (файлы, процессы, очереди сообщений и т.п.) задают минимальный уровенб процесса для доступа к ним– Уровень для объектов по умолчанию: Medium
![Page 11: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/11.jpg)
Изоляция привилегий интерфейса
• UI Privilege Isolation (UIPI)• Использует MIC для запрета посылки
сообщений между окнами– Приложения не могут посылать сообщения
приложениям, выполняющися с более высоким IL
– Приложения с более высоким IL могут разрешить прием сообщений
– SendMessage() не возвращает ошибок
• Исправление: функция ChangeWindowsMessageFilter()
![Page 12: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/12.jpg)
Изоляция сессии 0Session 0
Windows StationDesktop
Screen Saver
Login
Services
1st User’sWindow
1st User’sWindow
1st User’sWindow
Возможность атаки
Сессии в Windows XP/2000/2003
![Page 13: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/13.jpg)
Изоляция сессии 0
• Выполнение системных сервисов и пользовательских приложений в сессии 0 может привести к нарушению безопасности– Потенциальная возможность обмена
между сервисами и приложениями– Потенциальная возможность повышения
привилегий
• Выполнение сервисов и приложений в различных сессиях существенно снижает возможность атак, повышает стабильность, надежность и защищенность системы
![Page 14: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/14.jpg)
Изоляция сессии 0Session 0
Windows StationDesktop
Service
Service
Session 1
Windows StationDesktop
Screen Saver
Login
1st User’sWindow
1st User’sWindow
1st User’sWindow
SecureСессии в
Windows Vista и Windows 7
![Page 15: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/15.jpg)
Совместимость
• Если приложение работает под Windows Vista, оно будет работать и под Windows 7, но есть нюансы...
![Page 16: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/16.jpg)
«Новое» в Windows 7
• Версия операционной системы• Версия Internet Explorer• Библиотеки (File Libraries)• Windows Mail• Новые компоненты системного
уровня• IE DEP• Windows Server 64 Bit• WOW64 on Windows Core
![Page 17: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/17.jpg)
Версия операционной системы
• Windows 7 == Windows 6.1?– dwMajorVersion = остается прежней– dwMinorVersion = изменена
• Исправления– Проверяйте не версию, а
возможности системы– Используйте операцию >=– Используйте Version lies
![Page 18: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/18.jpg)
Version Lies
• Win95VersionLie• WinNT4SP5VersionLie• Win98VersionLie• Win2000VersionLie• Win2000SP1VersionLie• Win2000SP2VersionLie
• Win2000SP3VersionLie• WinXPVersionLie• WinXPSP1VersionLie• WinXPSP2VersionLie• Win2K3RTMVersionLie• Win2K3SP1VersionLie• VistaRTMVersionLie
![Page 19: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/19.jpg)
Version Lie Layers
• Win95• NT4SP5• Win98• Win2000• Win2000SP2• Win2000SP3
• WinXP• WinXPSP1• WinXPSP2• WinXPSP2VersionLi
e• WinSrv03• WinSrv03SP1• VistaRTM
![Page 20: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/20.jpg)
Layers vs. Version LiesVistaRTM :
– DelayAppDllMain– ElevateCreateProcess– FailObsoleteShellAPIs– FaultTolerantHeap– GlobalMemoryStatus
2GB– HandleBadPtr
– NoGhost– RedirectMP3Code
c– VirtualRegistry– VistaRTMVersionL
ie– WRPDllRegister– WRPMitigation
![Page 21: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/21.jpg)
Версия Internet Explorer
• Без режима совместимости:–Mozilla/4.0 (compatible; MSIE 8.0; Windows
NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
• С режимом совместимости:–Mozilla/4.0 (compatible; MSIE 7.0; Windows
NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
![Page 22: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/22.jpg)
Библиотеки (File Libraries)
• По умолчанию для общих диалоговых панелей: Documents Library
• Библиотеки – это файлы (а не папки)• IFileDialog->GetFolder() +
IFileDialog->GetFilename() не корректно работают с библиотеками– GetFolder() возвращает файл
• Исправление– Используйте IFileDialog->GetResult()
![Page 23: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/23.jpg)
Windows Mail
• Отсутствующий компонент – заменен на Windows Live Mail или почтовый клиент по выбору
• Все API работают, за исключением API, отображающих интерфейсы
• Обработчики протоколов и файлов не зарегистрированы
• Исправления– Не использовать вызовы устаревших API– Установить почтовый клиент
![Page 24: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/24.jpg)
CoStartOutlookExpress
msoert2.dll Section .text (0x43D01000)CALL DWORD PTR [KERNEL32.DLL!GetModuleFileNameW]TEST EAX,EAXJZ 0x43D0A613LEA EAX,[EBP-0x20C]PUSH EAXCALL DWORD PTR [SHLWAPI.DLL!PathFindFileNameW]TEST EAX,EAXJZ 0x43D0A60CPUSH 'WinMail.exe'PUSH EAXCALL DWORD PTR [MSVCRT.DLL!_wcsicmp]
![Page 25: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/25.jpg)
Новые компоненты системного уровня
• Реорганизация компонентов системы– Пример: функциональность из
kernel32.dll и advapi32.dll перенесена в kernelbase.dll
• Экпортированные функции перенаправляются в соответствующие библиотеки
• Приложения, использующие внутренние функции и структуры могут не работать
![Page 26: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/26.jpg)
IE DEP
• Data Execution Prevention (NX) – опция включена по умолчанию
• Плагины, которые не совместимы с DEP, могут привести к краху браузера
• Исправления:– Используйте DEP-совместимые
библиотеки (ATL)– Используйте опцию компоновщика
/NXCOMPAT
![Page 27: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/27.jpg)
Windows Server 64 Bit
• Драйвера– Перенос и подписание 64-битных драйверов
• 32-битный код– Должен работать под WOW64– IsWow64Process
• 32-битные плагины– Перенос на 64-бита для 64-битных
процессов типа Explorer
• 16-битный код– Перенос на 32- или 64-бита
![Page 28: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/28.jpg)
WOW64 on Windows Core
• По умолчанию 32-битный код работать не будет– Active Directory– Active Directory Lightweight Directory
Services– Web server– Сторонние приложения
• Исправления:– Перенос на 64-бита– Установка компонента WOW64
![Page 29: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/29.jpg)
Switchback
• Секция CompatibilityInfo в манифесте приложения – указание на ОС, для которой создано приложение– Windows SxS
• Нет секции CompatibilityInfo == совместимость с Vista
• Поддержка компонентов в Windows 7:– APIs: GetOverlappedResult, ReadFileEx– RPC exception handling, thread pool mgmt.– DWM fail/lock bit blitting
![Page 30: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/30.jpg)
Switchback Manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <!-- Windows 7 supported --> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> </application> </compatibility></assembly>
![Page 31: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/31.jpg)
Полезные утилиты
![Page 32: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/32.jpg)
Полезные утилиты
• Системные утилиты– MSConfig– Новая информация о системе
• SysInternals– Process Explorer– Process Monitor
• Средства отладки– Standard User Analyzer– Application Verifier– Debugging Tools for Windows
![Page 33: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/33.jpg)
Системные утилиты
• MSConfig– Start | Run | MSConfig
• System Information– Start | Run | MSInfo32.exe
• Event Viewer – Start | Run | EventVwr.exe
![Page 34: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/34.jpg)
Process Explorer
• Полезные возможности– Определение сервисов– Отображение загруженных модулей– Отображение используемых ссылок– Поиск модулей/ссылок
• ProcExp.exe
![Page 35: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/35.jpg)
Process Monitor
• Новая версия, совместимая с Vista/WS08 • Объединяет RegMon и FileMon• Новая возможность – создание образов
• ProcMon.exe
![Page 36: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/36.jpg)
SysInternals
• http://www.microsoft.com/technet/
sysinternals/
![Page 37: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/37.jpg)
Standard User Analyzer• Часть Application Compatibility Toolkit (ACT)• Использует AppVerifier APIs• Более «удобная» версия тестов LuaPriv
![Page 38: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/38.jpg)
Application Verifier• Назначение– Application Verifier – средство проверки
неуправляемого кода– Помогает обнаружить ошибки,
пропущенные при обычном тестировании приложений
• Использование– Графический интерфейс (GUI)– Интерфейс командной строки (CUI)– COM-интерфейсы для скриптинга
• AppVerif.exe
![Page 39: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/39.jpg)
Application Verifier - GUI• Включить/Отключить проверки для
конкретного приложения• Настройка свойств для каждой
проверки• Просмотр протокола проверки• И т.д.
68% падений приложений можно было бы
идентифицировать с помощью App Verifier
![Page 40: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/40.jpg)
Отладка
• Расширения отладчика– Команды Windbg, специфичные для AppVerifier
• Тесты– LUAPriv– Basic
ExceptionsHandles HeapsLocksMemoryTLS
– Low Resource Simulation
![Page 41: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/41.jpg)
Новое в Windows 7
• Problem Step Recorder–%windir%\system32\psr.exe– Позволяет выполнить пошаговую
запись возникновения проблемы– Создает zip-файл с mht-файлом– Интеграция с Watson
![Page 42: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/42.jpg)
Новое в Windows 7
• Windows Troubleshooting– Встроенные средства решения
проблем– Доступ через Action Center• Control Panel | All Items | Action Center |
Troubleshooting
– Расширяемость• Windows SDK: TSPBuilder.exe• Скрипт на PowerShell
![Page 43: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/43.jpg)
ACF – решение проблем совместимости приложений
• Application Compatibility Factory является лабораторией решения проблем совместимости приложений с клиентскими операционными системами Майкрософт нового поколения – Windows Vista, Windows 7, организованной на базе КОМПАНИИ-ПАРТНЕРА
![Page 44: Совместимость приложений](https://reader036.vdocuments.net/reader036/viewer/2022062500/56815515550346895dc2f886/html5/thumbnails/44.jpg)
Ищем партнера в России
• Цель сотрудничества между Майкрософт и компанией-партнером Application Compatibility Factory – организация профессиональной базы решения проблем совместимости приложений для предприятий, планирующих миграцию на Windows Vista или Windows 7.
• Если Ваша компания заинтересована в сотрудничестве – просьба отправить короткий e-mail на [email protected] с темой ACF.