gpt4 book ai didi

linux - GDB 可以更改正在运行的程序的汇编代码吗?

转载 作者:IT王子 更新时间:2023-10-29 00:08:45 28 4
gpt4 key购买 nike

我想给/bin/ls 添加一些额外的功能。
所以我在gdb上启动它,并在开头添加了一个断点。

现在的问题是:如何更改内存中正在运行的程序的代码?我可以看到汇编代码,但我无法修改。我该怎么做?

例如,在 Windows 上,我可以使用 olldbg 轻松地做到这一点。在 Linux 上怎么样?

(我知道这样做只会更改内存中进程的代码。这样我就可以将内存转储到一个文件中,然后我会将我的更改保存在一个二进制文件中)。

谢谢。

最佳答案

您可以直接将二进制文件写入内存,但 GDB 默认情况下没有内置汇编程序,但是您可以执行类似 set *(unsigned char*)0x80FFDDEE = 0x90 的操作来更改助记符例如,该地址指向 NOP。但是,您可以使用 NASM 编写 shellcode 并使用 perl 或 python 将其注入(inject)程序:)

您可能还喜欢这个小的 .gdbinit 文件,它使调试更容易:https://gist.github.com/985474

关于linux - GDB 可以更改正在运行的程序的汇编代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6473908/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com