InLineHookSSDT
//当Ring3调用OpenProcess
//1从自己的模块(.exe)的导入表中取值
//2Ntdll.dll模块的导出表中执行ZwOpenProcess(取索引 进入Ring0层)
//3进入Ring0 从Ntoskernel.exe模块的导出表中执行ZwOpenProcess(取索引 获得SSDT服务地址)
//4通过索引在SSDT表中取值(NtOpenProcess的地址)
//5真正调用NtOpenProcess函数
在真正调用OpenProcess后 可以通过修改里面跳转函数的地址 从而HookSSDT
/*
kd> u NtOpenProcess
nt!NtOpenProcess:
fffff800`0415d2ec 4883ec38 sub rsp,38h
fffff800`0415d2f0 65488b042588010000 mov rax,qword ptr gs:[188h]
fffff800`0415d2f9 448a90f6010000 mov r10b,byte ptr [rax+1F6h]
fffff800`0415d300 4488542428 mov byte ptr [rsp+28h],r10b
fffff800`0415d305 4488542420 mov byte ptr [rsp+20h],r10b
fffff800`0415d30a e851fcffff call nt!PsOpenProcess (fffff800`0415cf60)
fffff800`0415d30f 4883c438 add rsp,38h
fffff800`0415d313 c3 ret
*/
win7_64中OpenProcess
/*
u ZwOpenProcess
nt!ZwOpenProcess:
805016b4 b87a000000 mov eax,7Ah
805016b9 8d542404 lea edx,[esp+4]
805016bd 9c pushfd
805016be 6a08 push 8
805016c0 e88c0d0400 call nt!KiSystemService (80542451)
805016c5 c21000 ret 10h
nt!ZwOpenProcessToken:
805016c8 b87b000000 mov eax,7Bh
805016cd 8d542404 lea edx,[esp+4] */
WinXP中OpenProcess
首先获得SSDT的地址
在SSDT中查找OpenProcess的Index
保存原来函数地址 (在卸载驱动时要恢复回去);
修改ZwOpenProcess中的跳转函数
http://www.cnblogs.com/yifi/p/4968755.html
InLineHookSSDT的更多相关文章
- Resume InlineHookSSDT
在InlineHook中修改了zwOpenProcess函数的中的指令 与Resume HookSSDT同理 找出一个正确的值覆盖上去就行. 突发奇想 有没有可能上去一个驱动或者程序 直接卸载掉I ...
随机推荐
- 百度web前端面试2015.10.18
邮件里通知的周日下午两点参加百度校招面试,我13:10分就到了,前台先让我拿了个面试资格单(上面是我的信息),然后在web前端面试入口排队,面试在百度食堂举行的,等了大概1个小时,放我去面试.都是一对 ...
- uploadify多图片上传实例
upload.php <html> <head> <meta http-equiv="Content-Type" content="text ...
- (五)c语言条件编译#ifdef与#if defined
c语言条件编译#ifdef与#if defined defined NAME是用来判断NAME是否被定义了(被用define定义了). #ifdef NAME == #if defined(NAME) ...
- 动态替换fragment
// [1]获取手机的宽和高 windommanager WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE); in ...
- openfire消息通知推送
package cn.zsmy.utils.openfire; import java.io.BufferedReader; import java.io.InputStreamReader; imp ...
- 转 java List 与ArrasyList 区别
转 List是一个接口,而ListArray是一个类, ListArray继承并实现了List. 为什么要用 List list = new ArrayList() ,而不用 ArrayList al ...
- jQuery中其他
hide: 隐藏 $('img').hide(); show:显示 $('img').show(); 单选多选下拉菜单 选中状态checked ($('.radio:checked')); 单选 ( ...
- 如何创建和使用XMLHttpRequest对象?
创建XMLHttpRequest对象,我有以下几种方法,顺带给大家介绍下他们的使用,一起来看看那吧. 1. 第一种,我们可以使用构造函数的方式.直接new的方式,这样我们就构造了这个对象. reque ...
- css编码规范
css编码规范 https://segmentfault.com/a/1190000002460968 常用样式测试工具 W3C CSS validator:http://jigsaw.w3.org/ ...
- 可视化工具之 IGV 使用方法
整合基因组浏览器(IGV)是一种高性能的可视化工具,用来交互式地探索大型综合基因组数据.它支持各种数据类型,包括array-based的和下一代测序的数据和基因注释. IGV这个工具很牛,发了NB: ...