VMProtect虚拟栈平衡与2级虚拟指令还原技术.pptxVIP

  • 0
  • 0
  • 约小于1千字
  • 约 11页
  • 2026-07-10 发布于北京
  • 举报

VMProtect虚拟栈平衡与2级虚拟指令还原技术.pptx

第六章虚拟代码还原练习2.虚拟栈平衡

虚拟栈平衡:2级虚拟指令执行后,虚拟栈需要保持平衡。什么是虚拟栈平衡平衡:如果是入栈指令,那么虚拟栈指针减小,如果是出栈指令,虚拟栈指针增大。其他非栈指令,虚拟栈指针不变。

虚拟栈平衡简图pushdreg[04]pushdreg[08]addd[sp+4],d[sp]popv_eflagpopdreg[08]sp-4sp-4spsp+4sp+4adddreg[08],dreg[04]sp2级虚拟指令v_add对应真实指令

识别2级虚拟指令,即虚拟指令还原。虚拟栈平衡的作用虚拟栈平衡是识别2级虚拟指令的基本原则。

1.从第一条1级虚拟指令执行前,记下虚拟栈相对偏移,为0。使用方法2.看第一条1级虚拟指令执行后的sp变化,计算相对偏移。3.直到虚拟栈的相对偏移为0为止,该1级虚拟指令片段则为2级虚拟指令。4.如果直到虚拟指令块结束(虚拟寄存器环境恢复),相对偏移没有达到0,则认为该片段为虚拟栈指令,入栈或者出栈。

使用方法简图pushdreg[04]pushdreg[08]addd[sp+4],d[sp]popv_eflagpopdreg[08]-4-8-8-400此处为止执行前为0

例子1说明使用虚拟栈平衡原则识别出2级虚拟指令

例子2说明使用虚拟栈平衡原则识别出2级虚拟指令

方法补充虚拟栈平衡,不能以入栈结束。虚拟栈平

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档