【发布时间】:2011-09-02 15:57:32
【问题描述】:
它是复制各种库的行为(因此调用完全相同)还是只是使用独特的优化和新方法从头开始编写代码?
【问题讨论】:
标签: objective-c cocoa reverse-engineering cocotron
它是复制各种库的行为(因此调用完全相同)还是只是使用独特的优化和新方法从头开始编写代码?
【问题讨论】:
标签: objective-c cocoa reverse-engineering cocotron
有不同类型的逆向工程,大致分为脏室和洁净室。 Dirty-Room 基本上涉及以某种方式反汇编机器代码以找出它的作用,并使用反汇编代码创建新代码。 Dirty-Room 造成了侵犯版权的问题,您基本上是在直接或间接地通过对旧系统实施的了解直接或间接地抄袭旧系统来创建新系统。 Clean-Room 涉及使用文档实现相同的 API,并针对要重新实现的系统进行测试。这两种技术可以单独使用,也可以多种组合使用。例如,PC BIOS 使用两个团队进行逆向工程,一个是 Dirty-Room 团队,它分解原始 BIOS 并创建一个规范,另一个是 Clean-Room 团队,它使用该规范实现新的 BIOS。逆向工程的高风险业务情况通常涉及该领域的专业律师,以创建不侵犯旧实施的适当新实施。
Cocotron 是一个 Clean-Room 实现。我/我们使用文档和测试程序来创建一个新的实现(Cocotron),它与旧实现(Cocoa)的行为相匹配。 Apple 文档非常好,API 组织良好,并且在需要时很容易创建测试程序。如果我这么说的话,Cocotron 是相当不错的,但它绝对不是 Cocoa,我想这两者之间的来源差异很大。
【讨论】:
Cocotron 的内部实现与 Cocoa 的完全不同。我不会说涉及任何“逆向工程”。
您应该知道 Cocoa 的 API 有单独实现的历史(有点)。 Cocoa 源于 OpenStep,它最初是作为一种规范设计的,在不同的平台上有许多不同的实现。
【讨论】: