Un bel "dipende".
Il mapping da origine -> codice oggetto è (matematicamente parlando) non reversibile, quindi non è possibile ripristinare il codice sorgente. Ma se hai il codice oggetto non è poi così difficile trovare una fonte che compili lo stesso codice oggetto, o almeno che abbia lo stesso effetto - è solo smontaggio/assemblaggio.
A seconda di quanto creativo è il processo di decompilazione, tuttavia, il codice C potrebbe apparire molto simile all'assemblatore. Quindi metterei in discussione la qualità del codice che probabilmente tornerò da una terza parte - "codice C" non significa "codice C che è facilmente gestibile dai nostri programmatori C", e potrebbe essere davvero molto difficile da produrre l'ultimo.
Si noti inoltre che un controller incorporato "scritto in C" potrebbe in realtà avere un numero molto elevato di assembler nel codice sorgente. Quindi o consenti all'assemblatore nella tua versione modificata o non lo fai. Se non lo fai, potrebbe essere impossibile riprodurre la funzionalità in C. Se lo fai, allora dove si disegna la linea - all'estremo si potrebbe semplicemente smontare la loro fonte e non avere alcun codice C corretto. Non si può necessariamente dire dall'esame del codice oggetto quali bit sono stati scritti in C e quali no.
Tutto questo ovviamente lasciando da parte le questioni legali. Probabilmente non è saggio lasciare da parte i problemi legali, soprattutto perché sembra che tu stia acquistando questo sistema come un oggetto fisico, e probabilmente non hai alcuna base legale per separare il codice dall'hardware.
fonte
2010-05-01 17:08:59
Come sai che è stato scritto in C? –
Un dettaglio importante che hai tralasciato è l'hardware utilizzato. –
Non so che è stato scritto in C e non conosco ancora la CPU, è stata fatta solo la domanda di ieri. La prossima settimana avrò il tempo di smontare una delle macchine e vedere quale CPU e altri chip sta usando. –