此文章是我学习VMProtect2.04加壳程序的心得。在调试的过程中,尤其是初期,参考和查阅了N多的网络资料,在此一并表示感谢。在计算机书中,最著名的两类书名当属:XXXX从入门到精通和21天学会XXXX,我在仔细思考,最终觉得还是前者比较有吸引力。OD的UDD文件的使用,在D:盘下新建文件夹Unpack,把加壳记事本放入文件夹内,把UDD文件放入OD的UDD文件夹内。OD打开加壳记事本后,UDD文件会自动生效。
声明:本文在非盈利性用途可自由传播。
软件:正版VMProtect2.04加密的Win98记事本
加密选项:除了 编译--调试模式与水印 以外,全部打钩;虚拟计算机--数量为默认值1;编译类型:超级(变异+虚拟)
调试器:官网下载的OllyDbg2.0
加壳程序下载:NOTEPAD.rar下载此附件需要消耗2Kx,下载中会自动扣除。
UDD文件:NOTEPAD-udd.rar下载此附件需要消耗2Kx,下载中会自动扣除。(这是是整理了伪指令的UDD文件,后续还会更新)
本文的结构:
序言
文章简介
1.基础知识
1.1.VMProtect虚拟机简介
1.2.VM堆栈
1.3.伪指令汇总
2.综合运用
2.1.常见伪指令组合
2.2.NAND(与非门)
2.3.EFLAGS标志位检测+跳转
3.NOTEPAD全程跟踪
3.1.TLS
3.2.VMP外壳函数获取
3.3.虚拟执行环境与调试器检测
3.4.HASH值分块检测与API获取
3.5.重点解密循环
4.实验室(暂定)
尾声