我用 C 编写了以下程序来测试 Windows API 函数PathCchRemoveExtension
作品:
#include <Windows.h>
#include <strsafe.h>
#include <pathcch.h>
#include <stdio.h>
#pragma comment(lib, "pathcch.lib")
int __cdecl wmain(int argc, wchar_t *argv[])
{
wchar_t fileName[MAX_PATH], fileNameNoExt[MAX_PATH];
StringCchCopyW(fileName, MAX_PATH, L"C:\\DOS\\COMMAND.COM");
StringCchCopyW(fileNameNoExt, MAX_PATH, fileName);
PathCchRemoveExtension(fileNameNoExt, MAX_PATH);
wprintf(L"%s => %s\n", fileName, fileNameNoExt);
return 0;
}
我在命令行上使用“ cl extremove_test.c
”(没有其他参数/优化)对其进行编译,当我尝试运行它时,Windows Defender 立即将该程序标记为“严重”威胁并将其隔离:
我使用的是 Windows 10 Pro x64 2004 版和最新版本的 Windows Defender 定义(根据我的“设置”应用,版本号为 1.327.634.0)
编译器版本为 19.27.29112(适用于 x86)
为什么这么简单的程序会被检测为“严重”威胁?
答案1
我的猜测是,它查看了 DOS(完全不安全)并将其困住。
我有一个早期版本的 Sync Back Pro(超过 5 年前的版本),它导致 Windows Defender 以同样的方式陷入困境。我拥有最新版本,所以我允许 WD 删除它。Sync Back Pro 在其程序之外调用以同步其他文件。
您能使用不同于 DOS 的方法吗?