-
-
[原创]汇编与驱动-绕过SSDT保护进程
-
发表于:
2012-7-10 18:05
9419
-
汇编与驱动-绕过SSDT保护进程
这篇帖子是紧接上一篇“汇编与驱动-采用SSDT Hook NtOpenProcess保护进程”帖子的,需要用到他的例子
还是以郁金香驱动教程为例:021课_绕过驱动保护,这里郁金香老师没给原代码,只能看视频。
其中关键的代码,也就是写入 jmp的代码如图:
原理是声明2个 _JMPCODE的结构,_JMPCODE如下:
typedef struct _JMPCODE
{
BYTE E9;
ULONG JMPADDR;//88881234=B
}JMPCODE,*PJMPCODE;
NTSTATUS VK_WriteSSDT(ULONG WriteAddr, ULONG JmpAddr)
{
ULONG JmpCode= JmpAddr - WriteAddr -5; //得到要写入的跳转地址码
DbgPrint("要写入的地址为:%x\n", JmpCode);
_asm
{
pushad
cli
mov eax, cr0
and eax, 0FFFEFFFFh
mov cr0, eax
mov eax, JmpCode
mov ebx, WriteAddr
mov [ebx], 0E9h
inc ebx
mov [ebx], eax
mov eax, cr0
or eax, 10000h
mov cr0, eax
sti
popad
}
return STATUS_SUCCESS;
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)