是否有一些常用工具可以替代某些调用,如execve和打开?像调用LD_PRELOAD一样。类似LD_PRELOAD的文件/调用替换
实施例:
通常的解决办法是下一个!。
$: mv /usr/bin/prog_b /usr/bin/prog_B.new
$: ln -s /usr/bin/prog_b.old /usr/bin/prog_b
$: ./prog_a # now run
但有时令人不安的和肮脏的解决方案在一些故事正确方法如下:
$: util "execve+open+stat:/usr/bin/prog_b=/usr/bin/prog_b.old" ./prog_a
where execve,open & stat是系统调用。这个util的名字是什么?
为什么不使用'LD_PRELOAD'? – hek2mgl 2013-05-03 02:12:19
* util *使用它。如果我将使用LD_P ...首先我必须编写对我有用的函数,然后编译它,然后写LD_PRELOAD =“./ wrap_calls.so”./prog_a。我们只想做这个链条的最后一步。 – 2013-05-03 02:17:00
你只需要一个封装'execve','open','stat'的库。然后使用'LD_PRELOAD yourlib。/ prog_a'。不需要'util'。或者我错过了什么?如何创建该库需要帮助吗? – hek2mgl 2013-05-03 02:24:35