艾睿:Unix操作系统下的LD_PRELOAD环境变量 - 51CTO.COM
来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 11:23:45
今天,我们来学习Unix操作系统的知识。也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久。不过,在这里,我还是想讨论一下这个环境变量。因为这个环境变量所带来的安全问题非常严重,值得所有的Unix操作系统下的程序员的注意。
在开始讲述为什么要当心Unix操作系统LD_PRELOAD环境变量之前,请让我先说明一下程序的链接。所谓链接,也就是说编译器找到程序中所引用的函数或全局变量所存在的位置。
一般来说,Unix操作系统程序的链接分为静态链接和动态链接,静态链接就是把所有所引用到的函数或变量全部地编译到可执行文件中。动态链接则不会把函数编译到可执行文件中,而是在程序运行时动态地载入函数库,也就是运行链接。
所以,对于Unix操作系统动态链接来说,必然需要一个动态链接库。动态链接库的好处在于,一旦动态库中的函数发生变化,对于可执行程序来说是透明的,可执行程序无需重新编译。这对于程序的发布、维护、更新起到了积极的作用。对于静态链接的程序来说,函数库中一个小小的改动需要整个程序的重新编译、发布,对于程序的维护产生了比较大的工作量。
当然,世界上没有什么东西都是完美的,有好就有坏,有得就有失。动态链接所带来的坏处和其好处一样同样是巨大的。
因为程序在运行时动态加载函数,这也就为他人创造了可以影响你的主程序的机会。试想,一旦,你的Unix操作系统程序动态载入的函数不是你自己写的,而是载入了别人的有企图的代码,通过函数的返回值来控制你的程序的执行流程,那么,你的程序也就被人“劫持”了。
关于这次对Unix操作系统的介绍到这里了。
Unix操作系统下的LD_PRELOAD环境变量 - 51CTO.COM
Unix操作系统中FTP服务器被攻击的可能性
C#发送Email邮件的方法解析 - 51CTO.COM
J2EE平台的13种核心技术 - 51CTO.COM
C#接口的作用实例解析 - 51CTO.COM
解读数据存储ODS的概念 - 51CTO.COM
C/C++中Static的作用详述 - 51CTO.COM
25个最棒最耀眼的Eclipse开发项目- 51CTO.COM
微软还将买谁:诺基亚还是愤怒的小鸟? - 51CTO.COM
Win7下JDK环境变量的设置
sony VAIO新型号笔记本改用XP操作系统的方法 - lengxf - 51CTO技术...
一句话 COM - 给 C++ 程序员的 COM 入门指南 - 漫漫求索路 - 51CTO...
软件开发七宗罪 - 51CTO.COM
1.4 获取Spring源代码 - 51CTO.COM
认清老板,职场少吃亏 - 51CTO.COM
Java内存模型详解 - 51CTO.COM
linux下jdk,tomcat安装以及环境变量的配置
Linux五大简单的命令解决系统性能问题 - Linux|Unix - 操作系统 - 伊甸...
[ 永远的UNIX > Linux下的多线程编程 ]
学习 华为3COM 交换机配置的资料 (厂家资料) - lengxf - 51CTO技术博...
必知的Linux关机/重启命令 - 51CTO.COM
商业智能:筹划您的首个Microsoft BI解决方案 - 51CTO.COM
27 款经典的CSS框架 附下载(1) - 51CTO.COM
15个国外最流行的CSS框架(附下载)(1) - 51CTO.COM