Windows XP скрытно подменяла версию и менеджер памяти для старых программ
Инженер Microsoft Рэймонд Чен раскрыл, как Windows XP использовала скрытую базу Application Compatibility Database (файл Sysmain.sdb в C:\WINDOWS\AppPatch) примерно с 200 исправлениями совместимости. При запуске проблемного приложения Windows подменяла ему версию системы (шим Win98VersionLie) или подсовывала точную копию менеджера памяти Windows 95 (EmulateHeap).
- База Sysmain.sdb хранилась в C:\WINDOWS\AppPatch в бинарном формате для быстрого сканирования
- При старте XP было около 200 исправлений совместимости, к 2011 году файл вырос до 1,2 МБ
- Приложения определялись по размеру, контрольной сумме, версии и дате файла, а не только по имени .exe
- Шимы работают только внутри процесса приложения и не помогают для драйверов ядра
Читать дальше
Софт