开发没有信息的驱动程序

时间:2008-09-12 14:58:30

标签: linux kernel drivers bsd

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

3 个答案:

答案 0 :(得分:7)

你如何逆向工程?

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

示例:

假设您想要开发USB相机驱动程序。 “黑匣子”是软件驱动程序。

  1. 在操作系统和/或驱动程序中开发钩子,以便您可以看到驱动程序的输入和输出
  2. 生成典型输入,并记录输出
  3. 分析输出并合成描述输入和输出之间关系的模型
  4. 测试模型 - 将其替换为黑匣子驱动程序,然后运行测试
  5. 如果它完成了你需要的一切,你就完成了,如果不是冲洗并重复
  6. 请注意,这只是一个常规解决问题/科学过程。例如,天气预报员做同样的事情 - 他们观察天气,测试模型的当前条件,预测未来几天会发生什么,然后将模型的输出与现实进行比较。当它不匹配时,它们会返回并调整模型。

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

    但是,如果您从未拆解或反编译产品,那么您应该处于合法安全的水域 - 唯一的问题是专利问题。

    - 亚当

答案 1 :(得分:2)

答案 2 :(得分:0)

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