使用gdb修改寄存器中的内容
来源:互联网 发布:js 跳转url 隐藏参数 编辑:程序博客网 时间:2024/06/05 05:38
再没有进程debug信息的情况下,不能直接使用变量名称修改变量的值,这时可以通过变量的寄存器,修改变量的值。
1、先将需要修改的函数反汇编,找到需要修改的变量的寄存器,例如 edx寄存器
2、gdb命令
gdb attach `ps -ef | grep proc | grep 进程名称 | awk '{print $2}'`
set height 0
handle SIG36 SIGUSR2 noprint nostop
b *0x00e90d10 //反汇编需要修改寄存器的前一行
c
set $edx = 0x6 //修改寄存器的值
p $edx
bt
c
注意:
1、有些寄存器变量貌似不能修改,比如%rdi,使用gdb修改就会发生复位。
2、没有debug信息的函数中没有办法使用变量的方式赋值,比如set age= 253,会提示找不到符号
补充:
第二种方式:
gdb attach `ps -ef | grep proc | grep bsu | awk '{print $2}'`
set height 0
handle SIG36 SIGUSR2 noprint nostop
b *0x00e90d10
c
p $rsp+0x714
获取到寄存器的位置后,将该地址修改为0x6
set *0x7f962c1fa564 = 0x6
c
阅读全文
0 0
- 使用gdb修改寄存器中的内容
- gdb修改寄存器值进行调试
- gdb 寄存器
- 修改TDatagrid中的内容
- 使用PYTHON实现如何修改文本文件中的内容
- ant修改文件中的内容 replace命令的使用
- xml-使用parse修改xml文件中的内容
- gdb查看stl容器中的内容
- gdb查看stl容器中的内容
- GDB寄存器和内存
- GDB寄存器和内存
- GDB寄存器和内存
- ant修改文件中的内容
- ant修改文件中的内容
- 删除修改字符串中的内容
- gdb在android中的使用
- gdb在android中的使用
- 位操作-在寄存器中的使用
- TreeSet 集合在Add时报错cannot be cast to java.lang.Comparable
- [Err] 1062
- 网络编程(三)--TCP
- PAT 1060 Are They Equal
- Jenkins Centos部署过程中异常No route to host问题解决
- 使用gdb修改寄存器中的内容
- GBDT+LR特征融合的例子
- 习题 6.3 求一个3*3的整型矩阵对角线元素之和。
- 剑指Offer---从头到尾打印链表
- makefile编写
- HttpURLconnection_webview
- 获取应用程序当前工作目录的绝对路径
- hdu 5898 (数位dp)
- HDU 6119(区间交叉问题)