小编Gho*_*les的帖子

更改内存中的“通话”地址?

这是用于64位x86 Intel处理器的。

在GDB中,我可以看到:

0x400500 <main+50>: call 0x400100 <somefunc>
Run Code Online (Sandbox Code Playgroud)

但是,当我检查0x400500处的内存时,看不到对“ 0x400100”的任何引用,附近的寄存器中也没有任何明显的内容。

如何“知道”在哪里打电话。看起来很简单,但我一直找不到答案。

我试图用例如上述函数的参数调用系统,但只有有限的内存访问权限。请注意,这只是出于娱乐目的,是挑战练习的一部分。

c x86 assembly stack gdb

-1
推荐指数
1
解决办法
549
查看次数

标签 统计

assembly ×1

c ×1

gdb ×1

stack ×1

x86 ×1