我有一个由第三方创建的可执行模块.我想将我的代码(在单独的线程中运行的监视程序)“注入”到这个过程中.
到目前为止,有两种可能的方法 – 一种是将我的代码作为可执行文件运行并在其上动态加载一个程序(似乎非常困难和棘手)或者使我的代码成为共享对象,通过LD_PRELOAD加载它并从中初始化一些静态变量构造函数.
有更方便的方法吗?
我的操作系统是Linux x86和Solaris-SPARC.
更新:如果可能,我不想修补过程,但动态加载我的代码.
解决方法:
听起来你正在寻找InjectSo.有一个Powerpoint presentation解释它是如何工作的.我还没有尝试过.