系统无法执行指定的程序。

您所在的位置:网站首页 python系统无法执行指定程序的操作 系统无法执行指定的程序。

系统无法执行指定的程序。

2024-07-16 22:51| 来源: 网络整理| 查看: 265

在应用层的切换这部分,《一个64位操作系统的设计与实现》书中将一个函数复制到了0x800000地址后,然后跳转执行,不过实际复现的时候出现无法正确执行的问题。

首先放上函数原型

void

单步调试来到 0x800000 源代码执行处,发现汇编源码在调用 printf_color 这个函数的时候执行的是 call rcx,也就是说函数的地址放在寄存器中,而在开头处是通过 rip 得到的函数的地址

7c1c0dad0a3e0549450e1e793144052d.png

但是在跳转后我们的 rip 不是原来的 rip 了,所以无法正确执行。

因此目前的解决方法是去掉所有会出错的函数调用

(新更新)

经过一番探索,找到一个替代办法,将要调用的函数的地址写入指针中进行调用,并且将一些变量设置为本地变量,具体如下图

95e5be0e99730a4f5546398b1bbacb97.png


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3