type
status
date
slug
summary
tags
category
icon
password
Property
May 7, 2025 04:04 AM
之前已经知道了函数这个玩意在计算机中的本质,本身在栈中存放其实就是一个指针的方式,而指针指向的内容就是在内存中存放的机器码。
解释到这里就已经很明显了,函数其实并不是一定要在编译期载入内存后静态,也就是固定的方式运行的。
我们可以手动开辟内存,输入机器码,然后让指针指向这块内存。从而实现在运行时动态生成函数。
哦呼~想想就有点激动,这个逻辑其实就有点像动态语言,例如PHP,JAVA,Python的解释器的工作方式。
而且这个方式可以不用在语言中编写汇编,可以绕过某些平台无法在C中编写汇编的限制。
首先我们得获取机器码,我这里直接通过反汇编直接获取。
然后把这些机器码写进内存, 之后进行类型强转之后,就可以直接运行。
- 作者:sdttttt
- 链接:https://www.sdttttt.site/article/1ec0e50d-3291-8007-af7a-ebc8cebc2f9c
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。