Bastante grande "depende".
El mapeo desde el código fuente -> objeto no es (matemáticamente hablando) reversible, por lo que no puede recuperar el código fuente. Pero si tiene el código de objeto, no es tan difícil encontrar algún tipo de fuente que se compile con el mismo código de objeto, o al menos que tenga el mismo efecto: eso es solo desmontaje/ensamblaje.
Dependiendo de cuán creativo sea su proceso de descompilación, sin embargo, el código C podría parecerse mucho al ensamblador. Así que cuestionaría la calidad del código que probablemente recibiría de un tercero: "código C" no significa "código C que nuestros programadores C puedan mantener fácilmente", y podría ser realmente bastante difícil de producir. el último.
También tenga en cuenta que un controlador incrustado "escrito en C" podría tener bastante ensamblador en su código fuente. Entonces, o permite ensamblador en su versión de ingeniería inversa o no. Si no lo hace, puede ser imposible reproducir la funcionalidad en C. Si lo hace, ¿dónde dibujará la línea? En el extremo, podría desensamblar su fuente y no tener ningún código C adecuado. No se puede decir necesariamente, al examinar el código objeto, qué bits se escribieron en C y cuáles no.
Todo esto, por supuesto, dejando de lado las cuestiones legales. Probablemente no sea prudente dejar de lado los problemas legales, especialmente porque parece que estás comprando este sistema como un objeto físico, y posiblemente no tengas ninguna base legal para separar el código del hardware en absoluto.
¿Cómo sabes que estaba escrito en C? –
Un detalle importante que omitió es qué hardware está usando. –
No sé si estaba escrito en C y todavía no conozco la CPU, solo me hicieron la pregunta ayer. La próxima semana tendré tiempo para desmontar una de las máquinas y ver qué CPU y otros chips está usando. –