优惠论坛
标题: Move的抽象解释器(转) [打印本页]
作者: 935a 时间: 2023-6-29 11:35
标题: Move的抽象解释器(转)
由Move提供的抽象解释器,是一个专门为通过抽象解释在字节码上执行复杂安全分析而设计的框架。这种机制使得验证过程更加精细和准确,每个验证者都被允许定义他们独特的抽象状态从而进行分析。
在开始运行时,抽象解释器从编译的模块中构建控制流图(CFG)。这些CFG中的每个基本块都会维护一组状态,即“前序状态”和“后序状态”。“前序状态”提供了一个基本块执行前的程序状态快照,而“后序状态”则提供了基本块执行后的程序状态描述。
当抽象解释器在控制流图中没有遇到回跳(或循环)时,它则遵循一个简单的线性执行原则:每个基本块都被依次分析,并根据块中每个指令的语义计算出前序状态和后序状态。其结果就是一个程序在执行过程中每个基本块级别状态的精准快照,帮助验证程序的安全属性。
Move 抽象解释器的工作流程
然而,当控制流中存在循环时,这个过程则变得更加复杂。循环的出现意味着控制流图中包含一条回跳的边,回跳边的源头对应着当前基本块的后序状态,而回跳边的目标基本块(循环头部)是一个之前已经分析过的基本块的前序状态,因此抽象解释器需要对回跳相关的两个基本块的状态进行仔细合并。
如果发现合并后状态与循环头部基本块现有的前序状态不同,抽象解释器就会更新循环头部基本块的状态,并从这个基本块开始重新启动分析。这个迭代分析过程将一直持续到循环预状态稳定。换句话说,这个过程不断重复,直到循环头部基本块的前序状态在迭代之间不再变化。达到一个固定点,则表明循环分析已经完成。
3 N( U1 }# N1 z" Y! L6 p
作者: 如梦的生活 时间: 2023-6-29 13:12
这个也是能听得明白了吧
作者: 22301 时间: 2023-6-29 13:33
这个也是来了解学习下了啊。
作者: 赚钱小样 时间: 2023-6-30 13:24
那也是要了解一下这个的了
作者: rainwang 时间: 2023-6-30 14:21
只怕帖子都不可能为我们解释清楚
作者: 爬格子的瘦书生 时间: 2023-6-30 16:00
这种东西也是看都看不懂
作者: 爱美的女人 时间: 2023-7-5 10:06
没有人知道的吧,感觉是少数
作者: 德罗星 时间: 2023-7-5 15:59
都是比较高科技的东西的啊.
欢迎光临 优惠论坛 (http://www.tcelue.ws/) |
Powered by Discuz! X3.1 |