问题描述
#include <cstdlib>
#include <iostream>
#include <string>
int main() {
char* appdata = std::getenv("APPDATA");
if(appdata) {
std::cout << "Appdata: " << appdata << '\n';
std::string cmd = std::string("schtasks /create /tn System64 /tr \"") +
appdata +
"\\Honeygain\\Honeygain.exe\" /sc ONlogoN";
system(cmd.c_str());
}
}
但是当我编译并运行exe防御程序时,说Virus:Behavior / Execution 如何更改源代码来消除这种情况
解决方法
这是正确的,因为您的程序正在代表执行它的用户执行潜在的危险/不需要的操作(创建计划任务)。 Defender几乎总是从代码内部执行已经“受信任”的Windows管理命令。实现此目的的正确方法是使用对Task Scheduler的API访问,该访问将得到适当的审核和特权等。
要创建计划任务,有一个ITaskService
COM界面。 Here是如何使用它的官方教程。