在运行时动态链接

之所以不能修改可执行文件中的目标代码,是因为它们在编译程序时静态链接在了一起。

在运行时动态链接 - 图1

如果你的程序不是一个文件,而是由很多单独的文件组成,那么在程序运行前把它们链接到一起,就可以避免这个问题。

在运行时动态链接 - 图2

可以把目标代码分别保存在单独的文件中,在程序运行时才把它们动态链接到一起。

在运行时动态链接 - 图3