gpt4 book ai didi

c - 转到 C 中的特定地址

转载 作者:太空狗 更新时间:2023-10-29 14:50:20 28 4
gpt4 key购买 nike

我怎样才能 JMP 到 C 中的特定地址?

我要用

goto 0x10080000

这行不通,还有其他方法可以更改程序计数器的地址吗??

最佳答案

您可以地址转换为函数指针,然后跳转到:

((void (*)(void))0x10008000)();

为了更清楚一点:

typedef void (*func_t)(void);
...
((func_t)0x10008000)();

但是这是一个函数,编译器会发出一个期望返回的分支指令(然后由您决定是否让您的函数返回)。另请注意,编译器将生成一段代码,期望在给定地址找到一个 C 函数,关于如何给出和返回函数参数。

如果您需要在不返回的情况下发出分支指令,则需要使用内联汇编。

关于c - 转到 C 中的特定地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19173493/

28 4 0
文章推荐: 比较 C 中的两个字符数组
文章推荐: android - 底部导航+抽屉+广告
文章推荐: html - IE 中
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com