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

news2024/12/25 9:27:16

OneNote防丢失。
海哥牛逼。

目录

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

一、if…else…反汇编

1、反汇编特点

在这里插入图片描述

2、案例分析

在这里插入图片描述

二、作业1

在这里插入图片描述

解:
分析图:
在这里插入图片描述

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

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

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

  4. 功能分析
    流程图并不是完整按照汇编代码画制,做了一点优化
    在这里插入图片描述

  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、多分支反汇编

在这里插入图片描述

2、案例分析

在这里插入图片描述

四、作业2

在这里插入图片描述

解:
分析图:
在这里插入图片描述

  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. 功能分析
    在这里插入图片描述

  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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/745848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【基于矢量射线的衍射积分 (VRBDI)】基于矢量射线的衍射积分 (VRBDI) 和仿真工具(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

前端开发中常见的20个数组方法,你掌握了几个?

文章目录 前言一、常见的数组方法1.1 push (将指定的元素添加到数组的末尾&#xff0c;并返回新的数组长度)1.2 pop (从数组中删除最后一个元素&#xff0c;并返回该元素的值)1.3 shift (从数组中删除第一个元素&#xff0c;并返回该元素的值)1.4 unshift (向数组首位添加一个或…

路径规划算法:基于鹈鹕优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于鹈鹕优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于鹈鹕优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法鹈鹕…

VirtualBox单机版安装K8S+TF

本文参考自&#xff1a;kubernetes最新版安装单机版v1.21.5_kubernetes下载_qq759035366的博客-CSDN博客 只用一台VB虚拟机&#xff0c;装K8S加Tungsten Fabric。 0. 提前避坑&#xff1a; 0.1 Tungsten Fabric的VRouter对Linux内核版本有要求&#xff0c;以下内核版本才…

音视频——码率、帧率越高越清晰?分辨率、像素、dpi的关系

一 前言 本期我介绍一下视频的一些基础概念&#xff0c;如帧率、码率、分辨率、像素、dpi、视频帧、I帧、P帧、gop等。我i初步学习音视频&#xff0c;给这些专业词汇进行扫盲 会解释多少码率是清晰的&#xff0c;是否帧率越高越流畅等问题。 这些概念是比较杂乱的&#xff0c…

微信二维码登录,修改下面提示的字体和样式

背景 由于业务需要&#xff0c;需要把微信二维码下面默认的提示文字进行修改&#xff0c;如下图所示&#xff1a; 需要修改上面红色框内选择的字体&#xff0c;在研究的过程中&#xff0c;发现好多人都在查询这个问题&#xff0c;并且有些网友思路也是对的。可能只是方式没对。…

库存扣减设计和下单

这里写目录标题 前言正文库存设计原则常见库存扣减方案秒杀订单域设计整体服务领域模型领域服务领域事件之下单下单整体流程同步下单库存预扣减库存扣减 总结参考链接 前言 大家好&#xff0c;我是练习两年半的Java练习生&#xff0c;前面我们已经介绍了领域驱动和缓存设计&am…

路径规划算法:基于金豺优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于金豺优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于金豺优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法金豺…

【网络编程】应用层协议——HTTPS协议(数据的加密与解密)

文章目录 一、HTTP协议的缺陷二、HTTPS协议的介绍三、加密与解密3.1 加密与解密流程3.2 为什么要加密和解密3.3 常见的加密方式3.3.1 对称加密3.3.2 非对称加密3.3.3 数据摘要&#xff08;数据指纹&#xff09;3.3.4 数据签名 四、HTTPS工作过程4.1 中间人攻击方式4.2 数字证书…

50行PyTorch代码中的生成对抗网络(GAN)

一、说明 2014年,蒙特利尔大学的伊恩古德费罗(Ian Goodfellow)和他的同事发表了一篇令人惊叹的论文,向世界介绍了GANs或生成对抗网络。通过计算图和博弈论的创新组合,他们表明,如果有足够的建模能力,相互竞争的两个模型将能够通过普通的旧反向传播进行共同训练。 二、原…

大学啥也没有学到,跑到培训班里学技术,真的有用吗-以下来自一位认识的朋友投稿-王大师

在学习IT技术的过程中&#xff0c;你是否也被安利过各种五花八门的技术培训班&#xff1f;这些培训班都是怎样向你宣传的&#xff0c;你又对此抱有着怎样的态度呢&#xff1f;在培训班里学技术&#xff0c;真的有用吗&#xff1f;–王大师告诉你 1、掌握 JAVA入门到进阶知识(持…

极验滑块(3代)验证码细节避坑总结

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;不提供完整代码&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 关于 w 值…

惊!这道题正确率竟然只有 22%:答案详解

《Go 语言爱好者周刊》第 148 期有一道题目&#xff1a;以下代码输出什么&#xff1f; package mainimport ("fmt" )func main() {m : [...]int{a: 1,b: 2,c: 3,}m[a] 3fmt.Println(len(m)) }A&#xff1a;3&#xff1b;B&#xff1a;4&#xff1b;C&#xff1a;10…

面试官:过滤器和拦截器有什么区别?

过滤器&#xff08;Filter&#xff09;和拦截器&#xff08;Interceptor&#xff09;都是基于 AOP&#xff08;Aspect Oriented Programming&#xff0c;面向切面编程&#xff09;思想实现的&#xff0c;用来解决项目中某一类问题的两种“工具”&#xff0c;但二者有着明显的差…

AI原生云向量数据库Zilliz Cloud创建备份快照

目录 创建快照 调整快照保留天数 相关文档 快照是为某个集群在指定时间点创建的备份。您可以基于快照创建新的集群或将快照用作集群数据备份。 说明 快照功能目前仅对签约用户开放。如需使用该功能,请联系我们。 创建快照 快照创建是异步操作,创建所需时间取决于集群大…

Python爬虫学习笔记(一)————网页基础

目录 1.网页的组成 2.HTML &#xff08;1&#xff09;标签 &#xff08;2&#xff09;比较重要且常用的标签&#xff1a; ①列表标签 ②超链接标签 &#xff08;a标签&#xff09; ③img标签&#xff1a;用于渲染&#xff0c;图片资源的标签 ④div标签和span标签 &…

LabVIEW开发BROOKS SLA5850 BROOKS 0251

LabVIEW开发BROOKS SLA5850 BROOKS 0251 SLA5800 系列热式质量流量计和质量流量控制器在精度、稳定性和可靠性方面堪称标杆&#xff0c;因而得到广泛的认可。这些产品具有广泛的流量测量范围&#xff0c;适用于各种温度和压力条件&#xff0c;非常适合化工和石化研究、实验室、…

【Gradle】实现自动化构建和测试,提高代码质量和可靠性

做Android开发的同学&#xff0c;对Gradle肯定不陌生&#xff0c;我们用它配置、构建工程&#xff0c;可能还会开发插件来促进我们的开发&#xff0c;我们必须了解Gradle。Gradle是一种基于Groovy的项目自动化构建工具&#xff0c;用于编译、打包、测试、发布和依赖管理等任务。…

pdf可以转化成excel表格吗?四个方法可以帮助到你!

PDF文件是许多用户在工作中经常接触的文件格式。为了保持格式排版的一致性并防止篡改&#xff0c;在传输过程中通常会先将文件转换为PDF格式。然而&#xff0c;如果需要编辑其中的数据&#xff0c;就需要先将PDF转换为Excel才能继续相关操作。那么&#xff0c;如何将PDF转换为E…

腾讯云服务器CPU大全_处理器主频性能

腾讯云服务器CPU采用什么处理器型号&#xff1f;主频睿频多少&#xff1f;腾讯云服务器CPU性能如何&#xff1f;云服务器CVM规格不同CPU型号也不同&#xff0c;轻量应用服务器的CPU处理器性能如何&#xff1f;腾讯云服务器网分享腾讯云服务器CPU处理器大全&#xff1a; 目录 …