Eldad Eilam所著的Reversing: Secrets of Reverse Engineering一书 为美国境内逆向工程的合法性提供了一些指导。本书建议在开始任何“高风险”逆转项目之前寻求法律顾问,然后将以下部分作为高风险的指南。
互操作性
美国司法系统支持将逆向工程用于互操作性目的。Accolade 是一家总部位于加利福尼亚的游戏开发商,在对 Sega Genesis 编程接口进行逆向工程并为 Sega Genesis 发布游戏后,它于 1991 年被索尼起诉侵犯版权。Accolade 赢得了法庭诉讼,因为 Accolade 游戏不包含任何世嘉的代码,并且因为公共利益导致竞争加剧。
竞赛
当用于从竞争进程中窃取代码时,逆向工程可能被认为是非法的。
商业秘密和专利
逆向工程专利技术没有意义,因为专利信息已经公开。存在商业秘密是为了在恶意员工可能试图向竞争对手出售机密的情况下保护开发人员。在竞争对手对产品进行逆向工程的情况下,只要产品在公开市场上可用并且是合法获得的,作为商业秘密的产品就不会保护其开发者。
数字千年版权法案
DMCA 在法律上保护版权保护系统免受规避。DMCA 不适用于任何其他类型的受版权保护的软件,因此许多逆向工程工作将不受 DMCA 授予的规则和例外的约束。DMCA 明确禁止的事项:
- 版权保护制度的规避
- 开发规避技术。这本书特别提到,keygen 将是规避技术的一个很好的例子。但是书中没有提到如何使用工具来创建规避技术(例如 IDA Pro)。
但是,也有允许规避的例外情况。
- 互操作性“在需要此类工作以与相关软件产品进行互操作的情况下,可能允许逆转和规避 DRM 技术。例如,如果程序被加密以进行复制保护,则软件开发人员可以解密如果这是与它进行互操作的唯一方法,那么请检查有问题的程序。”
- 只要保护技术干扰对加密技术的评估,就允许加密研究规避
- 安全测试允许以“评估或提高计算机系统的安全性”为目的的逆向和规避
- 政府调查
- 监管DCMA 允许颠覆 DRM 技术,以监管未成年人在互联网上可访问的材料。
- 隐私保护“收集或传输个人信息的产品可能会被逆转,其中包含的任何保护技术都可能被规避。”
许可协议注意事项
关于软件许可协议中的反逆向工程条款,Eilam 表示没有单一的、权威的答案,这完全取决于逆向工程工作的具体情况。
维基百科也有一节关于逆向工程的合法性,声称“法院已经发现此类合同禁令凌驾于明确允许的版权法之上;参见Bowers 诉 Baystate Technologies ”
应该指出的是,Bowers 诉 Baystate Technologies 案确立了许可协议可以抢占合理使用权,并将版权持有人的权利扩展到美国联邦法律以外的权利。