fre*_*set 5 c embedded reverse-engineering
所有,
我公司正处于使用其他国家其他公司的嵌入式控制系统的情况.我们没有此系统的源代码或原理图,制造商不希望以任何价格或任何条款发布它们.因此,我们坚持了6个月的转身以完成一个小的修改,他们基本上可以收取任何他们想要的金额.
除法律方面之外,将嵌入式代码反向工程改为C是否完全可行?是否存在可以为我们做到这一点的公司?
谢谢你,弗雷德
相当大的“这取决于”。
从源代码到目标代码的映射(从数学上讲)是不可逆的,因此您无法恢复源代码。但是,如果您有目标代码,那么想出某种编译为相同目标代码的源代码并不那么困难,或者至少具有相同的效果 - 这只是反汇编/汇编。
不过,根据反编译过程的创造性,C 代码可能看起来很像汇编程序。因此,我会质疑我可能从第三方获得的代码的质量 - “C 代码”并不意味着“我们的 C 程序员可以轻松维护的 C 代码”,而且它可能真的很难生成后者。
另请注意,“用 C 编写”的嵌入式控制器实际上可能在其源代码中包含相当多的汇编程序。因此,要么在逆向工程版本中允许汇编程序,要么不允许。如果您不这样做,则可能无法在 C 中重现功能。如果您这样做,那么您在哪里划清界限 - 在极端情况下,您可能只是反汇编它们的源代码,而根本没有任何正确的 C 代码。您不一定能通过检查目标代码来判断哪些位是用 C 编写的,哪些不是。
当然,所有这些都暂且不考虑法律问题。抛开法律问题可能是不明智的,尤其是当您似乎将该系统作为物理对象购买时,并且您可能根本没有法律依据将代码与硬件分开。