SetProcessMitigationPolicy 禁止mai.exe进程使用dll 示例
时间: 2023-05-11 14:06:49 浏览: 237
可以使用以下代码来禁止mai.exe进程使用dll:
```c++
#include <Windows.h>
int main()
{
HANDLE hProcess = GetCurrentProcess();
DWORD dwFlags = PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON;
PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY signaturePolicy = { 0 };
signaturePolicy.MicrosoftSignedOnly = 1;
SetProcessMitigationPolicy(ProcessSignaturePolicy, &signaturePolicy, sizeof(signaturePolicy));
SetProcessMitigationPolicy(ProcessImageLoadPolicy, &dwFlags, sizeof(dwFlags));
return 0;
}
```
这段代码将禁止mai.exe进程加载非Microsoft签名的二进制文件。
相关问题
禁止mai.exe进程使用系统dll 示例
可以使用以下代码实现:
1. 打开命令提示符(管理员权限)。
2. 输入以下命令:
```
icacls "C:\Windows\System32\mai.exe" /deny Everyone:(RX)
```
这将禁止所有用户(包括管理员)读取和执行 mai.exe 文件。
3. 输入以下命令:
```
icacls "C:\Windows\System32\mai.exe" /remove:g Everyone
```
这将删除之前的权限设置。
请注意,这可能会影响系统的正常运行,因此请谨慎操作。
禁止mai.exe进程调用系统dll 示例
代码如下:
```c++
#include <Windows.h>
int main()
{
// 获取 mai.exe 进程句柄
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 1234); // 1234 为 mai.exe 进程的 PID
// 获取 kernel32.dll 模块句柄
HMODULE hModule = GetModuleHandle(TEXT("kernel32.dll"));
// 获取 LoadLibraryA 函数地址
FARPROC pFunc = GetProcAddress(hModule, "LoadLibraryA");
// 禁止 mai.exe 进程调用 LoadLibraryA 函数
DWORD dwOldProtect;
VirtualProtectEx(hProcess, pFunc, sizeof(FARPROC), PAGE_EXECUTE_READWRITE, &dwOldProtect);
WriteProcessMemory(hProcess, pFunc, "\xC3", 1, NULL);
VirtualProtectEx(hProcess, pFunc, sizeof(FARPROC), dwOldProtect, &dwOldProtect);
// 关闭句柄
CloseHandle(hProcess);
return 0;
}
```
这段代码可以禁止指定进程调用系统 DLL 中的指定函数,比如上面的例子就是禁止 mai.exe 进程调用 kernel32.dll 中的 LoadLibraryA 函数。
阅读全文