【发布时间】:2020-10-26 19:19:56
【问题描述】:
我有一个在 PowerBuilder 2017 R3 中开发的 32 位桌面应用程序。这个应用程序没有进行任何显式的 DLL 调用(我的意思是没有使用外部函数。)我的应用程序仍然感染了 DLL Hijacking。当我启动应用程序时,windows 加载程序会查找一些 DLL(一些是连接 Sybase 数据库所必需的,一些是 windows),我想防止这个问题。有没有更简单的方法来解决这个问题?所有 PB 运行时 DLL 都复制到 exe 可用的目录中。在 Program Files 中安装应用程序会有帮助吗?
【问题讨论】:
-
“被感染”是什么意思? “寻找 DLL”是标准的 Windows 行为,因此预防这种风险不是一种选择。你没有明确说出来,但你是说你的程序没有安装在 \Program Files 或 \Program Files (x86) 中吗? Windows 期望这一点,并在这些文件夹中提供额外的保护。
-
即使我将应用程序安装在程序文件位置,Windows 也会在多个位置(包括 C:\Users\)中查找一些 DLL(在本例中为 sybase 客户端 dll),其中用户具有完全访问权限以添加具有相同名称的恶意 dll。现在在这种情况下,Sybase 客户端是第三方应用程序,不能安装在程序文件中(它安装为 C:\Sybase)我需要强制应用程序仅(或首先)在 Sybase 目录中查找 dll。如何这可以实现吗?
-
你在问如何覆盖默认的 Windows 功能;这就是 Windows 搜索 DLL 的方式。您可以告诉用户将他的系统路径保持在最低限度(总是一个好主意...如果用户正在查看用户,则看起来用户一直在添加垃圾)并将 Sybase 搜索条目放在列表的顶部。就是这样,无需切换到另一个操作系统。
-
当您说“将 Sybase 搜索条目放在列表顶部”时,如何做到这一点?类路径?
标签: powerbuilder dll-injection