Skip to main content

改变运行程序的环境变量

提供一些改变运行中的程序的环境变量的方法或思路。

LD_PRELOAD注入

linux环境变量LD_PRELOAD可以指定程序运行时优先加载的动态链接库,在该环境变量路径下的动态链接库中的符号具有最高优先级。 通过自己编写malloc/free动态链接库,并在LD_PRELOAD环境变量中指定该路径,就可以替换libc.so中的malloc/free函数。

注:该方法对静态链接的程序无效。

(gdb) attach process_id
(gdb) call putenv ("LD_PRELOAD=/mylib.so")
(gdb) detach

使用libc库的装饰器

todo

使用宏/函数替换malloc/free

todo