首页 > 电脑专区 > 电脑教程 >

x86如何切换到x64

来源:互联网 2023-02-20 23:46:08 160

在32位程序里执行x64代码。tXU办公区 - 实用经验教程分享!

工具/原料

  • 64位window系统
  • x86汇编

方法/步骤

  • 1

    经研究发现,x86与x64的区别在于cs段寄存器的值。tXU办公区 - 实用经验教程分享!

    x86为0x23tXU办公区 - 实用经验教程分享!

    x64为0x33tXU办公区 - 实用经验教程分享!

    x86如何切换到x64?tXU办公区 - 实用经验教程分享!

  • 2

    我们利用可以改变cs段描述符的指令retf来构造个切换到x64的函数:tXU办公区 - 实用经验教程分享!

    x86如何切换到x64?tXU办公区 - 实用经验教程分享!

  • 3

    同样,我们利用retf来构造个切回到x86的函数tXU办公区 - 实用经验教程分享!

    x86如何切换到x64?tXU办公区 - 实用经验教程分享!

  • 4

    在需要执行x64指令时,我们先call一下切换到x64的函数就可以进行执行了。tXU办公区 - 实用经验教程分享!

    执行完后我们还需要call一下切回到x86的函数来保证32位程序后续的正常执行。tXU办公区 - 实用经验教程分享!

    因为切回到x86的函数是在x64下执行的,所以这个看上去有点异常的代码,实际上才是正常的。tXU办公区 - 实用经验教程分享!

  • 4该信息非法爬取自百度经验
  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!tXU办公区 - 实用经验教程分享!


    标签: 操作系统

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码