学习进程的句柄表
来源:互联网 发布:迅龙数据恢复软件下载 编辑:程序博客网 时间:2024/06/05 08:03
首先打开任务管理器随便选一个进程
以explorer.exe为例
pid为1388
十六进制为56C
用windbg找到对应的EPROCESS
kd>!process 1388
得到EPROCESS为81e69688
再查看进程的EPROCESS
再查看进程的句柄表HANDLE_TABLE
注意HANDLE_TABLE中的第一个为句柄表的项
结构是HANDLE_TABLE_ENTRY 8个字节 64位
如果进程又有新的句柄创建,就要新申请一个HANDLE_TABLE_ENTRY
由于这个HANDLE_TABLE_ENTRY是0xe1788000
看他的后2位 为00 所以这个句柄表只有一层
所以现在随便选一个句柄值00b4
计算它对应的对象
首先根据句柄值当做索引 找到对应的HANDLE_TABLE_ENTRY的地址
0xe1788000+b4*2
取这个地址的值,也就是取这个句柄对应的HANDLE_TABLE_ENTRY的值
取高32位
0x81ef4891
当高32位不为0时 这个值就是对象头
由于对象头总是32位对齐 所以将这个高32位的后3位置0(这个我也不明白。。)
所以得到的对象头是0x81ef4890
再根据对象头找到对象
0x81ef4890+0x18(我也不知道为什么是加,情景分析里面介绍时说对象头在对象体的下边,按理说是应该减0x18)
最后我们就可以找到这个对象了
!handle 0 3 81e69688
看看这么计算找到的对象是否准确
我是菜b 继续学习
- 学习进程的句柄表
- Windows 进程的句柄表
- 进程的内核对象句柄表
- 进程的内核对象句柄表
- -进程的内核对象句柄表
- 进程的内核对象句柄表
- 3.2 进程的内核对象句柄表
- 进程句柄的应用
- -进程的句柄
- 进程的实例句柄
- windows进程句柄表
- windows进程句柄表
- 线程(进程)的句柄与伪句柄
- 关于进程句柄 窗口句柄的关系
- 模块句柄和进程句柄的区别?
- 进程句柄方面的问题
- 获取进程的句柄数
- 获取进程句柄的数量
- 项目管理总结——如何处理项目突发事件
- 一个代码简单的后台管理界面
- Perl-01---基本数据类型
- Outlook 2007设置了新的邮件信纸,设置步骤总结如下:
- jquery 简单的单击事件
- 学习进程的句柄表
- js验证固话与手机号码、邮箱
- 嵌入式linux c 学习笔记8-变量布局
- preloader访问systemManager
- AJAX(XMLHttpRequest)进行跨域请求方法详解
- Perl-02---字符串
- UNICODE和_UNICODE
- Windows7远程桌面保存密码时的bug
- Perl-03---基本输入输出