gpt4 book ai didi

assembly - 如何直接在gdb中运行程序集?

转载 作者:行者123 更新时间:2023-12-04 14:51:28 24 4
gpt4 key购买 nike

我可以用 call运行c函数,但如何直接运行汇编甚至shell代码?

最佳答案

要执行 shell 代码,您可以直接编辑函数的内容:

(gdb) b foo
Breakpoint 1 at 0x400608
(gdb) run
Breakpoint 1, 0x0000000000400608 in foo ()
(gdb) x/16bx foo
0x400604 <foo>: 0x55 0x48 0x89 0xe5 0x53 0x48 0x81 0xec
(gdb) set ((unsigned char *)foo)[6] = 0x85
(gdb) x/16bx foo
0x400604 <foo>: 0x55 0x48 0x89 0xe5 0x53 0x48 0x85 0xec
(gdb) cont

我不知道如何从 gdb 中执行操作码,但你当然可以用寄存器做任何你想做的事。例如,而不是 mov %rbx, %rax您可以使用 set $rax = $rbx :
(gdb) p $rax
$1 = 3671197290184
(gdb) set $rax = $rbx
(gdb) p $rax
$2 = 0
(gdb)

关于assembly - 如何直接在gdb中运行程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5661021/

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