c++ - 将 C 代码注入(inject) *nix 应用程序 : replacing a function

标签 c++ c macos debugging code-injection

我有一个新手但对我来说非常重要的问题:我有一个使用 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/

相关文章:

c++ - 在 QHash<QString, DataType> 中搜索 QStringView 而不分配内存?

c - “自动取款机”模拟器

c - 在汇编函数中获取字符指针

macos - 使用gradientColors从GKNoise创建SKTexture时颜色 "not valid for the NSColor Generic Gray Gamma"

macos - 有没有办法根据型号获取 Mac 的图标?

C++ #include,嵌套包含如何工作?

c++ - 在多个文件之间拆分模板特化会导致 ODR 违规吗?

c++ - 需要 Volume Shadow Copy API 来卡住 Exchange Writers

c++ - gdb - 如何查看指针数组的内容?

objective-c - 如何将 NSSplitView 分隔线厚度更改为 1px?