所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

为什么有反汇编而没有反C的说法?

发布时间:2020-04-12 08:49:28

资讯分类:反c  反汇编  说法  代码  汇编  反汇编
为什么有反汇编而没有反C的说法?

反汇编是指将非汇编目标代码转变成汇编的过程.

你所看到的反汇编代码,其实是由C编译器将C语言代码直接编译成汇编代码的,并非由机器码反汇编成汇编.

这样做在调试阶段有非常大的意义,比如你写的代码,语法上一点错误都没有,但是逻辑上有了错误,往往你要找到这个逻辑错误是很难的,这时候在调试的时候单步执行反汇编代码就变的很有意义了,给你举个例子:将变量十进制码转成16进制,十进制码放在变量tmp中,如果代码这样写:

d=(tmp>>4)*10+tmp&0x0F;

假如你输入tmp变量存储的是十进制的23(存储为0x23),然后使用上句准换为16进制,那么d应该等于0x17,但实际上代码的结果却是0x07,原因就是虽然上句代码语法上没有错误,但是逻辑上有错,运算符'+'的优先级是大于运算符'&'的,这就造成了运算结果出错,结合反汇编代码可以很容易查出这类错误.

反汇编和C代码中都可以设置断点,但调试反汇编可以获得更高的精度,因为一句C代码可能有数十条汇编代码组成,在C代码单步执行一次,可能执行了十几条汇编代码,而在反汇编界面单步调试,每次只执行一句汇编代码(滥竽充数一下???)

为什么有反汇编而没有反C的说法?

我1993年毕业时的毕业设计就是基于SCO Unix操作系统的C语言反编译器,因此而获得上海交大计算机系优秀毕业设计奖。我们一共三个同学,我负责编码,另一个负责c语言库函数识别模块,还有一个负责测试。这两位同学都在美国。在那之前,我和另一个同学也设计了一个自定义高级语言的编译器。反编译系统设计的难点在于反优化和库函数识别。由于编译器在编译时进行了大量的优化,因此会导致反编译出来的结果难以看懂。当然,反汇编是反编译的预处理过程,这个没有什么技术含量。

为什么有反汇编而没有反C的说法?

有,不过反C,反JAVA之类的通称反编译

为什么有反汇编而没有反C的说法?

能提出这个问题的人是人才

为什么有反汇编而没有反C的说法?

此汇编非彼汇编啊兄弟

汇编语言是一门语言

反汇编这个词里面的汇编 只是一个动作 并不是代表汇编语言。

C需要预编译 编译 汇编 链接4个步骤,这里的汇编表示的是一个过程,就是把汇编语言转换为机器语言的过程,不是汇编语言。

反汇编就是将这个过程逆向而已!

反C是什么操作?,C语言是个名词,咋还能反?。题主多学习学习。

为什么有反汇编而没有反C的说法?

机器码和汇编是一一对应的,所以可以反汇编。

c的话实际编译中是先变编译成汇编,然后才是机器码。反向编译基本不可能了。

为什么有反汇编而没有反C的说法?

C语言直接运行,汇编语言需要对源代码进行汇编成机器认识后才能运行,而需要程序升级修改的时候,就需要反汇编才能修改源代码,,

为什么有反汇编而没有反C的说法?

不清楚,没研究。

留言与评论(共有 0 条评论)
   
验证码:
Top