【发布时间】:2012-08-30 15:26:36
【问题描述】:
我们有一个Delphi 7 应用程序在许多客户端机器上运行。最近,一些客户端计算机开始使用 Microsoft Security Essentials。它开始将我们的可执行文件识别为恶意软件并立即将其关闭。 MS Security Essentials 显示的消息是:
“Security Essentials 在您的 PC 上检测到它无法识别的项目......”
奇怪的是它并不总是出现在应用程序的相同选项中。您可以在后续登录时执行相同的操作,有时它会起作用,而有时安全要素会将其关闭。这使得在我们的应用程序中缩小到特定原因变得非常困难。
我尝试使用提升的帐户权限运行该应用程序,但仍然无法使其失败。运行同一应用程序的 Delphi XE2 编译时,我无法重现该问题。
关于寻找什么的任何想法?我们确实在努力避免将我们的应用程序添加到 Security Essentials 排除列表中。我们的应用程序从未被各种安全程序(norton、mcaffee 等)识别为问题。
【问题讨论】:
-
保证不会发生这种情况的最简单方法是使用具有 MS 接受根的 Authenticode 证书签署您的二进制文件(例如,威瑞信而不是自行颁发)。
-
您的应用程序是否动态加载 dll 或 bpls?我问的原因是,您的描述不符合经典的“启动时被阻止”场景,即 .exe 中的签名触发识别。您的案例似乎在执行过程中稍后出现,似乎取决于所使用的选项。
-
@Will 这不能保证任何事情。
-
@will 如果我有 VeriSign 证书并签署了病毒,我当然希望所有的 AV 软件都能检测到它,无论证书与否。证书只是证明我上次修改了文件。
-
@DavidHeffernan:我签署了我所有的 virii。最佳实践。
标签: delphi delphi-7 delphi-xe2 ms-security-essentials