• 1562阅读
  • 1回复

45.windbg-j、.if条件表达式(windbg script) 2013- [复制链接]

上一主题 下一主题
离线啊冲
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2016-02-13

目录(?)[+]




条件表达式是windbg常用的脚本必须使用到的:以下二选一,我习惯使用.if这种,和C++相近

j(execute If-Else)



j Expression Command1 ; Command2
j Expression 'Command1' ; 'Command2'
Expression: 要求值的表达式。如果表达式的值是非0值,则执行Command1 。如果表达式的值为0,则执行Command2command1、command2都是支持多条命令,如果是多条命信,可以在命令字符串两边加上单引号('),并在中间以分号来分隔各个命令
多条命令当然要加单引号,因为这command1、command2之间也是用分号分隔的

[html] view plain copy
  1. <pre name="code" class="cpp">cx=fb08  
  2. 0:000> j (eax!=0) r eax; r bx  
  3. bx=0  
  4. 0:000> j (eax!=0) r eax; r bx; r cx  
  5. bx=0  
  6. 0:000> j (eax!=0) r eax; 'r bx; r cx'  
  7. bx=0  
  8. cx=fb08  
可以看到第二条由于没有单引号,所以后面的被忽略了!



.if



.if (Condition) { Commands} .if (Condition) { Commands } .else {Commands } .if (Condition) { Commands } .elsif (Condition) {Commands } .if (Condition) { Commands } .elsif (Condition) {Commands } .else { Commands }

[cpp] view plain copy
  1. 0:000> .if (eax>ebx){r eax}.else{r ebx; r ecx}  
  2. ebx=00000000  
  3. ecx=001dfad0  


当一个条件断点的末尾包含一个执行命令时,需要使用gc命令
例如,如果使用g (Go)命令来到达该断点,则恢复为自由执行。但是如果使用单步或跟踪来到达该断点,也会以单步或跟踪的方式来恢复执行
善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线v2680267313

只看该作者 沙发  发表于: 2016-04-30
用户被禁言,该主题自动屏蔽!
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个