【问题标题】:Cocoa memory editing inspectionCocoa 内存编辑检查
【发布时间】:2009-04-02 02:57:37
【问题描述】:

我将如何使用 Cocoa 编辑其他应用程序的内存?我知道必须以 root 身份进行编辑,但我首先应该如何进行?

【问题讨论】:

    标签: cocoa macos memory low-level


    【解决方案1】:

    我要指出PTrace is terribly broken on OS X。希望这篇文章可以帮助您回避这些问题。你也可以直接使用 mach 来修改内存...看看Mach_inject 是怎么做的。

    【讨论】:

    • broken 可能夸大了这个问题。我认为“不完整”会更公平一些。
    • 感谢您的帮助。我查看了 Mach_inject 代码,这正是我想要的。
    • 我同意布赖恩,这有点夸张。也就是说,我认为 Apple 让 PTrace 不完整是一件相当糟糕的事情。
    【解决方案2】:

    Ptrace 是执行此操作的常用机制(与 cocoa 本身几乎没有关系——它是一个 unix api,man ptrace)。附加到进程后,进程停止后,您可以执行诸如从子指令或数据空间读取和写入、单步执行等操作。

    【讨论】:

    • 我需要在进程运行时实时进行编辑
    • 那么诀窍就是限制您暂停应用程序所花费的时间,例如。如果您的更改花费
    • 那么我是否应该在 C 中编写更改部分以提高速度,然后围绕它创建一个 Cocoa 包装器,以便与程序的其余部分进行交互?
    • 语言没那么重要,更重要的是在程序停止时限制你正在做的工作的范围,这样你才能尽快继续它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    相关资源
    最近更新 更多