我熟悉一般程序内存布局(即:文本段、数据段、堆、堆栈等),并试图找到类似于此处描述和图表的内容:
http://www.tenouk.com/Bufferoverflowc/Bufferoverflow1c.html
但是,我试图找出三个不同的案例,每个案例都涉及使用外部库:
- 构建时外部库的静态链接(即:
libtest.a
在ldflags
- 在构建时动态链接外部库(即:
libtest.so
在ldflags
- 在运行时动态链接外部库(即:
libtest.so
不在中ldflags
,但库是通过dlopen()
/dlsym()
调用加载的)
更熟悉这个的人可以向我解释内存布局吗?我对 case(2)
和(3)
.
谢谢你。