改变运行程序的环境变量
提供一些改变运行中的程序的环境变量的方法或思路。
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