一、应用场景
逆向过程中往往需要将汇编语言逆向成为C语言,IDA是一个很好的工具,给我们逆向工作带来了很大的便利,但是,如果IDA没有识别出来代码呢,jumpOUT,我们需要掌握将汇编语言直接转成C。
二、反汇编技巧(摘取自 天书夜读)
2.1 首先,将流程代码与数据计算的代码分开,我们使用
F: 用于标识 调用函数或者作为函数被调用,出栈、入栈
C:用于标识 流程控制代码、判断、比较、循环
D: 用于标识 数据处理
2.2 翻译代码
一般被读入的为输入,被写的内部变量为输出;
取出D的代码进行逐句翻译,任何一段不加任何跳转、连续的mov 和 加减乘除都可以还原成为一个表达式;
标识为F的代码基本不用翻译,本身为简单的函数调用。
C的代码将其翻译成为if 、for、do、switch。
2.3 表达式合并 与 控制流程结合,整理出来;
例子,字节可以写一个简单了程序,丢到IDA中,然后使用上面的步骤,就能还原。