繁体   English   中英

ARM汇编跳转至地址

[英]ARM assembly Jump to address

我需要纯C语言 ,在读取页面后,我想用跳转指令和另一个函数地址替换函数地址,因此我可以在运行时使用另一个函数而不是当前函数来实现MOCK。

它在X86上可以正常工作,但是在ARM上,我遇到了一些问题,并且不知道如何解决。 你可以帮帮我吗?

什么是ARM的跳转指令,以及如何使用memcpy将其替换为当前函数地址?

我认为关键因素可能是16hex ARM跳转指令

摘自arm社区页面上标题为“ 缓存和自我修改代码”的博客文章:

缓存的ARM体系结构具有用于数据和指令访问的单独缓存 它们分别称为D-cache和I-cache。 ...具有两个与CPU的接口,内核可以同时加载一条指令和一些数据。

... 由于D缓存和I缓存不相关因此新编写的指令可能会被I缓存的现有内容掩盖,从而使处理器执行旧的 (或可能无效的)指令。

我相信本文的其余部分将帮助您更深入地研究,但是我想知道为什么您不使用函数指针? 它们将更容易建立。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM