4.IDA-导航(跳转到地址、导航按钮、栈帧、调用约定、局部变量布局、IDA的栈视图)
1.跳转到地址
2.导航按钮(导航历史)
3.栈帧
4.调用约定
4.1.C调用约定
4.2.__stdcall调用约定
4.3.x86 fastcall约定
- int __fastcall fast(int a,int b,int c,int d)
- {
- return 0;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- int a = fast(1,2,3,4);
由于有两个参数被传递到寄存器中,只需要retn 8即可,如下汇编
4.4.C++调用约定
C++类需要使用this指针,该指针必须由调用方提供,因此,它被作为参数提供。C++语言标准并未规定应如何向非静态成员函数传递this指针,因此,不同编译器使用不同的技巧来传递this指针,Microsoft Visual C++提供thiscall调用约定,它将this传递到ECX寄存器中,并且和在stdcall中一样,它要求函数清除栈中的参数
GNU g++编译器将this看成是任何非静态成员函数的第一个隐含参数,而在所有其他方面与使用cdecl约定相同。因此,对使用g++编译的代码来说,在调用非静态成员函数之前,this被放置到栈顶,且调用方负责在函数返回时删除栈中的参数(至少有一个参数)
4.5.系统调用
5.局部变量布局
- int fun(int a,int b,int c)
- {
- int x;
- char buf[64];
- int y;
- int z;
- return 0;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- fun(1,2,3);
如果没有使用帧指针寄存器(即ESP为帧指针)
- sub esp, 76
其中的“偏移量”栏显示的是引用栈帧中的任何局部变量或参数所需的基址+位移地址:
6.IDA栈视图
4.IDA-导航(跳转到地址、导航按钮、栈帧、调用约定、局部变量布局、IDA的栈视图)相关推荐
- 前端学习(1994)vue之电商管理系统电商系统之通过编程导航跳转到商品导航界面
目录结构 router.js import Vue from 'vue' import Router from 'vue-router' import Login from './components ...
- html导航跳转,css实现导航切换的实例代码
css导航切换效果图如下: 代码如下,复制即可使用: css实现导航切换 .clothes{width:1170px;margin:0 auto;border-bottom:1px solid red ...
- 导航跳转后保持选中状态 jquery高亮当前选中菜单
功能需求: 今天在写一个站点需要用到在导航菜单点击链接跳转到新页面后,高亮当前菜单样式. 简单的说,就是我点击导航菜单中的一个栏目,跳转到该栏目下,该栏目菜单也同时高亮(可以是背景色也可以是背景图片) ...
- uni-app【事件绑定、下拉刷新、上传图片、导航跳转、组件通讯】
目录 uni-app中的样式 uni-app中的数据绑定 插值表达式的使用 v-bind动态绑定属性 v-for的使用 uni中的事件 事件绑定 事件传参 uni的生命周期 应用的生命周期 页面的生命 ...
- 【React Native】iOS原生导航跳转RN页面
上一篇介绍了React Native使用react-navigation进行导航跳转页面,现在我们介绍下原生iOS中怎么导航进一个新的React Native页面. 一.原生跳转React Nativ ...
- URI跳转方式地图导航的代码实践
本文转载至 http://adad184.com/2015/08/11/practice-in-mapview-navigation-with-URI/ 前言 之前介绍了我正在做的是一款定位主打的应用 ...
- 针对自动跳转到2345导航页流氓行为的解决办法
针对自动跳转到2345导航页流氓行为的解决办法 最近不管用什么浏览器,怎么绑定浏览器首页,打开浏览器的首页都是2345,不但耗费时间,而且对一个有点自尊心的程序员来说,这是不能忍的.我隐隐感觉到是电脑 ...
- Vue 实现导航栏滑到顶部固定,滑动到相应位置导航栏有相应选中效果,点击导航跳转到对应位置
主要思路 导航栏固定 判断页面卷曲是否大于导航栏的offsetTop的值,超过了就证明导航栏到达了顶部,给导航栏添加固定样式的类名,注意:需要拿到导航栏固定前的offsetTop值,固定后的offse ...
- 微信小程序---地图导航(点击地址,可以进行导航)
微信小程序-地图导航(点击地址,可以进行导航) // 地图getLocation(e){var that = this,address = e.currentTarget.dataset.addres ...
最新文章
- 开源!mathAI手写拍照自动能解高数题,还不快试试?
- 第一章:Flask安装
- 0x0800 IP数据包格式分析
- 软件项目管理相关概念介绍笔记
- Express框架开发知识点总结
- Cow Contest——Floyed+连通性判断
- python的property用法_在python中property怎样使用-百度经验
- usage: git remote add [options] name url -f, --fetch fetch the remote branches ...
- PHP下获取上个月、下个月、本月的日期(strtotime,date)
- 蓝桥杯 ALGO-107 算法训练 9-7链表数据求和操作
- heartbeat双机热备配置(适用centos6\rhel6)
- [转]c# winform tcp connect timeout 连接超时设置
- 如何将Windbg设置为异常捕获默认程序?
- 【操作系统】-- 基本分页存储管理(基本地址变换机构、具有快表的地址变换机构)
- 今天是星期五,上班已经三个礼拜了
- acwing.95.费解的开关
- SQLSTATE=08S01通讯连接失败
- java 跨 module 引入包不成功问题
- 施密特-卡塞格林望远镜
- 图神经网络对抗攻击的研究学习(一)