x86如何切换到x64?
1、经研究发现,x86与x64的区别在于cs段寄存器的值。
x86为0x23
x64为0x33

2、我们利用可以改变cs段描述符的指令retf来构造个切换到x64的函数:

3、同样,我们利用retf来构造个切回到x86的函数

4、在需要执行x64指令时,我们先call一下切换到x64的函数就可以进行执行了。
执行完后我们还需要call一下切回到x86的函数来保证32位程序后续的正常执行。
因为切回到x86的函数是在x64下执行的,所以这个看上去有点异常的代码,实际上才是正常的。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:183
阅读量:154
阅读量:166
阅读量:48
阅读量:146