创建: 2023-09-27 16:30
https://scz.617.cn/windows/202309271630.txt
ACT是「Application Compatibility Toolkit」的缩写,涉及Shims机制。普通用户用不上ACT,高级用户、IT支持人员有时会遭遇之。
How to use the Compatibility Administrator utility in Windows
https://support.microsoft.com/en-gb/topic/how-to-use-the-compatibility-administrator-utility-in-windows-9791a045-9b82-d954-3562-2d22ac973a80
这篇演示用ACT修改notepad.exe看到的OS版本,即OS版本欺骗,体现在Help菜单显示中。有些PE启动时检查OS版本,必须低于某个版本才继续,但更多时候Windows保持足够的向后兼容性,只要骗目标PE说我是Win95,它就正常运行。这种事,二十年前很常见,现在几乎绝迹。
Demystifying Shims or Using the App Compat Toolkit to make your old stuff work with your new stuff - Craig Marcho [2011-06-17]
https://techcommunity.microsoft.com/t5/ask-the-performance-team/demystifying-shims-or-using-the-app-compat-toolkit-to-make-your/ba-p/374947
这篇讲了ACT的基本用法,包括CorrectFilePaths。有些旧PE保存文件的目标路径在高版OS中已无适当权限,无源码时,有多种解决方案,ACT是其中一种。
再就是,bluerust的最爱,用sdb进行DLL注入,时至今日,仍然有效。他的一种实战场景是,注入自定义DLL,Hook目标PE某个位置的代码,插入Sleep(),以便调试器Attach。这个与Shims相关,与ACT不强相关,只是顺便提一下。
ACT不是查看sdb文件的最佳选择,单说这种需求,ACT实属鸡肋。但高级用户自有用得上的场景,不多说。
ACT过去有standalone安装包,后来微软不再提供,现在ACT是ADK的一部分。
Download and install the Windows ADK - [2023-09-19]
https://go.microsoft.com/fwlink/?LinkId=121777
https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install
以Win10为例进行后续说明。adksetup.exe是个下载器,类似winsdksetup.exe。
Windows ADK for Windows 10 version 2004
https://go.microsoft.com/fwlink/?linkid=2120254
https://download.microsoft.com/download/8/6/c/86c218f3-4349-4aa5-beba-d05e48bbc286/adk/adksetup.exe
假设只需要ADK中ACT组件,又不想用adksetup.exe,可下载下列4个文件,置于同一目录,双击msi安装即可。
Application Compatibility Toolkit-x64_en-us.msi
0a3a39d2f8a258e1dea4e76da0ec31b8.cab
83bd1072721871ea0bdc4fab780d9382.cab
f7699e5a82dcf6476e5ed2d8a3507ace.cab
具体下载链接是:
https://download.microsoft.com/download/8/6/c/86c218f3-4349-4aa5-beba-d05e48bbc286/adk/Installers/Application%20Compatibility%20Toolkit-x64_en-us.msi
https://download.microsoft.com/download/8/6/c/86c218f3-4349-4aa5-beba-d05e48bbc286/adk/Installers/0a3a39d2f8a258e1dea4e76da0ec31b8.cab
https://download.microsoft.com/download/8/6/c/86c218f3-4349-4aa5-beba-d05e48bbc286/adk/Installers/83bd1072721871ea0bdc4fab780d9382.cab
https://download.microsoft.com/download/8/6/c/86c218f3-4349-4aa5-beba-d05e48bbc286/adk/Installers/f7699e5a82dcf6476e5ed2d8a3507ace.cab
我为啥知道需要后三个文件呢,因为安装msi时提示找不到它们。
缺省打开ACT,"Compatibility Fixes"项数不全,有个隐藏开关/x,指定后项数会多一些:
"C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Application Compatibility Toolkit\Compatibility Administrator (64-bit)\Compatadmin.exe" /x