开源/免费软件社区如何为不提供文档的产品开发驱动程序?
你如何逆向工程?
您可以观察输入和输出,并开发一组描述对象操作的规则或模型.
例:
假设您想开发USB相机驱动程序."黑匣子"是软件驱动程序.
开发OS和/或驱动程序的钩子,以便您可以看到驱动程序的输入和输出
生成典型输入,并记录输出
分析输出并合成描述输入和输出之间关系的模型
测试模型 - 将其放在黑盒驱动程序的位置,然后运行测试
如果它能完成你需要的一切,那么你就完成了,如果没有冲洗并重复
请注意,这只是一个常规的问题解决/科学过程.例如,天气预报员做同样的事情 - 他们观察天气,测试模型的当前条件,预测未来几天会发生什么,然后将模型的输出与现实进行比较.当它不匹配时,它们返回并调整模型.
这种方法比洁净室逆向工程更安全(合法),在那里有人实际反编译代码,或者反汇编产品,彻底分析它,并根据他们看到的内容制作模型.然后将模型(AND NOTHING ELSE)传递给开发人员,复制产品的功能.然而,将原版拆开的工程师无法参与,因为他可能会带有受版权保护的代码/设计部分,并无意中将它们放入新代码中.
但是,如果您从未拆解或反编译产品,那么您应该处于合法安全的水域 - 唯一的问题是专利问题.
-亚当