如何写一个C++自我修改的程序

2025-01-06 09:42:43
推荐回答(3个)
回答1:

可以这样做:首先txt文件里的代码必须是编译好的机器码,不能是源码形式。然后你把这段机器码给读到内存里,修改内存页使之具有可执行权限,然后将指令指针ip指到你想执行的代码位置即可(这个可以通过汇编指令来实现,jmp或call等都可以)。

回答2:

把你的问题说的更具体一点,或者举个最简单的例子。
你要弄清楚c++是编译而不是解释,在你生成可执行文件之前是先要编译通过的。你说“在程序运行时”肯定是编译了一遍了,“再将代码写入,重新运行”,那至少要进行两边编译,就是你先前生成的“可执行文件”具有自动编译源代码然后自动执行的功能。
你的最终目的到底是什么呢?为什么不能用流程控制来解决,当程序执行到某一个状态时,执行对应的一段代码。就是说,为什么不能把你写在txt文件中的代码就写到程序中,用if-else或者switch来控制具体执行哪一段呢?

回答3:

这个真不好弄,如果不是高手就算了