我有一些PPC代码,我想转换回它的原始C代码,有没有办法做到这一点?可能是一个人(比如知道PPC重建C代码的人)或程序?是否可以将PPC程序集转换为C?
1
A
回答
0
Boomerang声称支持PPC反编译。
1
是的,没有。
原则上可以将任何语言的程序翻译成任何其他语言。结果不会很漂亮。
如果现有的代码真的是编译的结果,没有太多的巧妙的优化,那么很可能是一个相当死板的过程可以把它转回到C.这往往是直接手工处理少量的代码,但对于大型代码库来说却很乏味且容易出错。
有一些逆向工程工具在野外有关反编译的声明。在一般情况下,这不是一个简单的问题。
使问题自动化的一种方法是为已经支持C语言后端的编译器创建PPC汇编(甚至二进制)前端。其结果是一个交叉编译器读取PPC代码并产生高度混淆的C代码。例如,我知道GCC有一个C后端。
无论您采取什么方法,对于现有二进制文件,您都有一个良好的测试套件(以及运行它的能力)可能很关键,这样您就可以证明翻译是等同的。
编辑:请注意,您将永远不会收到原始评论,并且只能访问使其成为符号表或类似调试信息的原始变量和函数名称。
0
不可以。反编译与获取c不同。你永远无法得到c回来。您可以尝试对其进行逆向工程,试图了解它在做什么,但是一些信息会永久丢失。
这是自食其果项目:
然而,一般的反编译器不会试图扭转反编译的每一个动作,而是反复地将输入程序,直到结果是高层次的源代码。因此不会重新创建原始源文件; 可能没什么喜欢它。
所以产生了一些C代码可能是(但永远不会知道)C源代码。
1
IDA Pro 6.95包括PPC反编译器。 但它有点贵(2350美元)
相关问题
- 1. 是否可以将调试程序集转换为发布程序集?
- 2. 是否有程序将程序集转换为C++?
- 3. 是否可以将VBA转换为C#?
- 4. 将C++程序转换为程序集
- 5. 将C程序转换为程序集?
- 6. 是否有可能将Windows程序集转换为单声道?
- 7. 将C函数转换为程序集
- 8. 将C#代码转换为程序集
- 9. 是否可以将NSInteger转换为NSNumber?
- 10. 是否可以将byte []转换为bitmapsource?
- 11. 是否可以将MBCS转换为DBCS?
- 12. 是否可以将View转换为ViewGroup?
- 13. 是否可以将Button转换为TextView?
- 14. 是否可以将TextPointer转换为Integer
- 15. 是否可以将wpa_supplicant.conf转换为NetworkManager?
- 16. 是否可以将常规Java应用程序转换为Web应用程序?
- 17. 是否可以将C#字符串转换为SqlChars?
- 18. 是否可以将序列化的ASP.NET数据集转换为PHP对象?
- 19. 所有程序都可以转换为程序集吗?
- 20. 将简单的C++程序转换为程序集(68000)
- 21. 是否可以将schematron模式编译为Biztalk程序集
- 22. 是否可以将Android应用程序转换为在Windows上运行?
- 23. 是否可以将Oracle Forms6应用程序转换为Windows Forms(.net)?
- 24. 是否可以将WinForms应用程序转换为COM服务器?
- 25. 是否可以将用Adobe Flex编写的应用程序转换为JavaScript?
- 26. 将C转换为MPI API C程序
- 27. 将伪代码转换为程序集
- 28. 将x86转换为x86-64程序集
- 29. 将方程转换为c程序
- 30. 是否可以将查询的输出转换为可能?
PPC和PowerPC一样吗? – ruslik 2010-12-04 01:11:48
是的,PowerPC组件。 – user330416 2010-12-04 01:12:22
由于编译为机器代码是一个有损耗的过程,因此无法获取*原始* C。没有1对1的对应关系。然而,Power的反汇编/反编译器不在我的专业范围之内。 – SingleNegationElimination 2010-12-04 01:14:58