某些防病毒软件删除了自动更新程序文件
Auto updater file deleted by certain antivirus
我目前正在开发能够使用在服务器上找到的最新应用程序自动更新应用程序的应用程序。这是常见的逻辑:
- 客户端的应用程序将version.txt保存客户端上安装的最新版本。
- 服务器有其 version.txt 提供最新交付版本的信息,并通过 windows 文件共享共享。
- 我有一个名为 "update.exe" 的应用程序,它会通过读取 version.txt 并将其与本地 version.txt 进行比较来检查服务器上的 version.txt。如果版本不同,update.exe 会将我的应用程序从 "myapp.exe" 重命名为 "b_myapp.exe" 以进行备份。 update.exe 会将 "myapp.exe" 从服务器复制到本地文件夹。复制文件后,它将通过服务器 "myapp.exe" 验证 "myapp.exe"。如果文件不匹配,它会删除并重试几次,如果失败3次,它会复制回"b_myapp.exe"到"myapp.exe"并说"update fail. please contact customer support"。如果验证通过,"update.exe" 将删除 "b_myapp.exe",将 version.txt 更新为最新的 运行 "myapp.exe".
这可能不是实现自动更新的最佳选择。但我们已经实施这种方法多年,在任何防病毒软件上都没有问题,直到最近有报道称卡巴斯基防病毒软件将更新的 "update.exe" 和 "myapp.exe" 视为风险。
执行"update.exe" 将提示 Kapersky 对不需要的应用程序发出警报,您只有 2 个选项,即不 运行 并对应用程序进行杀毒和重启。如果您选择杀毒,它将删除 "myapp.exe" 并重新 运行 "setup.exe"(安装文件)并进行修复,使应用程序 return 到最旧版本.如果您选择不 运行 选项,它将删除 "myapp.exe",如果您重新 运行 应用程序,它将调用 "setup.exe" 并进行修复。所以选择选项 1 或 2 的结果是一样的。
我在服务器上单独扫描"myapp.exe",没有感染。我手动从文件共享复制文件到本地电脑,几秒后被杀毒软件自动删除
我做了什么:
- 将文件夹添加到卡巴斯基反病毒软件的白名单中
- 将 "update.exe" 和 "myapp.exe" 添加到受信任的应用程序列表中。
它没有删除,但也没有执行。
仅供参考,AV 已经安装了几个月,直到最近才出现问题。
关于如何在 VB.NET 上实现自动更新的任何建议(或者我应该将 "update.exe" 更改为其他语言)?或者关于我的应用程序可以从 Kapersky AV 列入白名单的任何建议?
我通过签署可执行文件尝试了@Uwe Keim 建议的方法,确实解决了。
我目前正在开发能够使用在服务器上找到的最新应用程序自动更新应用程序的应用程序。这是常见的逻辑:
- 客户端的应用程序将version.txt保存客户端上安装的最新版本。
- 服务器有其 version.txt 提供最新交付版本的信息,并通过 windows 文件共享共享。
- 我有一个名为 "update.exe" 的应用程序,它会通过读取 version.txt 并将其与本地 version.txt 进行比较来检查服务器上的 version.txt。如果版本不同,update.exe 会将我的应用程序从 "myapp.exe" 重命名为 "b_myapp.exe" 以进行备份。 update.exe 会将 "myapp.exe" 从服务器复制到本地文件夹。复制文件后,它将通过服务器 "myapp.exe" 验证 "myapp.exe"。如果文件不匹配,它会删除并重试几次,如果失败3次,它会复制回"b_myapp.exe"到"myapp.exe"并说"update fail. please contact customer support"。如果验证通过,"update.exe" 将删除 "b_myapp.exe",将 version.txt 更新为最新的 运行 "myapp.exe".
这可能不是实现自动更新的最佳选择。但我们已经实施这种方法多年,在任何防病毒软件上都没有问题,直到最近有报道称卡巴斯基防病毒软件将更新的 "update.exe" 和 "myapp.exe" 视为风险。
执行"update.exe" 将提示 Kapersky 对不需要的应用程序发出警报,您只有 2 个选项,即不 运行 并对应用程序进行杀毒和重启。如果您选择杀毒,它将删除 "myapp.exe" 并重新 运行 "setup.exe"(安装文件)并进行修复,使应用程序 return 到最旧版本.如果您选择不 运行 选项,它将删除 "myapp.exe",如果您重新 运行 应用程序,它将调用 "setup.exe" 并进行修复。所以选择选项 1 或 2 的结果是一样的。
我在服务器上单独扫描"myapp.exe",没有感染。我手动从文件共享复制文件到本地电脑,几秒后被杀毒软件自动删除
我做了什么: - 将文件夹添加到卡巴斯基反病毒软件的白名单中 - 将 "update.exe" 和 "myapp.exe" 添加到受信任的应用程序列表中。
它没有删除,但也没有执行。
仅供参考,AV 已经安装了几个月,直到最近才出现问题。
关于如何在 VB.NET 上实现自动更新的任何建议(或者我应该将 "update.exe" 更改为其他语言)?或者关于我的应用程序可以从 Kapersky AV 列入白名单的任何建议?
我通过签署可执行文件尝试了@Uwe Keim 建议的方法,确实解决了。