我们在C++ builder中构建了一个大型应用程序,它在启动时会查看一个文件夹并加载所有当前的 dll 文件。我认为这可能不是一件好事,并通过创建一个仅启动 Web 浏览器并打开带有“拥有”一词的图片的 dll 来尝试我的想法:P
无论如何,它奏效了。因此,系统可能会因 dll 被关闭或添加新的 dll 以任何方式受到损害。远程管理员访问,格式化驱动器,你的名字。
所以我的想法是试图堵住这个洞。这方面的最佳做法是什么?我正在考虑对 dll 进行某种签名。让 .exe 保存有效 dll 的名称列表实际上并不能解决它,因为可以替换 dll。名称和校验和列表将起作用,但保留自动加载功能但仅加载正确签名的 dll会很好。
编辑:我正在研究使用似乎可以完成这项工作的signtool.exe 。但是我找不到任何好的参考来说明如何在 C++ 中实际检查 dll 的签名。谁有链接?