windbg 常用命令
// 列出所有模块对应的符号信息
x sede_guardx!*
x sede_guardx!drawWatermark*
x sede_guardx!*createMemDC*
// 查看当前堆栈
k
//下断点
bu sede_guardx!drawWatermark 或者 bm sede_guardx!drawWatermark
或者 bu sede_guardx!WatermarkWindow::createMemDC
bu sede_guardx!WatermarkWindow::createMemDC+0x25d
bl // 列出所有断点
bc * // 清除所有断点
bc 1 // 清除1号断点
bc 1 2 5 // 清除1号、2号、5号断点
be * // 启用所有断点
be 1 // 启用1号断点
be 1 2 5 // 启用1号、2号、5号断点
bd * // 禁用所有断点
bd 1 // 禁用1号断点
bd 1 2 5 // 禁用1号、2号、5号断点
bp 7c801b00 // 在7c801b00地址处放置一个断点
bp MyDll+0x1032 // 在模块MyDll.dll偏移0x1032处放置一个断点
bp `ConsoleTest.cpp:36` // 在ConsoleTest.cpp的36行处放置一个断点
bp main // 在main函数的起始处放置一个断点
bp @$exentry // 在进程的入口放置一个断点
bp CSecondLoader::CSecondLoader // 在CSecondLoader的构造函数处放置一个断点
bp TestCommon! CTest::add // 在TestCommon.dll的Test.cpp文件的CTest::add()函数起始处放置一个断点
bp `ConsoleTest.cpp:40` ".if (poi(pVar)>5) {}; {g}" // ".if (Condition) {Optional Commands}; {g}" 条件断点 pVar指针指向的值>5,执行空语句(;),断住 否则继续执行
bp `ConsoleTest.cpp:40` "j (poi(pVar)>5) ' '; 'g'" // "j (Condition) 'Optional Commands'; 'g'" j为条件表示式:条件断点 pVar指针指向的值>5,执行空语句(;),断住 否则继续执行
注:Condition表达式语法默认的是MASM表达式语法。使用复杂C++表达式时我们需要用@@c++()将表达式包围住;如:"j @@c++(*pVar>5) ' '; 'g'"
//查看断点
bl
//单步调试
p
p // 单步执行(F10) 【Step】
p 2 // 2为步进数目
pc // 执行到下一个函数调用处停下 【Step to Next Call】
pa 7c801b0b // 执行到7c801b0b地址处停下 【Step to Adress】
t // Step into(F11) 【Trace】
tc // 执行到下一个进入点(Call指令)处停下 【Trace to Next Call】
//函数参数变量请用dv命令
dv
若要查看在记事本进程中加载的代码模块列表,请输入以下命令:
0:000> lm
start end module name
00007ff6`6e760000 00007ff6`6e798000 notepad (pdb symbols) C:ProgramDataDbgsym
otepad.pdbBC04D9A431EDE299D4625AD6201C8A4A1
otepad.pdb
00007ff8`066a0000 00007ff8`067ab000 gdi32full (deferred)
00007ff8`067b0000 00007ff8`068b0000 ucrtbase (deferred)
00007ff8`06a10000 00007ff8`06aad000 msvcp_win (deferred)
00007ff8`06ab0000 00007ff8`06ad2000 win32u (deferred)
00007ff8`06b40000 00007ff8`06e08000 KERNELBASE (deferred)
00007ff8`07220000 00007ff8`072dd000 KERNEL32 (deferred)
00007ff8`07420000 00007ff8`07775000 combase (deferred)
00007ff8`07820000 00007ff8`079c0000 USER32 (deferred)
00007ff8`079c0000 00007ff8`079f0000 IMM32 (deferred)
00007ff8`07c00000 00007ff8`07c2a000 GDI32 (deferred)
00007ff8`08480000 00007ff8`085ab000 RPCRT4 (deferred)
00007ff8`085b0000 00007ff8`0864e000 msvcrt (deferred)
00007ff8`08c40000 00007ff8`08cee000 shcore (deferred)
00007ff8`08db0000 00007ff8`08fa5000 ntdll (pdb symbols) C:ProgramDataDbgsym
tdll.pdb53F12BFE149A2F50205C8D5D66290B481
tdll.pdb
00007fff`f8580000 00007fff`f881a000 COMCTL32 (deferred)
相关文章
- Python使用tkinter组件Label显示简单数学公式
- 内网渗透之DCOM横向移动
- 以目标为导向的语义交流的共同语言——一个课程学习框架
- python爬虫前奏【成信笔记】
- HTML 5 File API:文件拖放上传功能
- 教你快速创建 Python 虚拟环境
- pyenv 实现Python多版本自由切换
- 用 Python 对 Excel文件进行批量操作
- Python - 接入钉钉机器人
- Python - 抓取 iphone13 pro 线下店供货信息并发送到钉钉机器人,最后设置为定时任务
- crontab - 解决 mac 下通过 crontab 设置了 Python 脚本的定时任务却无法运行
- [源码解析] PyTorch分布式(5) ------ DistributedDataParallel 总述&如何使用
- Python科普系列——类与方法(上篇)
- SAP对STO的交货单执行PGI,报错 -Fld selectn for mvmt type 643 acct 400020 differs
- Spring Boot 实现通用 Auth 认证的 4 种方式
- 盘点4种使用Python批量合并同一文件夹内所有子文件夹下的Excel文件内所有Sheet数据
- OushuDB 学习经验分享(三):技术特点
- Java和Python思维方式的不同之处
- Python中日志记录新技能
- 奥比中光Gemini OpenCV—Python使用