gpt4 book ai didi

virtual-machine - 如何使用动态重新编译?

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

我注意到一些模拟器和虚拟机使用动态重新编译。他们是怎么做到的?在 C 中,我知道如何使用类型转换在 ram 中调用函数(尽管我从未尝试过)但是如何读取操作码并为其生成代码?该人是否需要预先制作组装块并将它们复制/批处理在一起?程序集是用C 编写的吗?如果是这样,你如何找到代码的长度?你如何解释系统中断?

-编辑-

系统中断以及如何(重新)编译数据是我最感兴趣的。经过进一步研究,我听说一个人(没有可用的源)使用 js,读取机器代码,输出 js 源并使用 eval 来“编译” js源码。有趣的。

最佳答案

从内存指针中反汇编代码,以某种方式优化代码,然后将优化后的代码写回原始位置或新位置,并将跳转修补到原始位置是很有可能的 - 尽管显然不是微不足道的.

当然,模拟器和 VM 不必重新编写,它们可以在加载时执行此操作。

关于virtual-machine - 如何使用动态重新编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2570024/

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