- 2
- 0
- 约2.88千字
- 约 38页
- 2026-06-11 发布于北京
- 举报
第六章虚拟代码还原练习5.(64位)简单虚拟代码还原练习
例子及工具例子6-5.exe6-5.vmp.exe工具x64dbg,xx_vm_release
源代码
保护
保护函数
加载改变命令行
虚拟函数
rcx,rdx为参数,rax为返回值。分析输入参数为1111=0x457,2222=0x8ae。
划分指令片段根据虚拟栈平衡将虚拟指令划分为指令片段。我们看到有很多指令嵌套,整理出对应的指令。即将1级虚拟指令还原到2级虚拟指令。
虚拟指令块1还原2指令20-24为一组虚拟栈平衡的1级虚拟指令。还原为2级虚拟指令movqreg[c0],7ff4ce1b0000
虚拟指令块1还原3指令25-26为一组虚拟栈平衡的1级虚拟指令。我们写出表达式,并化简还原:movqreg[c8],qsp
虚拟指令块1还原4指令27-28为一组虚拟栈平衡的1级虚拟指令。我们写出表达式,并化简还原:movqreg[d0],qreg[80]
虚拟指令块1还原5指令29-30为一组虚拟栈平衡的1级虚拟指令。我们写出表达式,并化简还原:movqreg[d8],qreg[20]
虚拟指令块1还原6指令31-32为一组虚拟栈平衡的1级虚拟指令。我们写出表达式,并化简还原:movqreg[e0],qreg[00]
虚拟指令块1还原7指令33-34为一组虚拟栈平衡的1级虚拟指令。我们写出表达式,并化简还原:
原创力文档

文档评论(0)