Does it replicate the behaviour of the various libraries (so the calls are exactly the same) or just codes them from scratch using unique optimizations and new ways to do their stuff?
它是复制各种库的行为(因此调用是完全相同的),还是仅仅使用惟一的优化和新方法从头编写它们?
2 个解决方案
#1
10
There are different kinds of reverse engineering grouped roughly into Dirty-Room and Clean-Room. Dirty-Room basically involves disassembling machine code in some way to figure out what it does and using the disassembled code to create new code. Dirty-Room creates the problem of copyright infringement, you're basically plagiarizing the old system to create the new system either directly or indirectly through direct knowledge of the old systems implementation. Clean-Room involves implementing the same API's using documentation and testing against the system to be re-implemented. These two techniques can be used on their own or in various combinations together. For example the PC BIOS was reverse engineered using two teams, a Dirty-Room team which disassembled the original BIOS and created a specification and a Clean-Room team which implemented the new BIOS using the specification. High stake business situations for reverse engineering usually involves lawyers specializing in the field to create a proper new implementation which does not infringe on the old one.
有不同种类的逆向工程大致分为脏室和洁净室。脏房间基本上包括以某种方式分解机器代码,以确定它的功能,并使用分解后的代码创建新代码。dirt - room造成了版权侵权问题,你基本上是在剽窃旧系统,直接或间接地通过对旧系统实现的直接知识来创建新系统。clean room涉及对要重新实现的系统实现相同的API的使用文档和测试。这两种技术可以单独使用,也可以组合使用。例如,PC BIOS使用两个团队进行反向设计,一个是脏房间团队,该团队分解原始BIOS并创建规范,另一个是清洁房间团队,该团队使用规范实现新的BIOS。逆向工程的高利害业务情况通常涉及专门从事该领域的律师,以创建一种不侵犯旧实现的适当的新实现。
Cocotron is a Clean-Room implementation. I/We use the documentation and test programs to create a new implementation (Cocotron) which matches the behavior of the old implementation (Cocoa). The Apple documentation is very good, the API's are organized well and it is easy to create test programs when needed. Cocotron is pretty good if I do say so, but it is definitely not Cocoa and I would imagine the sources vary wildly between the two.
Cocotron是一个洁净室的实现。我/我们使用文档和测试程序创建一个新的实现(Cocotron),该实现与旧实现(Cocoa)的行为相匹配。苹果的文档非常好,API组织得很好,在需要时很容易创建测试程序。如果我这么说的话,Cocotron真的很不错,但它绝对不是可可,而且我想这两者之间的来源差异很大。
#2
2
Cocotron's internal implementation is fairly different from Cocoa's. I wouldn't say there's any "reverse engineering" involved.
Cocotron的内部实现与Cocoa有着很大的不同。我不会说这里面有任何“逆向工程”。
You should know there's a history of having separate implementations of Cocoa's API (sort of). Cocoa grew out of OpenStep, which was originally designed as a specification with many different implementations on different platforms.
您应该知道,有一个关于Cocoa API的单独实现的历史(有点)。Cocoa是从OpenStep发展而来的,OpenStep最初被设计成一个在不同平台上有许多不同实现的规范。
#1
10
There are different kinds of reverse engineering grouped roughly into Dirty-Room and Clean-Room. Dirty-Room basically involves disassembling machine code in some way to figure out what it does and using the disassembled code to create new code. Dirty-Room creates the problem of copyright infringement, you're basically plagiarizing the old system to create the new system either directly or indirectly through direct knowledge of the old systems implementation. Clean-Room involves implementing the same API's using documentation and testing against the system to be re-implemented. These two techniques can be used on their own or in various combinations together. For example the PC BIOS was reverse engineered using two teams, a Dirty-Room team which disassembled the original BIOS and created a specification and a Clean-Room team which implemented the new BIOS using the specification. High stake business situations for reverse engineering usually involves lawyers specializing in the field to create a proper new implementation which does not infringe on the old one.
有不同种类的逆向工程大致分为脏室和洁净室。脏房间基本上包括以某种方式分解机器代码,以确定它的功能,并使用分解后的代码创建新代码。dirt - room造成了版权侵权问题,你基本上是在剽窃旧系统,直接或间接地通过对旧系统实现的直接知识来创建新系统。clean room涉及对要重新实现的系统实现相同的API的使用文档和测试。这两种技术可以单独使用,也可以组合使用。例如,PC BIOS使用两个团队进行反向设计,一个是脏房间团队,该团队分解原始BIOS并创建规范,另一个是清洁房间团队,该团队使用规范实现新的BIOS。逆向工程的高利害业务情况通常涉及专门从事该领域的律师,以创建一种不侵犯旧实现的适当的新实现。
Cocotron is a Clean-Room implementation. I/We use the documentation and test programs to create a new implementation (Cocotron) which matches the behavior of the old implementation (Cocoa). The Apple documentation is very good, the API's are organized well and it is easy to create test programs when needed. Cocotron is pretty good if I do say so, but it is definitely not Cocoa and I would imagine the sources vary wildly between the two.
Cocotron是一个洁净室的实现。我/我们使用文档和测试程序创建一个新的实现(Cocotron),该实现与旧实现(Cocoa)的行为相匹配。苹果的文档非常好,API组织得很好,在需要时很容易创建测试程序。如果我这么说的话,Cocotron真的很不错,但它绝对不是可可,而且我想这两者之间的来源差异很大。
#2
2
Cocotron's internal implementation is fairly different from Cocoa's. I wouldn't say there's any "reverse engineering" involved.
Cocotron的内部实现与Cocoa有着很大的不同。我不会说这里面有任何“逆向工程”。
You should know there's a history of having separate implementations of Cocoa's API (sort of). Cocoa grew out of OpenStep, which was originally designed as a specification with many different implementations on different platforms.
您应该知道,有一个关于Cocoa API的单独实现的历史(有点)。Cocoa是从OpenStep发展而来的,OpenStep最初被设计成一个在不同平台上有许多不同实现的规范。