12558网页游戏私服论坛

 找回密码
 立即注册
游戏开服表 申请开服
游戏名称 游戏描述 开服状态 游戏福利 运营商 游戏链接
攻城掠地-仿官 全新玩法,觉醒武将,觉醒技能 每周新区 经典复古版本,长久稳定 进入游戏
巅峰新版攻 攻城掠地公益服 攻城掠地SF 新兵种、新武将(兵种) 进入游戏
攻城掠地公 散人玩家的天堂 新开 进入游戏
改版攻城掠 上线即可国战PK 稳定新区 全新改版,功能强大 进入游戏
少年江山 高福利高爆率 刚开一秒 江湖水落潜蛟龙 进入游戏
太古封魔录 开服送10亿钻石 福利多多 不用充钱也可升级 进入游戏
神魔之道 签到送元宝 稳定开新区 送豪华签到奖励 进入游戏
神奇三国 统帅三军,招揽名将 免费玩新区 激情国战,征战四方 进入游戏
龙符 三日豪礼领到爽 天天开新区 助你征战无双 进入游戏
王者之师 免费领豪华奖励 免费玩新区 6元送6888元宝 进入游戏
三国霸业 战车-珍宝-觉醒-攻城掠地SF-全新玩法 免费玩新区 攻城掠地私服 进入游戏
手游私服盒子 各类免费游戏 0.1折送海量资源 各类手游私服 进入游戏
皇家MU2 《奇迹 2:传奇》韩国网禅公司《奇迹》正统续作。 3D锁视角Mmrpg 暗黑3+传奇+流放之路+奇迹 进入游戏
查看: 318|回复: 0

保护模式笔记七 CALL 长调用与短调用

[复制链接]

305

主题

305

帖子

620

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
620
发表于 2021-7-18 18:06:33 | 显示全部楼层 |阅读模式
前言

全部保护模式索引链接:保护模式笔记一 保护模式介绍
在先前的保护模式笔记六 代码跨段跳转中学习了远跳转:JUMP FAR指令
但如果想要实现跨段的调用就需要学习长调用:CALL FAR指令
短调用

短调用指令格式

CALL 立即数/寄存器/内存
指令类型指令例子对应硬编码CALL 立即数call 52610610E8 F4560A52CALL 寄存器call eaxFFD0CALL 内存call dword ptr ds:[0x52610610]FF15 10066152短调用堆栈变化

关于短调用,其实在先前的逆向基础笔记七 堆栈图(重点)中,就已经分析过短调用堆栈的变化(不了解的可以回首)
这里再简单地过一遍:
用OD恣意打开一个程序

记录下此时的堆栈情况
相对ESP地点堆栈地点内容ESP-80012FFBC00000009ESP-40012FFC00012FFF8ESP0012FFC47C817077ESP+40012FFC8005BFF80ESP+80012FFCC0012B750按F7单步步入CALL

此时的堆栈情况为
相对ESP地点堆栈地点内容ESP-80012FFBC00000009ESP0012FFC00056AF17ESP+40012FFC47C817077ESP+80012FFC8005BFF80ESP+C0012FFCC0012B750对比前后的堆栈情况变化,可以发现:
短调用影响了ESP和EIP两个寄存器,并且会将返回地点压入到堆栈中
短调用通过RET指令返回,这里也不再赘述
长调用

长调用指令格式

CALL FAR CS:EIP(EIP是废弃的)
形如:CALL FAR 002B:00610610
CALL指令要调用的地点是由CS段选择子查GDT表得到的调用门 段形貌符得来的,后面的EIP不发挥作用
长调用可以分为两种:跨段不提权和跨段提权
长调用通过RETF指令返回
跨段不提权

所谓的跨段不提权就是指要跳转段和当前段的特权级别相同
和短调用差别,长调用会先将CS压入堆栈,然后再将返回地点压入堆栈
跨段不提权的长调用影响了ESP EIP CS 三个寄存器,并且会将CS和返回地点压入到堆栈中
下面给出堆栈变化图:

跨段提权

与跨段不提权相对,所谓的跨段提权就是指要跳转段和当前段的特权级别差别
跨段提权的长调用 涉及到了权限的变化,一旦涉及到了权限的变化,堆栈也将随之切换,因此相比跨段不提权,还会影响SS寄存器
跨段提权的长调用影响了ESP EIP CS SS 四个寄存器,并且会将SS、ESP、CS和返回地点压入到堆栈中
为什么要压入SS和ESP?
因为当跨段提权时,堆栈会发生切换,压入SS和ESP是为了在调用结束后将堆栈规复成原来的(切换前)的堆栈
堆栈切换的泉源是什么?
堆栈切换的泉源是TSS段,这个留作之后再深入
下面给出由RING3切换到RING0的跨段提权堆栈变化图

总结

跨段调用时,一旦有权限切换,就会切换堆栈
CS的权限一旦改变,SS的权限也要随着改变,CS与SS的特权级别必须一致(INTEL定义的规则)
JMP FAR 只能跳转到同级代码段,但CALL FAR可以通过调用门进行提权(提拔CPL的权限)
由于长调用还涉及到调用门和TSS,于是此次笔记没有详细分析长调用的实例,留作之后增补

来源:http://www.12558.net
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼主热帖
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|12558网页游戏私服论坛 |网站地图

GMT+8, 2024-11-24 15:20 , Processed in 0.093750 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表