第六章虚拟代码还原练习4.(32位)简单虚拟代码还原练习
例子及工具例子6-4.exe6-4.vmp.exe工具x32dbg,xx_vm_release
源代码
保护
保护函数
加载改变命令行
虚拟函数
ecx,edx为参数,eax为返回值。分析输入参数为1111=0x457,2222=0x8ae。
划分指令片段根据虚拟栈平衡将虚拟指令块1划分为指令片段。我们看到有很多指令嵌套,整理出对应的指令。即将1级虚拟指令还原到2级虚拟指令。
虚拟指令块1还原2指令12,55-58为一组虚拟栈平衡的1级虚拟指令。还原为2级虚拟指令,movdreg[24],0057233a该指令为虚拟指令块的地址,忽略它。
虚拟指令块1还原3指令13-17,32-37,43-44,54为一组虚拟栈平衡的1级虚拟指令。我们写出表达式,并化简还原:xordreg[34]dreg[08]
虚拟指令块1还原4指令18-31为一组虚拟栈平衡的1级虚拟指令。我们写出表达式,并化简还原:xordreg[38]dreg[3c]
虚拟指令块1还原5指令38-42为一组虚拟栈平衡的1级虚拟指令。我们写出表达式,并化简还原:shlwreg[14],5f
虚拟指令块1还原6指令45,51为一组虚拟栈平衡的1级虚拟指令。我们写出表达式,并化简还原:movdreg[14],
原创力文档

文档评论(0)