编译:gcc -fPIC -shared xxx.c -o xxx.so
LD_PRELOAD 是个环境变量,用于动态库的加载,动态库加载的优先级最高,一般情况下,其加载顺序为LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/lib>/usr/lib。
-
export LD_PRELOAD = 绝对路径/xxx.so //加载环境变量
-
unset LD_PRELOAD //关闭环境变量
-
LD_PRELOAD=绝对路径/xxx.so ./xxx lsldjqlasdasda //单个程序传入环境变量
lib_rootkit.c:
#include <sys/types.h>
uid_t geteuid(void){return 0;}
uid_t getuid(void){return 0;}
uid_t getgid(void){return 0;}