Chinaunix首页 | 论坛 | 博客
  • 博客访问: 807115
  • 博文数量: 247
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 501
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-12 21:53
个人简介

系统未建立

文章分类

全部博文(247)

文章存档

2021年(1)

2020年(3)

2019年(5)

2018年(3)

2017年(44)

2016年(75)

2015年(52)

2014年(63)

2013年(1)

我的朋友

分类: LINUX

2017-01-19 17:36:53

LD_PRELOAD:
在Unix操作系统的动态链接库的世界中,LD_PRELOAD就是这样一个 环境变量
用以指定预先装载的一些共享库或目标文件,且无论程序是否依赖这些共享库或者文件,LD_PRELOAD指定的这些文件都会被装载
其优先级比LD_LIBRARY_PATH自定义的进程的共享库查找路径的执行还要早
全局符号介入
指在不同的共享库(对象)中存在同名符号时,一个共享对象中的全局符号被另一个共享对象的同名全局符号覆盖
因为LD_PRELOAD指定的共享库或者目标文件的装载顺序十分靠前,几乎是程序运行最先装载的,所以其中的全局符号如果和后面的库中的全局符号重名的话,就会覆盖后面装载的共享库或者目标文件中的全局符号。
因为装载顺序和全局符号介入的原理
它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加载的动态链接库。
这个功能主要就是用来有选择性的载入Unix操作系统不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。

其中,在我们自己的函数中主要完成量方面的工作:
1)完成在调用此函数时我们想要做的工作。
2)以传递进来的参数不加改动地调用原来动态链接库中的函数。
操作可行性:对于Android系统,将预先编译好的.so文件复制到Android系统/data中,
设置所要要追踪的游戏进程的LD_PRELOAD环境变量值为中间.so文件路径即可。
/etc/ld.so.preload
是系统的配置文件中的一个,其作用与 LD_PRELOAD相同。
应尽量避免使用LD_PRELOAD

阅读(1567) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~