【发布时间】:2017-07-30 17:55:19
【问题描述】:
我正在做一个项目,我需要使用LD_PRELOAD 将一些库加载到内存空间中。
就像:
LD_PRELOAD="./libapp.so" ./my_app
由于某些原因(我实际上正在研究一些二进制黑客),我必须知道@987654324 中某些函数(比如说foo)的内存地址(不是符号) @ 并在执行前检测my_app 的二进制代码。
但是,由于ASLR(地址空间布局随机化),每次libapp.so都会被加载到不同的内存地址,在执行之前我无法知道foo的内存地址。
我正在考虑以某种方式截取加载时间,读出libapp.so 的内存地址,使用foo 的内存地址对my_app 执行一些检测,然后将my_app 加载到内存空间中。
那么这里是我的问题:如何拦截加载过程并获取libapp.so的内存地址?
【问题讨论】:
标签: linux shared-libraries ld dynamic-linking aslr