2

开源/自由软件社区如何为不提供文档的产品开发驱动程序?

4

3 回答 3

7

你如何对某些东西进行逆向工程?

  • 您观察输入和输出,并制定一组描述对象操作的规则或模型。

例子:

假设您要开发一个 USB 摄像头驱动程序。“黑匣子”是软件驱动程序。

  1. 在操作系统和/或驱动程序中开发挂钩,以便您可以看到驱动程序的输入和输出
  2. 生成典型输入,并记录输出
  3. 分析输出并综合描述输入和输出之间关系的模型
  4. 测试模型 - 将其替换黑盒驱动程序,然后运行您的测试
  5. 如果它完成了你需要的一切,你就完成了,如果没有冲洗并重复

请注意,这只是一个常规的问题解决/科学过程。例如,天气预报员做同样的事情——他们观察天气,根据模型测试当前条件,预测未来几天会发生什么,然后将模型的输出与现实进行比较。当它不匹配时,他们会返回并调整模型。

这种方法比洁净室逆向工程更安全(合法),后者实际上是有人反编译代码,或反汇编产品,彻底分析它,然后根据他们看到的内容制作模型。然后将模型(AND NOTHING ELSE)传递给复制产品功能的开发人员。然而,拆开原件的工程师不能参与,因为他可能会带来代码/设计的受版权保护的部分,并无意中将它们放入新代码中。

但是,如果您从不反汇编或反编译产品,那么您应该处于法律安全的水域——唯一剩下的问题是专利问题。

-亚当

于 2008-09-12T15:17:03.063 回答
2

通常通过对代码进行逆向工程。不过,在某些国家/地区可能存在法律问题。

于 2008-09-12T15:02:18.967 回答
0

这是一个非常模糊的问题,但我会说逆向工程。他们如何做到这一点取决于它是什么类型的设备以及可用的设备。在许多情况下,该设备可能具有与另一台设备类似的核心芯片组,可以对其进行修改以使其正常工作。

于 2008-09-12T15:02:32.147 回答