Существуют различные виды реверс-инжиниринга, сгруппированные примерно в «грязную комнату» и «чистую комнату».Dirty-Room в основном включает в себя дизассемблирование машинного кода, чтобы выяснить, что он делает, и использование дизассемблированного кода для создания нового кода.Dirty-Room создает проблему нарушения авторских прав, вы в основном плагиатируете старую систему, чтобы создать новую систему прямо или косвенно через непосредственное знание о внедрении старых систем.Clean-Room включает в себя реализацию одного и того же API с использованием документации и тестирование для повторной реализации системы.Эти два метода могут использоваться самостоятельно или в различных комбинациях вместе.Например, BIOS ПК был перепроектирован с использованием двух команд, команды Dirty-Room, которая разобрала оригинальный BIOS и создала спецификацию, и команды Clean-Room, которая внедрила новый BIOS с использованием спецификации.В бизнес-ситуациях с высокими ставками для реверс-инжиниринга обычно участвуют юристы, специализирующиеся в данной области, для создания надлежащей новой реализации, которая не затрагивает старую.
Cocotron - это реализация Clean-Room.Я / Мы используем документацию и тестовые программы для создания новой реализации (Cocotron), которая соответствует поведению старой реализации (Cocoa).Документация Apple очень хорошая, API хорошо организованы, и при необходимости легко создавать тестовые программы.Cocotron довольно хорош, если я так говорю, но это определенно не Какао, и я бы предположил, что источники сильно различаются между ними.