我试过
gdb --write --nx file
无论我做什么,即使我让程序正常退出,它也不会写64位二进制更改!
32位工作,我使用完全相同的命令和顺序/序列和“set {int} 0x0xxxxxx = 0xffffffff”
然后输入quit(应该用--write标志保存)
权限: rwx-r-x-r-x / 755
我开始怀疑BFD(二进制文件描述符)或其他内部组件是否不允许它。
如上所述(here):
此外,如果底层BFD功能支持它,您可以使用 gdb -write使用这种技术修补目标文件。注意gdb 在这种情况下既不能解释也不能修改重定位,所以分支 一些初始化的变量似乎会转到错误的地方。 但是这个功能仍然不时使用。