我正在检查 Ericksons Hacking: The Art of Exploitation 中的这段代码片段:
\nvoid 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}\nRun Code Online (Sandbox Code Playgroud)\nvoid 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}\nRun Code Online (Sandbox Code Playgroud)\n我在 main 和 test_function 处设置了断点。\n当中断 main 时,我得到以下输出:
\ngcc -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)