Follow Excellent, Success will Chase you

0%

动态指令

通过程序动态生成指令,然后进行执行

1
2
3
4
5
6
7
8
9
 +------------> +-------+ <--+生成指令,写入buffer
| | |
+ | |
PC | |
| buffer|
| |
| |
| |
+-------+
1
2
3
4
5
6
7
8
9
10
uint32_t *InstBuf;
InstBuf = (uint32_t)malloc(size);

for (int i = 0; i < 16: i++) {
InstBuf[i] = 0x03e00008; /* JR RA */
}

void (*f)(void);
f = (void (*)(void))(InstBuf);
(*f)();
-------------本文结束感谢您的阅读-------------
  • 本文作者: Winddoing
  • 本文链接: https://winddoing.github.io/post/40422.html
  • 作者声明: 本博文为个人笔记, 由于个人能力有限,难免出现错误,欢迎大家批评指正。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!