全站数据
8 4 2 0 5 8 1

c语言为什么不能反编译

IT海盗 | 简单学习,快乐成才!         
问题更新日期:2024-10-28 05:50:00

问题描述

c语言为什么不能反编译希望能解答下
精选答案
最佳答案

基本上C语言写的程序是不可能进行反编译的,因为C的代码在编译时会被编成真正的机器码,也就是二进行码了。退一步说,既使反编译成功也是反编译成汇编语言,这种语言现在能看懂的绝对是骨灰级的程序员了。

顺便说一下,在framework框架下运行的Visual C++确是可以用工具反编译成标准的C代码的,因为VC实际上是解释语言了与C语言并不是完全相同的。

其他回答

C语言源程序经过编译、优化,得到目标格式,但由目标格式不能逆推得到C源码,因为目标码可能是经过优化的,谁也不能说这些优化做到了哪样的程度,因而没 有算法进行这样的逆推,所以不可能从目标格式得到C源码。

其他回答

因为不同的源程序经过编译可能得到相同的可执行程序,因此如果反向操作就存在二义性了