主要观点总结
文章主要讲述了VMP(虚拟机保护)技术的基本原理和实现,通过分析VMProtect 1.81 Demo版加密后的程序,详细描述了虚拟机的结构、虚拟代码的功能以及虚拟代码还原的过程。VMP技术将程序的可执行代码转化为自定义的中间操作码,通过虚拟机解释执行,实现程序原来的功能。文章分析了虚拟机结构,包括VIP、VSP、VM Stack、VM Registers/VM Context等,以及虚拟指令、操作码、立即数等概念。通过案例分析,文章揭示了VMP加密程序的解密过程,包括虚拟代码的还原和虚拟机的识别。最后,文章总结了虚拟代码还原的步骤和注意事项,并提供了参考链接。
关键观点总结
关键观点1: VMP技术原理
VMP技术通过将程序的可执行代码转化为自定义的中间操作码,通过虚拟机解释执行,实现程序原来的功能。
关键观点2: 虚拟机结构
VMP技术中的虚拟机结构包括VIP、VSP、VM Stack、VM Registers/VM Context等,以及虚拟指令、操作码、立即数等概念。
关键观点3: 虚拟代码还原过程
文章通过案例分析,详细描述了VMP加密程序的解密过程,包括虚拟代码的还原和虚拟机的识别。
关键观点4: 虚拟代码还原步骤
虚拟代码还原的步骤包括利用虚拟栈平衡划分一级虚拟指令片段,并根据这些片段还原出二级虚拟指令。
关键观点5: 注意事项
在虚拟代码还原过程中,需要注意虚拟栈平衡、无用代码删除等,以提高还原的准确性和效率。
文章预览
本文主要是通过分析VMProtect 1.81 Demo版加密后的程序,讲述VMP的基本结构,并尝试分析虚拟代码的功能以及虚拟代码还原。 一、虚拟机结构 虚拟机保护技术是将程序的可执行代码转化为自定义的中间操作码(一字节或多字节),用以保护源程序不被逆向和篡改,这些中间操作码通过虚拟机解释执行,实现程序原来的功能。在这种情况下,如果要逆向程序,就需要对整个虚拟机结构进行逆向,理解程序功能,还需要结合操作码进行分析,整个程序逆向工程将会十分繁琐。以下是一个一般虚拟机结构: 虚拟机解释执行流程如下: 1.将真实环境的上下文入栈,初始化虚拟机运行所需要的环境,例如初始化VIP、VSP等。 2.根据VIP获取下一条虚拟指令的操作码,根据虚拟指令的操作码,跳转到对应VM Handler。 3.执行VM Handler,更新虚拟指令指针。 4.虚拟堆栈检查
………………………………