欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]360加固VMP问题小结

[原创]360加固VMP问题小结

通过对比360加固的VMP实现,发现以下几点问题:

一、VMP虚拟机引擎变化很小,指令执行代码没有变化,两次版本之间的指令代码基本一样
二、VMP引擎中变化的只是指令码与指令执行代码的对应关系

一个版本中的指令执行代码如下:

debug079:768FC1A4 05 9A       LDR             R2, [SP,#0x14]          ; jumptable 768FBDA0 case 67
debug079:768FC1A6 23 69       LDR             R3, [R4,#0x10]
debug079:768FC1A8 05 99       LDR             R1, [SP,#0x14]
debug079:768FC1AA 12 13       ASRS            R2, R2, #0xC
debug079:768FC1AC 92 00       LSLS            R2, R2, #2
debug079:768FC1AE D2 58       LDR             R2, [R2,R3]
debug079:768FC1B0 09 05       LSLS            R1, R1, #0x14
debug079:768FC1B2 09 0F       LSRS            R1, R1, #0x1C
debug079:768FC1B4 89 00       LSLS            R1, R1, #2
debug079:768FC1B6 CA 50       STR             R2, [R1,R3]
debug079:768FC1B8 02 36       ADDS            R6, #2
debug079:768FC1BA E1 E5       B               loc_768FBD80

另一个版本中的指令执行代码如下:

debug071:76227C2C 05 9A       LDR             R2, [SP,#0x14]          ; jumptable 76227828 case 235
debug071:76227C2E 23 69       LDR             R3, [R4,#0x10]
debug071:76227C30 05 99       LDR             R1, [SP,#0x14]
debug071:76227C32 12 13       ASRS            R2, R2, #0xC
debug071:76227C34 92 00       LSLS            R2, R2, #2
debug071:76227C36 D2 58       LDR             R2, [R2,R3]
debug071:76227C38 09 05       LSLS            R1, R1, #0x14
debug071:76227C3A 09 0F       LSRS            R1, R1, #0x1C
debug071:76227C3C 89 00       LSLS            R1, R1, #2
debug071:76227C3E CA 50       STR             R2, [R1,R3]
debug071:76227C40
debug071:76227C40             loc_76227C40                            ; DATA XREF: debug071:76227B14r
debug071:76227C40 02 36       ADDS            R6, #2
debug071:76227C42 E1 E5       B               loc_76227808

可以看出两者的指令执行代码基本相同,只是跳转表关系改变了


三、指令执行码可以通过功能比对分析出真实指令码

例如最简单的nop指令就可以一眼看出:

debug071:76227C28 02 36       ADDS            R6, #2                  ; jumptable 76227828 case 183
debug071:76227C2A ED E5       B               loc_76227808


总结

可以通过分析vmp指令执行代码的功能进行指令的还原,配合上针对对照表的算法的分析就可以实现指令码的还原


附件为拷贝出来的VMP引擎代码

上传的附件 360虚拟机代码V514.TXT

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功