我熟悉一般程序内存布局(即:文本段,数据段,堆,堆栈等),并且我试图在这里找到类似于描述和图表的内容:
http://www.tenouk.com/Bufferoverflowc/Bufferoverflow1c.html
但是,我试图找出三个不同的案例,每个案例都涉及使用外部库:
libtest.a
中的ldflags
)libtest.so
中的ldflags
)libtest.so
中的ldflags
NOT ,但是库是通过dlopen()
/ {{加载的1}}来电)有人可以更熟悉这个解释内存布局吗?我对案例dlsym()
和(2)
之间的区别(如果有的话)特别感兴趣。
谢谢。
答案 0 :(得分:1)
我发现Solaris链接器指南(http://docs.oracle.com/cd/E26502_01/html/E26507/index.html)编写得非常好,并且在解释非常复杂的实用程序方面非常有用。
从图表的角度来看,您可能会发现http://docs.oracle.com/cd/E26502_01/html/E26507/chapter6-93046.html#scrolltoc,http://docs.oracle.com/cd/E26502_01/html/E26507/chapter6-34713.html#scrolltoc的人很有帮助。