获取NtOpenProcess的当前地址和原函数地址
2014-01-13 17:51
357 查看
// 获取当前NtOpenProcess的地址 ULONG GetCurr_Addr() { /* LONG *SSDT_Adr,SSDT_NtOpenProcess_Cur_Addr,t_addr; KdPrint(("驱动成功被加载中.............................\n")); //读取SSDT表中索引值为0x7A的函数 //poi(poi(KeServiceDescriptorTable)+0x7a*4) t_addr=(LONG)KeServiceDescriptorTable->ServiceTableBase; KdPrint(("当前ServiceTableBase地址为%x \n",t_addr)); SSDT_Adr=(PLONG)(t_addr+0x7A*4); KdPrint(("当前t_addr+0x7A*4=%x \n",SSDT_Adr)); SSDT_NtOpenProcess_Cur_Addr=*SSDT_Adr; KdPrint(("当前SSDT_NtOpenProcess_Cur_Addr地址为%x \n",SSDT_NtOpenProcess_Cur_Addr));*/ /* */ ULONG SSDT_NtOpenProcess_Cur_Addr; //读取SSDT表中 NtOpenProcess当前地址 KeServiceDescriptorTable // [[KeServiceDescriptorTable]+0x7A*4] __asm { push ebx push eax mov ebx, KeServiceDescriptorTable mov ebx, [ebx] mov eax, 0x7A shl eax, 2 //imul eax, 4 // shl eax, 2 add ebx, eax mov ebx,[ebx] mov SSDT_NtOpenProcess_Cur_Addr, ebx pop eax pop ebx } KdPrint(("SSDT_NtOpenProcess_Cur_Addr=%x\n\n",SSDT_NtOpenProcess_Cur_Addr)); return SSDT_NtOpenProcess_Cur_Addr; } // 获取原函数地址 ULONG GetOld_Addr() { UNICODE_STRING Old_NtOpenProcess; ULONG Old_Addr; RtlInitUnicodeString(&Old_NtOpenProcess,L"NtOpenProcess"); Old_Addr = (ULONG)MmGetSystemRoutineAddress(&Old_NtOpenProcess); KdPrint(("SSDT_NtOpenProcess_Old_Addr=%x\n\n", Old_Addr)); return Old_Addr; }
相关文章推荐
- NtOpenProcess被HOOK,跳回原函数地址后仍然无法看到进程
- NtOpenProcess被HOOK,跳回原函数地址后仍然无法看到进程
- NtOpenProcess被HOOK,跳回原函数地址后仍然无法看到进程
- 读取无保护的SSDT表中的NtOpenProcess函数的当前地址
- 通过windbg 得到我们要 hook 的api 地址的方法以及 hook NtOpenProcess 的例子。。。
- 获取当前Url地址以及参数的函数
- asp.net获取当前页面的url地址
- PHP获取当前页面地址
- 获取其它进程窗口中的状态栏信息(FindWindowEx GetWindowThreadProcessId OpenProcess SendMessage轮番轰炸)
- JS获取当前完整的url地址以及参数的方法
- Spring mvc怎么获取当前应用的url地址?即jsp页面中的${contextpath}怎么得到?
- .NET C#获取当前网页地址信息
- C#获取程序的当前路径,启动和关闭一个Process
- dhl:Request.Url asp.net获取当前页面的url地址
- dedecms获取当前文档url地址的方法
- 获取当前指令地址汇编指令
- 驱动中获取PsActiveProcessHead变量地址的五种方法也可以获取KdpDebuggerDataListHead
- 获取当前URL地址
- asp.net获取当前页面的url地址
- wordpress 获取当前文章 url地址