首页
社区
课程
招聘
另一种DWMHOOK
发表于: 2023-3-5 08:35 8484

另一种DWMHOOK

2023-3-5 08:35
8484

void SyscallCallBack(ULONG64 R10, ULONG64 RAX)
{
if (R10 != (ULONG64)((ULONG64)ZwWaitForSingleObject + 0x14)) { return; }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
if (!LoopLock)
{
    LoopLock = true;
 
    if (ThreadInit == false)
    {
        DWORD CurrentThreadId = GetCurrentThreadId();
 
        ULONG64 ThreadStartAddress = GetThreadStartAddressByThreadId(CurrentThreadId);
 
        if (ThreadStartAddress > DwmCoreModle && ThreadStartAddress < DwmCoreModle + DwmCoreModleSize)
        {
            TarGetThreadId = CurrentThreadId;
 
            ThreadInit = true;
        }
    }
 
    if (pDxgiSwapChain != NULL && ThreadInit == true && GetCurrentThreadId() == TarGetThreadId)
    {
 
        PresentCallBack(pDxgiSwapChain);
    }
 
    LoopLock = false;
}

}

 

第二种:

 

int64 fastcall DxgkRender()
{

1
2
3
4
5
6
7
8
9
10
11
if (PsGetThreadProcess(KeGetCurrentThread()) == DWMEprocess)
{
 
 
    PKTRAP_FRAME ContextRecord = (PKTRAP_FRAME)(*(ULONG64 *)((ULONG64)KeGetCurrentThread() + 0x090));
 
    ContextRecord->Rip = 0x00007DF420BB7790;
 
}
 
return g_DxgkRender(DeviceState);//g_DxgkRender(a1, a2, a3);

}
hook win32k修改KTRAP_FRAME->RIP来进行HOOK
通过ProcessInstrumentationCallback来实现hook dwm 老技术了这都是没啥好说的 丢出来了
老群G了。群号:322595404


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2023-3-5 08:47 被BDBig编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (3)
雪    币: 4112
活跃值: (5812)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
2
挂牛
2023-3-6 11:16
0
雪    币: 3176
活跃值: (1786)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
挂A
2023-3-6 13:19
0
雪    币: 1448
活跃值: (1881)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
1+
2023-3-16 10:46
0
游客
登录 | 注册 方可回帖
返回
//