2

我的代码是用 Delphi 7 编写的,但我认为它并没有起到特别的作用。

我尝试用 WriteFile 覆盖文件的内容。除非编写“.dll”文件并且防病毒处于活动状态,否则它可以正常工作。

  • 打开文件的句柄仍然可以。
  • 写入被阻止:WriteFile 函数不返回!

防病毒似乎可以防止覆盖该 dll。但是,最糟糕的是我必须重新启动 PC,因为我的应用程序被阻止、任务管理器被阻止、Windows 资源管理器被阻止等等。

我怎样才能防止这种情况?

有任何想法吗 ?

4

2 回答 2

3

除了其他人所说的如何解决防病毒问题之外,在您的代码中,您还可以使用重叠 I/O 来设置超时,WriteFile()以确保您的代码在此问题再次出现时不会死锁。如果重叠操作超时,您可以使用 取消它CancelIo(),然后将问题报告给用户。

于 2012-09-25T17:50:23.433 回答
0

如果您将数字签名添加到您的可执行文件中,则触发防病毒软件的可能性较小。很多delphi程序被杀毒软件误杀,D7最差。

不确定您要写入 dll 的内容。防病毒软件不喜欢 PE 之外的额外数据。

如果您只需要更新一个dll,请尝试重命名旧dll,并编写一个新文件,然后删除旧的。

于 2012-09-25T10:00:44.467 回答