好友
阅读权限10
听众
最后登录1970-1-1
|
天象独行
发表于 2020-12-3 09:26
本帖最后由 天象独行 于 2020-12-3 17:27 编辑
基本语句逆向分析
注释:如果发现图片内容模糊,可以下载附件,附件当中有PDF文档
一;if语句
特点:有个类似cmp指令来成为条件表达式,然后有J**指令用于向下跳转,且跳转的目的代码当中没有jmp指令。
if语句
二;if…else语句
if-else语句
三;if…else if…else语句
在if…else语句当中else再次嵌套一个if…else语句。
特点:在j**指令向下跳转,且跳转的目的代码中有jmp指令。
if-elseif-else
四;switch…case语句
注释:当switch分支数小于6时会直接使用if…else来实现,当switch分支数大于等于6时编译会进行优化。常见优化方案,将所有跳转的case位置偏移放在一个一维数组的表当中,然后将case的值当成数组下标进行跳转。
4
五;do循环
该循环的流程是:先执行语句块,在进行表达式判断,当表达式的值为True,则继续执行语句块。
5
六;while循环
While循环的流程是:先进行表达式判断,当表达式结果为True,会继续执行语句块。
6
七;for循环
For(表达式1;表达式2;表达式3)
For循环流程:
1;计算表达式1
2;求解表达式2,如果值为True,则执行For语句当中的内嵌语句,然后执行第3步;如果表达式2值为假,则结束循环,转到第5步。
3;计算表达式3
4;转会上面第2步执行。
5;结束循环
7
|
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|