滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下

OneNote防丢失。
海哥牛逼。

目录

  • 一、if…else...反汇编
    • 1、反汇编特点
    • 2、案例分析
  • 二、作业1
  • 三、IF...ELSE IF...ELSE IF..多分支语句
    • 1、多分支反汇编
    • 2、案例分析
  • 四、作业2

一、if…else…反汇编

1、反汇编特点

滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下_第1张图片

2、案例分析

滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下_第2张图片

二、作业1

滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下_第3张图片

解:
分析图:
滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下_第4张图片

  1. 分析参数
    [ebp+8]:x [ebp+0Ch]:y

  2. 分析局部变量
    [ebp-4]=[004225c4] [ebp-8]=2=a

  3. 分析全局变量
    [004225c4]:G

  4. 功能分析
    流程图并不是完整按照汇编代码画制,做了一点优化
    滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下_第5张图片

  5. 返回值分析
    最后修改了全局变量的值

  6. 还原成C语言函数

int G;
void Function(int x, int y){
	int g = G;
	int a = 2;
	if(x >= y){
		a = a + 1;
	}
	if(x<y){
		G = a;
	}else{
		g = g + a;
		G = g;
	}
}
int main(){
	Function(4, 5);
	return 0;
}
 

三、IF…ELSE IF…ELSE IF…多分支语句

1、多分支反汇编

滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下_第6张图片

2、案例分析

滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下_第7张图片

四、作业2

滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下_第8张图片

解:
分析图:
滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下_第9张图片

  1. 分析参数
    [ebp+8]:x
    [ebp+0Ch]:y
    [ebp+10h]:z

  2. 分析局部变量
    [ebp-4]=0=a
    [ebp-8]=1=b
    [ebp-0Ch]=2=c

  3. 分析全局变量

  4. 功能分析
    滴水逆向三期笔记与作业——02C语言——04 IF语句逆向分析下_第10张图片

  5. 返回值分析
    [ebp-4]存放临时结果,函数最后使用eax=eax+1返回结果

  6. 还原成C语言函数

int Function(int x, int y, int z){
	int a = 0;
	int b = 1;
	int c = 2;
	if(x<=y){
		a = b - 1;
	}else if(y>=z){
		a = c + 1;
	}else if(x>z){
		a = b + c;
	}else{
		a = b + c - 1;
	}
	return a + 1;
}

你可能感兴趣的:(滴水逆向学习笔记,笔记,逆向,滴水逆向,汇编)