详解汇编cll ret push pop 并附源码

一.call 实际上做了两次操作

 1.push eip+1,(不能这么写)保存返回地址

 2.jmp 跳转到函数

二.ret 实际上做了两次操作和call

  1.pop eip(不能这么写),取出返回的地址
  2. jmp 跳转到pop取出来的地址

三.push rbp 开辟栈帧 做了两步操作

  1.sub  esp,4

  2.mov  ptr[esp] ebp 

四.pop rbp 释放栈帧

  1.mov  ebp,ptr[esp] 
  2.add  esp,4

五.源码

1.调用函数

       push 10push 5push re;call 两步1:push rip+1(这个+1是下一步 不是地址偏移) 2jmpjmp fun
re:    sub esp,4mov dword ptr[ebp-12],eaxinvoke printf,ADDR format,dword ptr[ebp-12] ;调用printf函数

2.函数实现

fun:push ebp;push 两步 sub eps,4(esp偏移4个字节) mov [esp],ebp(保存当前ebp)mov  ebp,espsub  esp,4mov  dword ptr[ebp-4],0;mov  dword ptr[ebp - 8], 1jmp  s1s3:add  dword ptr[ebp + 8],1s1:mov  ecx,dword ptr[ebp +12]cmp  dword ptr[ebp +8], ecxjge  s2;如果左边大于等于右边跳出循环mov  eax,dword ptr[ebp +8]mov  ebx, dword ptr[ebp +12]imul eax,ebxmov  dword ptr[ebp - 4],eax;invoke printf,ADDR format1,dword ptr[ebp - 4] ;调用printf函数jmp  s3s2:mov eax,dword ptr[ebp-4]mov  esp,ebpmov ebp,dword ptr[esp];pop 就是以下两步add esp,4ret;ret 两步1:pop rip(这个+1时下一步不是地址偏移) 2jmp

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

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

相关文章

“华为杯“第四届中国研究生数学建模竞赛-D题:邮政运输网络中的邮路规划和邮车调度(附MATLAB代码实现)

目录 摘 要: 一、 问题的重述 二、 模型的基本假设 三、 模型的分析与求解

Leetcod面试经典150题刷题记录 —— 二叉树层次遍历篇

Leetcod面试经典150题刷题记录-系列Leetcod面试经典150题刷题记录——数组 / 字符串篇Leetcod面试经典150题刷题记录 —— 双指针篇Leetcod面试经典150题刷题记录 —— 矩阵篇Leetcod面试经典150题刷题记录 —— 滑动窗口篇Leetcod面试经典150题刷题记录 —— 哈希表篇Leetcod面…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -用户信息修改实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

Qt 6之五:创建菜单

Qt 6之五:创建菜单 Qt是一种跨平台的C应用程序开发框架,它提供了一套丰富的工具和库,可以帮助开发者快速构建跨平台的应用程序,用于开发图形用户界面(GUI)和非GUI应用程序。 Qt 6之一:简介、安…

untiy使用http下载资源

文章目录 提醒下载一个资源并保存到本地下载一张图片 提醒 部分API需要将Unity的 Edit/PrejectSetting/Player/OtherSetttings/AConfiguration/ApiCompatibilityLevel 设为.NetFramework 才可以使用 下载一个资源并保存到本地 private IEnumerator DownloadFormServer_IE(st…

什么是编译程序和解释程序

一、编译程序 1、编译器接收源代码作为输入,它会一次性地将整个源代码程序转换成目标代码(通常是机器语言或汇编语言),这个过程包括词法分析、语法分析、语义分析、优化以及最终的目标代码生成。2、编译后的目标代码是一个独立的…

cisp难不难?cisp如何备考通过率高?

*CISP 全称为Certified Information Security Professional,是国际上广受欢迎的信息安全专业认证之一。 对于许多信息安全领域的从业者来说,CISP认证是他们职业生涯中的重要一步。那么,CISP难不难呢?如何备考通过率更高呢?接下来&#xf…

探索SQL游标

探索SQL游标 大家好,我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!在今天的分享中,我们将深入研究SQL中一个强大而又常用的工具——游标(Cursor&am…

Vue的v-for指令、事件处理、表单控制

一 条件渲染 指令释义v-if相当于&#xff1a; ifv-else相当于&#xff1a;elsev-else-if相当于&#xff1a;else if <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>if、else if、else</title>…

详细探讨mfc140.dll丢失的解决方法,并比较各种方法的优劣

mfc140.dll是Microsoft Foundation Class (MFC) 库中一个重要的DLL文件&#xff0c;它包含了多个执行程序使用的函数和资源。这个库通常用于开发Windows操作系统上的应用程序。但有时会发生mfc140.dll缺失或损坏的错误&#xff0c;导致一些依赖它的应用程序无法运行。今天的这篇…

python语言在web上的应用:如何节省服务器资源?

背景介绍​ 在web开发中的应用广泛​ 在web开发中的应用广泛。随着互联网的发展&#xff0c;web应用越来越普遍&#xff0c;而Python作为一种简洁、高效的编程语言&#xff0c;被广泛应用于web开发领域。Python提供了丰富的库和框架&#xff0c;如Django、Flask等&#xff0c…

2024年中国电子学会青少年编程等级考试安排的通知

各有关单位、全体考生: 中国电子学会青少年等级考试&#xff08;以下简称等级考试&#xff09;是中国电子学会为落实《全民科学素质行动规划纲要》&#xff0c;提升青少年电子信息科学素质水平而开展的社会化评价项目。等级考试自2011年启动以来&#xff0c;作为中国电子学会科…

微服务概述之单体架构

微服务概述 互联网始于 1969年美国的阿帕网&#xff08;ARPA&#xff09;&#xff0c;最开始的阿帕网只在美国军方使用。随着时间的推移&#xff0c;一些大学也开始加入建设&#xff0c;慢慢演化成了现在的因特网 &#xff08;Internet&#xff09;。随着计算机网络的普及&…

使用STM32和MPU6050实现基于手势的室内导航系统

基于STM32和MPU6050的基于手势的室内导航系统是一个创新而具有挑战性的项目。在本文中&#xff0c;我们将介绍如何利用STM32微控制器和MPU6050传感器实现基于手势的室内导航系统&#xff0c;并提供相应的代码示例。 1. 系统概述 基于手势的室内导航系统旨在通过手势识别的方式…

Web前端-jQuery

文章目录 jQuery1.1 jQuery 介绍1.1.1 JavaScript 库1.1.2 jQuery的概念1.1.3 jQuery的优点 1.2 jQuery 的基本使用1.2.1 jQuery 的下载1.2.2 jQuery快速入门1.2.3 jQuery入口函数1.2.4 jQuery中的顶级对象$1.2.5 jQuery 对象和 DOM 对象1.2.6. jQuery 对象和 DOM 对象转换 1.3…

Vmware安装Windows11系统及下载MySQL步骤(超详细)

一、创建虚拟机 ①选择自定义 ②直接点击下一步 ③选择Windows 11 x64 ④命名虚拟机以及选择路径 ⑤新版本的虚拟机需要加密&#xff08;密码需要8个字符以上&#xff09; ⑥选择UEFI ⑦处理器配置&#xff08;根据自己的需求&#xff09; ⑧设置虚拟机的内存 ⑨选择不使用网络…

智能监控:业务监控新选择,效率提升新动力

前言 随着科技的飞速发展&#xff0c;企业对于业务的稳定性和连续性要求越来越高。传统的监控方式虽然在一定程度上能够保证业务的正常运行&#xff0c;但在面对复杂多变的业务场景和日益增长的数据量时&#xff0c;往往显得力不从心。为了解决这一问题&#xff0c;观测云在提…

【网络工程师】ACL访问控制列表

一、ACL概述 1、Access Contral List 访问控制列表 2、ACL是一种包过滤技术。 3、ACL基于&#xff08;三层&#xff09;IP包头的IP地址、&#xff08;四层&#xff09;TCP/UDP头部的端口号&#xff3b;五层数据不能&#xff3d; &#xff14;、ACL在路由器上配置&#xff0…

ensp与HCL共存问题

华子目录 第一种方法第二种方法&#xff08;修改注册表&#xff0c;建议使用这种方法&#xff09;第一步第二步第三步&#xff08;打开注册表修改&#xff09;第四步&#xff08;安装HCL&#xff09;第六步&#xff08;将注册表中修改的改回原来的内容&#xff09;最后 第一种方…

【论文阅读】深度学习中的后门攻击综述

深度学习中的后门攻击综述 1.深度学习模型三种攻击范式1.1.对抗样本攻击1.2.数据投毒攻击1.3.后门攻击 2.后门攻击特点3.常用术语和标记4.常用评估指标5.攻击设置5.1.触发器5.1.1.触发器属性5.1.2.触发器类型5.1.3.攻击类型 5.2.目标类别5.3.训练方式 1.深度学习模型三种攻击范…