文章预览
一 概述 代码扁平化的目的是将原有的程序逻辑重新组合成复杂逻辑,其主要体现是把原来的 if else 语句转换成 switch 语句。 switch 结构体包含多个分支,各个分支的执行顺序是随机的,但并不影响真正的程序逻辑。然后在 switch 结构的外层,再套一个或多个 while 循环。 下面编写一段代码进行测试,代码的功能是在 main 函数中执行一个名称为 add 的自定义函数。 add 函数里会判断参数 num1 是否等于 100 ,如果等于,则返回 0 ,否则继续执行,而后将参数 num1 和 num2 相加,结果赋值给 num3 ,并返回 num3 。具体代码如下: int add(int num1, int num2){ if (num1 == 100) { return 0; } int num3 = num1 + num2; return num3; } int main(){ int num1 = 10; int num2 = 20; int num3 = add(num1,num2); return 0; } 编译上面的代码,使用 IDA 反编译可执行文件,会看到代码的调用过程
………………………………