我有一个新手但对我来说非常重要的问题:我有一个使用 carbon api 的 Mac Os X 应用程序,但它仍然是一个 C++ 应用程序。我需要调试在执行时调用了哪些函数,然后制作一个 C++ 补丁来替换其中一个函数。
真正的目标:我需要将所有打印的文本记录到应用程序在一个无法访问的 carbon View 中的聊天窗口中。一开始以为是cocoa应用,其实不是,所以fscript和imlib都不好注入(inject)代码。
这可能吗?有什么线索吗?非常感谢。
干杯:)
最佳答案
您可以考虑使用 truss
来确定正在进行的系统调用,但我不确定用户调用。 LD_PRELOAD
环境变量可以让您将方法注入(inject)其他应用程序,但 C++ 方法在名称修饰和调用方法方面往往具有各种依赖性,因此插入您自己的方法可能会很棘手。
您能否让应用维护者添加实际的 Hook 来满足您的需求?
关于c++ - 将 C 代码注入(inject) *nix 应用程序 : replacing a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3751503/