找NT!openprocess的当前和起源地址

今天学了下找NT!openprocess的地址 当前地址和起源地址 为什么有当前地址和起源 因为如果被SSDT被hook了地址就发生变化

 

第一个函数功能是找到OpenProcess在SSDT中的当前地址 并保存在szSSDT_NtOpenProcess中

第二个函数功能是找到OpenProcess在SSDT中的起源地址 并保存在szSSDT_OldNTOpenProcess中

 

szOldOpenProcess  dw 'N','t','O','p','e','n','P','r','o','c','e','s','s',0

.

.

.

szSSDT_NtOpenProcess dd ?

szSSDT_CurNTOpenProcess dd ?

.

.

.

_FindOpenSSDTaddr proc
pushad

mov eax,KeServiceDescriptorTable 

mov eax,dword ptr [eax]
mov eax,dword ptr [eax]

mov ebx,7ah
shl ebx,2

add eax,ebx
mov eax,dword ptr [eax]
mov szSSDT_NtOpenProcess,eax

popad
ret
_FindOpenSSDTaddr endp

 

_FindOpenSSDTOldaddr proc ;找到NT!OpenProcess在在SSDT中的起源地址 并保存在szSSDT_CurNTOpenProcess中
local OldOpenPrecessaddr:UNICODE_STRING
pushad
invoke RtlInitUnicodeString,addr OldOpenPrecessaddr,offset szOldOpenProcess
invoke MmGetSystemRoutineAddress,addr OldOpenPrecessaddr
mov szSSDT_CurNTOpenProcess,eax

popad
ret
_FindOpenSSDTOldaddr endp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值