本帖最后由 天象独行 于 2020-12-2 15:35 编辑
基本语句逆向分析文章图片模糊在附件下载文档查看即可
一;if语句 特点:有个类似cmp指令来成为条件表达式,然后有J**指令用于向下跳转,且跳转的目的代码当中没有jmp指令。
基本语句逆向分析
二;if…else语句
基本语句逆向分析
三;if…else if…else语句 在if…else语句当中else再次嵌套一个if…else语句。
特点:在j**指令向下跳转,且跳转的目的代码中有jmp指令。
基本语句逆向分析
四;switch…case语句
注释:当switch分支数小于6时会直接使用if…else来实现,当switch分支数大于等于6时编译会进行优化。常见优化方案,将所有跳转的case位置偏移放在一个一维数组的表当中,然后将case的值当成数组下标进行跳转。
基本语句逆向分析
五;do循环
该循环的流程是:先执行语句块,在进行表达式判断,当表达式的值为True,则继续执行语句块。
基本语句逆向分析
六;while循环
While循环的流程是:先进行表达式判断,当表达式结果为True,会继续执行语句块。
基本语句逆向分析
七;for循环 For(表达式1;表达式2;表达式3) For循环流程: 1;计算表达式1 2;求解表达式2,如果值为True,则执行For语句当中的内嵌语句,然后执行第3步;如果表达式2值为假,则结束循环,转到第5步。 3;计算表达式3 4;转会上面第2步执行。
5;结束循环
基本语句逆向分析
|