复杂分支结构逆向(基础)
来源:互联网 发布:淘宝开店后怎么进货 编辑:程序博客网 时间:2024/06/10 11:23
一、 条件分支的逆向基础
(1)简单if-else
我们知道简单的if-else的跳转结构是这样的。
例如:
if(i1<x1)
……;
else
……;
在反汇编结果中我们会看到类似下面的结果
两点说明::
①jxx AAAAAAAA 这句由于false则跳转,因此还原为if代码时,要注意。
②jmp BBBBBBBB 这句在功能上属于if的部分,但是如果没有else,编译器不会填写此句。
(2)多层嵌套if-else
if(i<x1)
{…
if(i<x2)
{…
if(i<x3)
…..
else
…..
}
else
……
}
对应反汇编形态:(地址A、B、C、D从小到大分布)
Debug版
说明:
这里我们看到在Debug版里,多层嵌套if-else只是简单重复单层if-else的结构。另外,jxx仍然是false则跳转,翻译为if时,要注意。
Release版
说明:
我们看到Release版对Debug改进,避免了jmp的多次运行。
二、复杂条件的条件分支逆向
1.复合条件的条件分支
(1)与——&&
if(i1<x1 && i2<x2 && i3<x3)
……
else
……
反汇编形态:
(2)或——||
if(i1<x1 || i2<x2 || i3<x3)
……
else
……
反汇编形态:
(3)混合
if(i1<x1||i2<x2&&i3<x3)
……
else
……
if(i1<x1&&i2<x2||i3<x3)
……
else
……
反汇编形态:
- 复杂分支结构逆向(基础)
- 复杂分支结构逆向
- C语言基础-分支结构
- 【Java基础】Java分支结构
- mysql游标处理复杂逻辑,分支结构代码示例
- 黑马程序员-----------C语言基础-----------分支结构
- java基础,分支结构、循环、数组
- JavaSe基础(2)-- 分支结构
- Java基础之分支结构和循环
- shell编程基础——分支结构
- JavaScript基础(四) 之分支结构
- Java入门基础之【分支结构】9
- java语言基础【java分支结构】
- C语言基础(四)分支结构、循环结构
- 【黑马程序员】C语言基础-分支结构(选择结构)
- java基础五:Java分支结构和循环结构
- 分支结构
- 分支结构
- C++ 覆盖和隐藏
- memcache共享session
- iOS__ 手势识别总结
- Qt Installer Framework的学习(三)
- 【学习笔记】HBuilder状态栏隐藏显示及颜色
- 复杂分支结构逆向(基础)
- Storm Grouping机制详解(包含两篇参考资料)
- 库函数与系统调用的联系与区别
- 函数响应式编程—ReactiveCocoa 使用入门
- log4net根据级别把日志写入不同文件
- leetcode第13题——*Roman to Integer
- 黑马程序员_编码
- System V 的 IPC -- 线程通信机制
- iOS开发的一些奇巧淫技