PATCH 垫片 (.sdb's) 在 Windows 10 中不再起作用吗?

逆向工程 视窗 修补
2021-06-17 04:58:09

无论我做什么,我似乎都无法让我的 Windows 10(64 位,内部版本 1607)在自定义 SDB 中应用任何补丁(如Jon Erickson 2014 年文章中所述)。

我正在使用 Jon 的sdb-explorer从以下来源生成补丁 SDB(假设 calc.exe 的 PE 校验和为 0000BE15,入口点 RVA 为 0x2900):

!sdbpatch
APP=calc.exe
DBNAME=calc_test
P:calc.exe,0xbe15
R:calc.exe,0x2900,CCCCCCC3
!endsdbpatch

确切的命令是:

sdb-explorer.exe -C calc-test.txt -o calc-test.sdb
sdbinst.exe -p calc-test.sdb

安装成功但没有效果 - calc.exe仍然可以正常启动和运行。

因此我的问题是 - PATCH 机制是否在 Windows 10 中被删除或以某种方式瘫痪?


ps 我出于正当理由需要这个 - 我正在尝试修补触摸板实用程序,该实用程序发布在 Windows 10 UWP 应用程序中不起作用的鼠标滚轮消息,但该实用程序使用 uiAccess="true" 签名,所以我可以' t 只是修补可执行文件。

1个回答

从 Jon 的初步调查来看,似乎修补功能确实已在 Windows 10 上删除

我比较了 Windows 7 和 Windows 10 上的 apphelp.dll。Windows 10 版本没有 SeiApplyPatch 功能。这就是负责执行 PATCH 的原因。看来微软已经删除了这个功能。

但是,您似乎仍然可以使用 shims,尽管显然不是在所有二进制文件上。