如何以及何时创建libc共享对象库?

时间:2015-03-23 09:59:17

标签: c compilation cross-compiling libc

我在libc库中搜索面向回归编程的小工具。我遇到的难题是类似小工具的偏移量(或相对地址)在两个不同系统(我和同事)的库(同一版本,2.15)中有所不同。

我的系统规格:

OS: Ubuntu 12.10
Processor: Intel i5 M480
Virtual OS: Yes
Libc version: 2.15

同事的系统规范:

OS: Ubuntu 12.04
Processor: Intel Core 2 Duo T6670
Virtual OS: No
Libc version: 2.15

以下小工具

pop ecx ; pop eax ;;

有两个不同的相对地址。我的地址是0xf2c60,我的同事是[{1}}。

然而这个小工具

0xf2d21

在两个系统上具有相同的相对地址 - mov [eax] ecx ;

我有两个问题。

  1. 在安装操作系统时是否编译了libc,因此两个库的不同之处因为它们编译的系统不同?或者它们是libc的两个不同版本(我不排除这一点,因为Ubuntu的版本不同 - 如果我听起来很无知,对不起)但是GCC不打算反映版本代码中的微小变化吗?

  2. 我已经读过,通过浏览源可以找到小工具的相对地址,并且不需要二进制文件。如何实现这一目标?请不要指向" Hacking Blind"纸。我已经阅读了它并且他们没有显示出实现这一目标的方法,而是展示了一种逐一猜测小工具的方法。这对于示威来说是不可行的。或者,如果第一个问题的答案确实是系统规范的差异,我可以使用一个工具来交叉编译libc吗?

0 个答案:

没有答案