Desarrollando controladores sin información
Pregunta
Cómo hace el comunidad de software libre/código abierto ¿Desarrollar controladores para productos que no ofrecen documentación?
Solución
¿Cómo se aplica ingeniería inversa a algo?
- Observa la entrada y la salida y desarrolla un conjunto de reglas o modelos que describen el funcionamiento del objeto.
Ejemplo:
Supongamos que desea desarrollar un controlador de cámara USB.La "caja negra" es el controlador del software.
- Desarrollar enlaces en el sistema operativo y/o controlador para que pueda ver las entradas y salidas del controlador.
- Generar entradas típicas y registrar las salidas.
- Analizar las salidas y sintetizar un modelo que describa la relación entre la entrada y la salida.
- Pruebe el modelo: colóquelo en lugar del controlador de caja negra y ejecute sus pruebas.
- Si hace todo lo necesario, ya está, si no, enjuaga y repite.
Tenga en cuenta que esto es solo un proceso científico/de resolución de problemas normal.Por ejemplo, los pronosticadores del tiempo hacen lo mismo: observan el clima, prueban las condiciones actuales con el modelo, que predice lo que sucederá en los próximos días, y luego comparan los resultados del modelo con la realidad.Cuando no coincide, regresan y ajustan el modelo.
Este método es un poco más seguro (legalmente) que la ingeniería inversa en sala limpia, en la que alguien descompila el código o desensambla el producto, lo analiza minuciosamente y crea un modelo basado en lo que vio.Entonces el modelo (Y NADA MÁS) se pasa a los desarrolladores que replican la funcionalidad del producto.Sin embargo, el ingeniero que desmontó el original no puede participar porque podría traer partes del código/diseño con derechos de autor y, sin darse cuenta, incluirlas en el nuevo código.
Sin embargo, si nunca desensamblas o descompilas el producto, estarás en aguas legalmente seguras: el único problema que queda es el de las patentes.
-Adán
Otros consejos
Generalmente mediante ingeniería inversa del código.Sin embargo, puede haber problemas legales en algunos países.
Esta es una pregunta bastante vaga, pero yo diría Ingeniería inversa.La forma en que lo hacen depende del tipo de dispositivo que sea y de lo que esté disponible para él.En muchos casos, el dispositivo puede tener un conjunto de chips central similar al de otro dispositivo que se puede modificar para que funcione.