将编译出来的cryptbase.dll放在signtool.exe同级目录,就能让signtool接受过期的证书。
这个项目综合了各路hook的优点,挑选了cryptbase.dll作为Hook点,这样支持各版本的signtool(实测win7 sdk,win10 sdk都可以)。
用的processmonitor 观察signtool加载的dll,旧版和新版的signtool共同加载的dll挺多,但是许多是直接从系统目录里加载的,即使放在signtool同级目录,也无法加载。
一个个测试,发现cryptbase.dll 可以。
用的dumpbin /exports 导出cryptbase.dll的导出函数。
代码使用了Detours库进行API钩取(Hooking),主要实现对系统时间相关函数的篡改。