gpt4 book ai didi

self-modifying - 自修改代码的用例?

转载 作者:行者123 更新时间:2023-12-05 00:36:00 25 4
gpt4 key购买 nike

Von Neumann architecture上,程序和数据都存储在内存中,因此程序可以自行修改。这对程序员有用吗?你能举一些例子吗?

最佳答案

蜕变

我想到的一个(可疑)用例是metamorphic computer viruses。这些是恶意软件,它们通过将自己的机器代码重写为外观上不同的语义等效表示,从而对signature based detection隐藏起来。

蹦床

另一个(更复杂,但也更常见)的用例是trampolining,这是一种基于动态代码生成的技术,用于解决嵌套函数调用的某些问题。

JIT编译

我能想到的最常见的动态代码生成用法是JIT (just-in-time) compilation。诸如.NET或Java之类的现代语言不会被编译成 native 代码,而是被编译成某种中间语言(称为字节码)。然后在执行程序时(由为目标体系结构编写的虚拟机)解释该字节码。同时,后台进程检查非常频繁地执行代码的哪些部分。这些部件很有可能被动态编译为 native 语言,以实现最佳性能。所有这些都在程序运行时发生!

安全隐患

要记住的一件事是,将数据解释为代码的可能性对于利用计算机软件中的安全漏洞很有用,这就是为什么现代硬件和操作系统的趋势是启用甚至在可能的情况下实现代码分离和数据(另请参见NX bitDEP)。

关于self-modifying - 自修改代码的用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8713627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com