看流星社区

 找回密码
 注册账号
查看: 3861|回复: 0

VCDebug、Ollydbg、WinDbg字符串条件断点设置方法总结

[复制链接]

该用户从未签到

发表于 2013-8-27 12:23:02 | 显示全部楼层 |阅读模式
大牛直接无视好了
网上关于设置字符串断点的文章不多,但是这个又是一个非常实用的功能。
拍砖请轻轻的

VCDebug

VCDebug 微软VS自带调试器套件,对字符串断点的支持依然强大。

VC支持在断点条件中使用字符串比较函数。

ASCII字符集字符串断点设置方法:
  1.    strcmp(pzString, "DDLX_CHAR") == 0  
  2.     stricmp(pzString, "DDLX_char") == 0  
  3.     strncmp(pzString, "DDLX", 4) == 0  
  4.     strnicmp(pzString, "ddlx", 4) == 0  
复制代码
UNICODE字符集字符串断点设置方法:
  1. wcscmp(pzWString, L"DDLX_WCHAR") == 0  
  2.     wcsicmp(pzWString, L"DDLX_wchar") == 0  
  3.     wcsncmp(pzWString, L"DDLX", 4) == 0  
  4.     wcsnicmp(pzWString, L"ddlx", 4) == 0  
复制代码
OllyDbg

OllyDbg的字符串调试也很好用

使用快捷键:Shift+F2设置条件断点,在条件中输入。

ASCII字符集字符串设置方法:
  1. STRING [eax] == "DDLX_CHAR"   
  2.     STRING [eax] == "DDLX_char" //不区分大小写  
  3.     STRING [eax] == "DDLX" //不区分文本长度  
复制代码
UNICODE字符集字符串设置方法:
  1. UNICODE [eax] == "DDLX_WCHAR"  
  2.     UNICODE [eax] == "DDLX_wchar" //不区分大小写  
  3.     UNICODE [eax] == "DDLX" //不区分文本长度
复制代码
WinDbg

ASCII字符集字符串断点设置方法:
  1. //全字符串匹配,区分大小写  
  2.     bp 0041141d "r @$t1 = eax; as /ma ${/v:pzString} $t1;.if ($scmp("${pzString}","DDLX_CHAR")==0) {} .else {gc}"  
复制代码
  1. //全字符串匹配,不区分大小写  
  2.     bp 0041141d "r @$t1 = eax; as /ma ${/v:pzString} $t1;.if ($sicmp("${pzString}","DDLX_char")==0) {} .else {gc}"  
复制代码
  1. //字符串模糊匹配,*表示0-?个模糊字符  
  2.     bp 0041141d "r @$t1 = eax; as /ma ${/v:pzString} $t1;.if ($spat("${pzString}","DDLX*")==0) {} .else {gc}"  
复制代码
windbg怎么设置Unicode字符串断点
  1. unicode 就是 /mu, 比如 as /mu ${/v:dllName} poi(esp+4)
复制代码
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-26 04:25

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表