小编Mir*_*vel的帖子

为什么push指令会改变rsp的值?

我正在检查 Ericksons Hacking: The Art of Exploitation 中的这段代码片段:

\n
void test_function(int a, int b, int c, int d) {\n        int flag;\n        char buffer[10];\n        flag = 31337;\n        buffer[0] = \'A\';\n}\n\nint main() {\n        test_function(1, 2, 3, 4); \n}\n
Run Code Online (Sandbox Code Playgroud)\n
void test_function(int a, int b, int c, int d) {\n        int flag;\n        char buffer[10];\n        flag = 31337;\n        buffer[0] = \'A\';\n}\n\nint main() {\n        test_function(1, 2, 3, 4); \n}\n
Run Code Online (Sandbox Code Playgroud)\n

我在 main 和 test_function 处设置了断点。\n当中断 main 时,我得到以下输出:

\n
gcc -g stack_example.c\n\ngdb -q ./a.out\n\ngef\xe2\x9e\xa4list main\n\n\n     0x555555555192 …
Run Code Online (Sandbox Code Playgroud)

c assembly x86-64

0
推荐指数
1
解决办法
4108
查看次数

标签 统计

assembly ×1

c ×1

x86-64 ×1