![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
共享库
C-now-s
这个作者很懒,什么都没留下…
展开
-
共享库
注:组成共享库的目标文件,在编译时需要加-fPIC选项,例如:$ gcc -c -fPICstack/stack.h-f 后跟一些编译选项,PIC表示position Independent Code(位置无关代码);区别:加了-fPIC的共享库,其各段的加载地址并没有定死,可以加载到任意位置,因为指令中的地址都是相对ebx的,没有使用绝对地址,只要根据实际的家在地址修在ebx就好了。原创 2013-09-29 15:50:48 · 661 阅读 · 0 评论 -
GDB指令——读取符号表
GDB指令——读取符号表-symbols -s 从指定文件file中读取符号表。-se file从指定文件file中读取符号表信息,并把他用在可执行文件中。-core -c 调试时core dump(核心转储)的core文件。-directory -d 加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。原创 2013-10-08 09:46:12 · 17972 阅读 · 0 评论 -
如何修改动态库符号表
ELF 文件中代码、连接信息和注释是以节(section)为单位存放的,并存有一个节头表(section header)。对每一节,在节头表中都有一个表项(节头表项)与之对应,表项记录了该节的一些信息,例如该节在文件中的位置信息和该节的字节长度信息。一、ELF 文件和有关术语Unix 系统的可执行文件和动态库文件是以 ELF 格式存放的。为使下面的叙述清晰而没有伎义,先转载 2013-10-08 10:30:42 · 2649 阅读 · 0 评论 -
动态链接库(Linux)
Linux下动态链接库的使用: Linux下使用动态链接库,原程序需要包含dlfcn.h头文件,此文件定义了调用动态链接库的函数的原型。 #include #include //Four functions dlopen(), dlsym(),dlclose(),dlerror() implementing the interface to the dyna原创 2013-10-08 11:38:54 · 670 阅读 · 0 评论 -
链接共享库和链接静态库的区别
链接共享库和链接静态库的区别链接libc共享库时:连接器只是确认可执行文件main引用的某些符号在libc中有定义,并没有最终确定这些符号的地址,这些符号在可执行文件main中仍然是未定义的符号,要在运行时动态链接;链接静态库时:连接器会把静态库中的文件取出,与可执行文件真正连接在一起。优点:1)链接时,只取出需要的目标文件进行连接,不需要的目标文件可以不链接。 2)原创 2013-09-29 11:30:15 · 1109 阅读 · 0 评论