标签: linux linux-kernel
我在x86-64上使用Linux。我需要在用户程序开始执行其代码之前插入系统调用(本质上需要一个陷阱到OS)(但是在加载器/链接器映射了库之后)。有没有人建议在没有需要二进制修改/重新编译的情况下实现的最佳方法是什么?
答案 0 :(得分:2)
使用LD_PRELOAD环境变量在libc之前加载自定义库,它将拦截对__libc_start_main的调用,_start似乎用它来开始实际的main()函数。
或者像调试器一样使用ptrace()附加到进程。