使用Windbg查看TEB结构
来源:互联网 发布:黄牛软件下载 编辑:程序博客网 时间:2024/05/23 20:35
使用Windbg来查看TEB的结构,只用命令:!TEB即可(注意:如果系统中安装了360杀毒软件以及安全卫士,将导致Windbg的此命令以 及其他部分命令不能使用,建议卸载掉360杀毒软件以及安全卫士)。通过结果可以查看TEB的内部结构,TEB的第一个结构叫做NtTib,它包含8个成 员变量,其中第一个成员变量是_EXCEPTION_REGISTRATION_RECORD结构,它有两个成员变量,分别为Next和Handler, 这个结构是用于ring3的异常调试之用。在MASM下编写过异常处理的都会熟悉一下代码:
push _ExceptionHandle
push fs:[0]
mov fs:[0],esp
这段代码是编写异常处理经常用到的,其原理就是使用了此结构以及FS的知识,相关资料可以到网上查询。
再NtTib的0x18偏移处是Self的指针,它指向NtTib本身,同时NtTib又是TEB结构的第一个成员变量,所以
mov eax,fs:[18h]//以fs为段选择器
此时的eax就指向了TEB结构本身,也就是Self指向了TEB结构。
在TEB的0x30处是PEB结构,所以
mov eax,[eax+30h]//以ds为段选择器
此时的eax已经指向了PEB结构。在Windbg中可以通过下列方法来获得PEB结构的地址:
1.>dt ntdll!_TEB的方式来查看TEB结构的具体内容,并从中可以查看到PEB的地址。
2.>!teb同样可以查看。
3.>r $peb直接打印处peb的地址
4.>dd $teb+30 L1可以直接查处位于teb+30处的peb的地址
通过此中方法即可获得各种TEB结构的指针进行相关的编程。参考文献([1])
***********参考文献**************************************************************
[1] 通过TEB/PEB枚举当前进程空间中用户模块列表;
http://www.newsmth.net/bbsanc.php?path=%2Fgroups%2Fcomp.faq%2FMSDN%2FIndividualSpecial%2Fhellguard%2FM.1060672344.20
- 使用Windbg查看TEB结构
- 使用windbg查看PE结构
- 使用windbg查看PE结构
- PEB TEB结构体使用
- windbg调试命令:!peb、!teb
- 使用Windbg查看CrashDump
- TEb结构分析
- TEB结构思考
- TEB结构说明
- windbg调试命令6(!peb、!teb)
- windbg调试命令6(!peb、!teb)
- 使用windbg查看PE文件格式
- 使用WinDbg查看GDT表
- Windbg查看进程的_EPROCESS结构
- 图解windbg查看Win7结构体
- 图解windbg查看Win7结构体
- TEB
- 关于使用Windbg查看线程死锁问题
- Unicode文件名中的陷阱
- Asp.net MVC学习日记六(过滤黑名单,使其无法访问)
- IT项目管理的六种错误思维
- django- models.permalink
- 哈佛学生是如何度过大学4年的
- 使用Windbg查看TEB结构
- 2.6内核Makefile简单语法与应用
- Attribute与Property 的翻译区别 Attribute的使用范围
- Android Preference Summary中实时显示内容变更
- servlet生命周期的理解
- Extjs 界面布局
- 在vs2008中设置jquery智能提示
- WHAT TESTERS FIND 测试工程师到底要发现什么?
- .net 前台调用后台的方法(绑定篇)