我如何在运行时(不LD_PRELOAD
),拦截/挂钩 C 函数,例如fopen()
在 Linux 上,就像 Windows 上的 Detours 一样?我想从 Python 执行此操作(因此,我假设该程序已经在运行 CPython VM)并重新路由到 Python 代码。我只需要挂钩共享库函数就可以了。我还想在不必改变程序运行方式的情况下执行此操作。
一个想法是基于以下基础推出我自己的工具ptrace()
,或者重写发现的代码dlsym()
或在 PLT 中,并定位ctypes
-生成的C可调用函数,但我想我应该先在这里问。谢谢。
您会从一位 ltrace 开发人员那里找到一种方法来做到这一点。看这个帖子 http://timetobleed.com/extending-ltrace-to-make-your-rubypythonperlphp-apps-faster/,其中包含一个完整的补丁,以便捕获动态加载的库。为了从 python 调用它,您可能需要创建一个 C 模块。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)