windbg 使用

lm
显示已经加载的模块和首地址

!dh
dll的首地址

bp 首地址+!dh获得的EP地址
或者:
sxe ld:dllname.dll
.restart
来断下dll的执行但不是运行到oep处

.chain
命令可以检查目前WinDbg已经加载的扩展

sxe clr
开启检测CLR的First Chance Exception的功能
默认情况下,WinDbg会忽略First Chance Exception,直到Second Chance Exception时才捕获
通过“sx”命令可以检查目前WinDbg对各种异常的处理方式

!Threads
查看当前的线程状态

~0s
输入命令“~0s”以切换到0号线程
!clrstack
输入“!clrstack”查看CLR上的堆栈:

查看调用堆栈:命令的话,有
kv
dps esp
不知道是不是你想要得 
dps esp l 100
可以加l参数,表示要看得长度

转载于:https://www.cnblogs.com/IS2120/archive/2011/09/21/6746002.html

### Windbg 使用教程 #### 一、环境搭建 为了能够顺利使用WinDbg进行调试,需要先安装合适的版本。对于新用户来说,推荐安装WinDbg Preview版,该版本更新频繁且兼容性较好[^2]。 #### 二、基础命令介绍 掌握一些常用的命令有助于快速上手WinDbg: - **启动程序并附加到进程** - 可以通过`File -> Open Executable...`来打开可执行文件(.exe),或者利用快捷键Ctrl+E。 - **继续运行/暂停目标应用程序** - 输入`g`可以让被调试的应用程序继续执行直到遇到断点或者其他异常情况为止;当希望中断正在运行的目标应用时,则可以点击工具栏上的“Break”按钮或将光标置于命令窗口内按组合键Ctrl+Break实现强制停止[^3]。 - **查看调用堆栈信息** - 执行`kv`指令会显示当前线程完整的函数调用链路详情,这对于理解代码流程非常有帮助。 - **反汇编特定区域机器码** - 如果想要了解某段C/C++源码对应的底层汇编码是什么样的形式的话,那么就可以借助于`uf <function_name>`来进行局部范围内的逆向分析操作了。 - **读取内存中的数据值** - 当涉及到具体地址处的数据访问需求时(比如字符串),则可通过`da <address>`的形式获取相应位置存储的内容展示出来给开发者查阅。 - **刷新模块列表** - 若是在动态链接库(DLLs)加载过程中遇到了问题或者是怀疑某些DLL未正常注入至进程中去的时候,不妨试试`.reload`这条语句的作用吧! #### 三、高级特性探索 除了上述提到的基础功能外,WinDbg还提供了许多强大的扩展能力等待着大家深入挖掘,例如生成转储(dump)文件以便离线状态下也能开展有效的故障排查工作等。 ```powershell // 创建小型Dump文件示例 .dump /ma c:\path\to\your\dmpfile.dmp ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值