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 ...
随机推荐
- iOS - OC NSNumber 数字
前言 @interface NSNumber : NSValue @interface NSDecimalNumber : NSNumber 将基本数据类型包装成 OC 对象 1.NSNumber 与 ...
- iOS - UIWebView
前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UIWebView : UIView <NSCoding, UIScrol ...
- spring之aop概念和配置
面向切面的一些概念: 简单说: 连接点就一些方法,在这些方法基础上需要额外的一些业务需求处理. 切入点就是方法所代表的功能点组合起来的功能需求. 通知就是那些额外的操作. 织入就是使用代理实现整个切入 ...
- Linux_常用命令_02
1. 配置网络参数: (1).root登录 --> setup命令 进入到 "text mode setup utiliy" (2).运行命令"/etc/rc.d/ ...
- (二)stm32之中断配置
一.stm32的中断和异常 Cortex拥有强大的异常响应系统,它能够打断当前代码执行流程事件分为异常和中断,它们用一个表管理起来,编号为0~15为内核异常,16以上的为外部中断,这个表就是中断向量表 ...
- ListView 使用详解
在ListView中设置Selector为null会报空指针?mListView.setSelector(null);//空指针试试下面这种:mListView.setSelector(new Col ...
- html5移动端制作知识点总结
一.测试工具:1.Chrome 2.Opera Mobile二.分辨率:一般现代手机最小320px,最大640px.三.全屏流体设计: 1.腾讯新闻:http://xw.qq.com/ 2.途牛旅游: ...
- 深入浅出RxJava(一:基础篇)
RxJava正在Android开发者中变的越来越流行.唯一的问题就是上手不容易,尤其是大部分人之前都是使用命令式编程语言.但是一旦你弄明白了,你就会发现RxJava真是太棒了. 这里仅仅是帮助你了解R ...
- 扩展spring data jpa的数据更新方法时注意事项
//此处必须加@Transactional,否则不能运行,报错 @Transactional @Modifying @Query("update ExamItem a set a.versi ...
- linux套件安装过程中configure,make,make install的作用
./configure,make,make install都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤.其中: ./configure是检测程序文件,用来检测你的安装平 ...