![]() |
1
2
相当大的“视情况而定”。 源代码映射-对象代码(从数学上讲)不可逆,因此无法恢复 这个 源代码。但是,如果您有对象代码,那么就不难找到一种编译到相同对象代码的源代码,或者至少具有相同效果的源代码——这只是反汇编/汇编。 不过,根据反编译过程的创造性,C代码可能看起来很像汇编程序。所以我会质疑我可能从第三方那里得到的代码的质量-“C代码”并不意味着“C代码很容易被我们的C程序员维护”,而产生后者可能真的很困难。 另外请注意,“用C语言编写”的嵌入式控制器在其源代码中实际上可能包含相当多的汇编程序。所以要么你允许在你的逆向工程版本中使用汇编程序,要么你不允许。如果你不允许,可能不可能在C中再现功能。如果你允许,那么你在哪里画线-极端的情况下,你可以只分解它们的源代码,根本没有任何合适的C代码。通过检查对象代码,您不一定能分辨出哪些位是用C编写的,哪些位不是用C编写的。 当然,所有这些都忽略了法律问题。把法律问题放在一边可能是不明智的,特别是当你似乎把这个系统作为一个物理对象购买时,你可能根本没有将代码与硬件分开的法律依据。 |
![]() |
2
4
有很多公司会在不进行逆向工程的情况下重新实现嵌入式控制系统,只要你知道系统的需求。 |
![]() |
3
2
见答案 reverse engineering c programs 特别是,请参阅我的答案“从猪到香肠”。如果所讨论的汇编程序没有执行在C中无法状态的操作(例如,“设置堆栈指针寄存器…”),那么本文后面的公司可以很好地将汇编程序转换回C。 [我和猪对香肠的人没有任何关系,除了认识他们并对他们的技术领导非常尊重。] |
![]() |
4
0
假设您能够从系统中检索二进制代码,那么分解和梳理二进制代码应该没有问题。将汇编程序代码转换为 可维护的 C代码是一个大问题。根据系统的大小,这将需要大量时间手动(重新)将代码写入可用的内容。 据我所知,在某些国家,对系统进行反向工程以确保与您的软件兼容是合法的。但这可能需要洁净室逆向工程。 |
![]() |
5
0
如果您正在寻找帮助逆向工程的公司,那么您可能需要仔细研究一下谁在 Working Conference on Reverse Engineering . 在那里找一些能给你留下深刻印象的工作,问问那些要雇用谁的人。 |
![]() |
6
0
你最好在家里组建一个嵌入式团队。同时,你需要做4-5个软件变更,有了合适的团队,你就可以拥有完全自主的硬件和软件设计,再加上可以快速实施变更的内部专业知识。 …更不用说,如果产品有相当大的销量,你会节省多少钱。 |