当前位置: 首页 > news >正文

逆向-下字符串查找的条件断点

为了跟踪console程序在访问某个文件时失败的问题,在内核中下了断点,但是内核中文件部分调用太频繁了,无法等到自己的文件。所以最好还是根据条件来下断点。

程序如下

想要在FileName是指定文件时停下来,例如FileName是c:\temp\file.txt的时候。

从代码可以看到FileName是个参数,但是可能是NULL,因此断点只能下到这一行:

memzero(&MyContext, sizeof(MyContext));

如果要比较需要知道FileName的值,但是FileName的值如何获取呢?

下断点在这里,断点到了之后,查看汇编

发现poi(rsp+50)里就是FileName的数据

于是编写script代码,文件名find2.sc:

bp fffff800`79c61082  "
r $t1=poi(rsp+50)as /mu $FileName $t1.block
{.if($spat(\"${$FileName}\",\"*file.txt\")) {.echo 'find...';ad ${/v:$FileName}}.else {ad ${/v:$FileName}gc}
}"

其中bp下的断点位置,是memzero(&MyContext, sizeof(MyContext));汇编所在的位置,直接在windbg命令行里直接输入如下命令运行,包括$$><等符号

$$><c:\temp\find2.sc

这样在访问file.txt的时候就停止下来了。

注意由于下脚本断点速度影响较大,文件访问很多,导致系统很慢,可以在console程序访问该文件前,使用 system("pause");暂停,然后再下断点。或者下了断点先禁用,等运行console程序停下来,再使能断点。

具体脚本解释,可以参考:如何写windbg高级脚本---以访问文件的windbg脚本为例说明 (pediy.com)


http://www.mrgr.cn/news/40725.html

相关文章:

  • vscode 插件推荐
  • 虚拟机、ubantu不能连接网络,解决办法
  • D. Speedbreaker Codeforces Round 975 (Div. 2)
  • 前端工程化17-邂逅原生的ajax、跨域、JSONP
  • 工具按钮 QToolButton
  • 02.usePrevious
  • pnpm在monorepo架构下不能引用其他模块的问题
  • 第八篇——数列和级数(一):当下很重要,但趋势更重要
  • 【Linux】dd命令
  • 通信工程学习:什么是POP3邮局协议版本3
  • OLED显示屏中常见的3-spi和4-spi
  • 简单的微信小程序个人 个人详情页
  • local minima 的问题如何解决
  • MySQL优化相关(持续积累...)
  • Javascript-标准内置对象-值属性-globalThis-Infinity-Nan-undefined 手写实现globalThis功能
  • 笔墨歌盛世 丹青绘匠心,艺术赋能“百千万工程”
  • 【优选算法之哈希表】No.11--- 经典哈希表算法
  • [Python学习日记-34] 一篇文章让你弄懂 Python 中牛逼的递归函数
  • [Python学习日记-35] Python 中的内置函数(上)
  • 【Linux】进程+权限管理+软硬链接+其他命令