调用 kernal32 IsDebuggerPresent 函数会导致防病毒程序标记我的应用程序吗?

Will calling the kernal32 IsDebuggerPresent function cause antivirus programs to flag my app?

我正在编写一个调用 IsDebuggerPresent 的 c# 桌面应用程序,如果它是我的应用程序退出。我在下面的文章中读到,防病毒程序会寻找此功能作为恶意软件的指标: https://www.alienvault.com/open-threat-exchange/blog/your-malware-shall-not-fool-us-with-those-anti-analysis-tricks

此功能会让我的应用程序被防病毒程序标记吗?

您的程序极不可能被标记。

这篇文章讨论的是调用的本机版本,该调用使用了一种非常不标准的调用方式来尝试避免检测,而不是托管版本。

但是,我怀疑你会发现在你的程序中这样做有什么好处,它根本不会阻止人们分析你的程序。人们可以在 IsDebuggerPresent 的调用上放置一个断点,然后跳过 if 检查。添加此检查可能会导致您在尝试解决代码中的问题时更加头疼。

唯一知道的方法就是测试。我知道赛门铁克的企业版完全不介意托管版。

请注意,该调用不会促进系统上的病毒 activity。它只是帮助病毒让 AV 实验室的分析师烦恼长达一天。没有理由在野外寻找它作为病毒的迹象。