可执行程序文件的修改
gdb修改可执行文件
大概过程是编译可执行文件时,生成用于gdb调试的信息,gdb可以根据这些信息修改值。
源代码:
/* gdb_test.c */
#include <stdio.h>
int a = 1;
int main(int argc,char *argv[],char *envp[])
{
printf ("%d\n", a);
return 0;
}
编译:
# 使用 -g 选项允许 gdb 调试,默认输出文件名为 a.out
gcc -g gdb_test.c
第一次运行会输出1。
使用gdb进行修改:
# 进入 gdb 环境
gdb
Type "apropos word" to search for commands related to "word".
# 允许修改可执行文件文件
(gdb) set write on
# 打开文件
(gdb) file ./a.out
Reading symbols from ./a.out...
# 修改全局变量 a 的值
(gdb) p a=100
$1 = 100
(gdb) quit
再次运行可执行程序就会输出100。