由于Antivirus,Win32 WriteFile不会返回

时间:2012-09-25 08:45:41

标签: delphi winapi antivirus

我的代码是用Delphi 7编写的,但我认为它不起作用。

我尝试使用WriteFile覆盖文件的内容。 除了编写“.dll”文件并且防病毒处于活动状态时,它才能正常工作。

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

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

我该如何防止这种情况?

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

根据其他人对如何解决AntiVirus问题的说法,在您的代码中,您还可以使用重叠I / O在WriteFile()上设置超时,以确保您的代码不会再出现死锁再次抬起丑陋的脑袋。如果重叠操作超时,您可以使用CancelIo()取消,然后将问题报告给用户。

答案 1 :(得分:0)

如果将数字签名添加到可执行文件中,则触发防病毒的可能性就会降低。很多delphi程序被反病毒软件误用,D7最差。

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

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