没有合适的资源?快使用搜索试试~ 我知道了~
首页使用LD_PRELOAD注入程序.pdf
资源详情
资源评论
资源推荐

2020/4/15 使用LD_PRELOAD注入程序 - Sandeepin - 博客园
https://www.cnblogs.com/sandeepin/p/ld-preload-inject.html 1/4
使用LD_PRELOAD注入程序
LD_PRELOAD是Linux系统的一个环境变量,它可以影响程序的运行时的链接(Runtime linker),它允许你定义在程序运行前优先加
载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态
链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,我们可以以此功能来使用自己的或是更好的函数(无需别人的源
码),而另一方面,我们也可以以向别人的程序注入程序,从而达到特定的目的。
一般情况下,其加载顺序为LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/lib>/usr/lib。几米夜空转载的文章
《LD_PRELOAD作用》程序调用流图和代码例子值得一看。
1. 简单举例
我们以Rafał Cieślak的一篇文章的例子为例说明它的用法,翻译自Rafał Cieślak的博客,译者qhwdw。
random_num.c:
我不使用任何参数来编译它,如下所示:
gcc random_num.c -o random_num
我希望它输出的结果是明确的:从 0-99 中选择的十个随机数字,希望每次你运行这个程序时它的输出都不相同。
现在,让我们假装真的不知道这个可执行程序的出处。甚至将它的源文件删除,或者把它移动到别的地方 —— 我们已不再需要它
了。我们将对这个程序的行为进行重大的修改,而你并不需要接触到它的源代码,也不需要重新编译它。
因此,让我们来创建另外一个简单的 C 文件:
unrandom.c:
我们将编译它进入一个共享库中:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(NULL));
int i = 10;
while(i--)
printf("%d", rand()%100);
return 0;
}
Copy
int rand() {
// the most random number in the universe
return 42;
}
Copy
异想博客
首页 标签 归档 关于 我的网站 订阅 管理
☲
CONTENTS
0.1. 1. 简单举例
0.2. 2. 打开文件显示路径
✕



















光谷中心城打工人
- 粉丝: 26
- 资源: 10
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0