【问题标题】:Is Cocotron the result of reverse engineering?Cocotron 是逆向工程的结果吗?
【发布时间】:2011-09-02 15:57:32
【问题描述】:

它是复制各种库的行为(因此调用完全相同)还是只是使用独特的优化和新方法从头开始编写代码?

【问题讨论】:

    标签: objective-c cocoa reverse-engineering cocotron


    【解决方案1】:

    有不同类型的逆向工程,大致分为脏室和洁净室。 Dirty-Room 基本上涉及以某种方式反汇编机器代码以找出它的作用,并使用反汇编代码创建新代码。 Dirty-Room 造成了侵犯版权的问题,您基本上是在直接或间接地通过对旧系统实施的了解直接或间接地抄袭旧系统来创建新系统。 Clean-Room 涉及使用文档实现相同的 API,并针对要重新实现的系统进行测试。这两种技术可以单独使用,也可以多种组合使用。例如,PC BIOS 使用两个团队进行逆向工程,一个是 Dirty-Room 团队,它分解原始 BIOS 并创建一个规范,另一个是 Clean-Room 团队,它使用该规范实现新的 BIOS。逆向工程的高风险业务情况通常涉及该领域的专业律师,以创建不侵犯旧实施的适当新实施。

    Cocotron 是一个 Clean-Room 实现。我/我们使用文档和测试程序来创建一个新的实现(Cocotron),它与旧实现(Cocoa)的行为相匹配。 Apple 文档非常好,API 组织良好,并且在需要时很容易创建测试程序。如果我这么说的话,Cocotron 是相当不错的,但它绝对不是 Cocoa,我想这两者之间的来源差异很大。

    【讨论】:

      【解决方案2】:

      Cocotron 的内部实现与 Cocoa 的完全不同。我不会说涉及任何“逆向工程”。

      您应该知道 Cocoa 的 API 有单独实现的历史(有点)。 Cocoa 源于 OpenStep,它最初是作为一种规范设计的,在不同的平台上有许多不同的实现。

      【讨论】:

      • 很高兴知道,谢谢。您是否知道来自 Apple 的逆向工程库(我主要对 AppKit 感兴趣)?了解库的行为方式有时非常有用。
      • 不,但是通过 Cocotron 的源代码可以看到 a 方法,如果不是 the 方法,这通常仍然很有趣且有用。
      • 我同意。然而,我不敢相信还没有人尝试过。
      • GNUStep 的基础资源非常棒。看看他们,因为我认为在行为方面没有太大变化。
      • 虽然与 Cocotron 相同,但 GNUstep 不一定像 Cocoa 那样实现任何东西。 (另请注意,Cocotron 更努力地与 Cocoa 保持兼容,而 GNUstep 则更倾向于成为自己的东西。)
      猜你喜欢
      • 2012-09-06
      • 2017-03-29
      • 2012-08-26
      • 2015-10-02
      • 2012-07-30
      • 1970-01-01
      • 2010-12-15
      • 2012-05-01
      • 1970-01-01
      相关资源
      最近更新 更多