2016 - 2024

感恩一路有你

反汇编和逆向工程 为什么有反汇编而没有反C的说法?

浏览量:2182 时间:2021-04-01 17:01:54 作者:admin

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

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

您看到的反汇编代码实际上是由C编译器直接从C语言代码编译成汇编代码,而不是从机器代码中编译出来的。

这在调试阶段具有重要意义。例如,你写的代码没有语法错误,但是有一个逻辑错误,你很难找到这个逻辑错误。此时,在调试过程中逐步执行反汇编代码是非常有意义的。让我给你一个例子:把变量十进制代码转换成十六进制,把十进制代码放在变量TMP中。如果代码如下所示:

D=(TMP>>4)*10 TMP&0x0f

如果您输入TMP变量来存储十进制23(存储为0x23),然后使用前面的语句更改为十六进制,那么D应该等于0x17,但实际上代码的结果是0x07,因为前面的语句代码虽然没有语法错误,但存在逻辑错误,运算符error “的优先级”高于运算符“&;”,导致运算结果错误。结合反汇编代码很容易发现这种错误

反汇编和C代码都可以设置断点,但调试反汇编可以获得更高的精度,因为一个C代码可能由几十个汇编代码组成,而C代码中的一个单步可以执行十多个汇编代码,最基本的计算机编程语言是汇编语言。当它用作动词时,意味着用汇编语言编写的程序代码被编译并连接起来生成可执行程序。反汇编是这个过程的逆过程,一般用于商业软件或病毒以及其他不知道如何编写源程序的程序。拆卸后,机器代码(即由01组成的指令)被翻译成装配指令。在一定程度上,人们可以了解程序的编写方法和所用算法的特点,增加反汇编难度的方法有很多,如在程序中添加shell、使用大量的跳转等

反汇编和逆向工程 苹果助手 反汇编工具有哪些

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。