中秋月圆人团圆 烤肉越吃脸越圆
中秋节快乐 / 我想吃烤肉
前一章提到了环境的安装或自行编译与设定gdb
但如果不知道调试技巧 後续遇到问题也只剩愣在电脑前面
於是
今天就来谈谈我自己常用的gdb指令
当然 gdb 内有help指令告诉你有哪些可用的指令
file xxx.elf
target remote [target]:[port]
这时我们就可以知道我们接上target的程序了
layout asm
这时我们就知道这几行的指令是什麽
xzr为zero register, 特殊寄存器的一种, 目的也是为了清空资料
经过阅读过後就可以知道x1,x2,x3的寄存器都被清空後, 把0x20的资料载进x4里面, 接着进行跳转
当然在这里如果已经开始困惑, 可以先尝试阅读arm的官方文件, 内部都有表明不同的架构底下有哪些寄存器.
layout src
这边就可以看到目前正进入一个while loop, 并且尝试抓取一个char
si # 单步执行(会进入function)
ni # 单步执行(直接执行完function跳出)
c # continue, 如果设定好中断点 直接c下去可以直接撞到你要的点
x/10i $address # 查看 address 的位置往下10个instruction. (此指令有非常多用法, 族繁不及备载)
fin # 直接跳开目前的function回到上一层
那gdb真的非常好用, 网上还有很多大神释出的加强套件, 可以斟酌使用.
如果习惯视窗化的像是x64-debugger可能就要稍微熟悉指令的部分
[参考连结]
https://www.cs.cmu.edu/~gilpin/tutorial/
>>: 【从实作学习ASP.NET Core】Day06 | 看懂 CRUD 的 Actions
前言 终於进入新的篇章06-Wireless Attacks,但由於先前的Kali虚拟机环境无法进行...
[Day26] Click and Drag to Scroll 需要用到的技巧与练习目标 mous...
昨天已经初步介绍几个简单常用的bootstrap语法, 今天来看看几个也是好用、比较详细或特殊的情况...
参加这铁人赛的用意就是为了这个开发版STM32F746, 有开发版可以拿,这麽好康的事情,怎麽可以不...
使用 React 作为前端架构的朋友对於 Flux 应该都不陌生,React 也内建了 Flux 让...