[发明专利]一种具有数据流混淆的虚拟化软件保护方法有效
申请号: | 201610399231.3 | 申请日: | 2016-06-07 |
公开(公告)号: | CN106096338B | 公开(公告)日: | 2018-11-23 |
发明(设计)人: | 房鼎益;张恒;汤战勇;周祥;陈晓江;龚晓庆;刘方圆;张洁;叶贵鑫;陈锋 | 申请(专利权)人: | 西北大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 西安恒泰知识产权代理事务所 61216 | 代理人: | 李婷 |
地址: | 710069 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种具有数据流混淆的虚拟化软件保护方法,步骤包括:步骤1,PE文件检测;步骤2,定位关键代码段;步骤3,将本地x86指令转化为虚拟指令;步骤4,对虚拟指令进行编码生成对应的字节码指令;步骤5,对虚拟机的调度结构进行双进程设计;步骤6,对虚拟机中的Handler进行数据流混淆;步骤7,隐藏程序中原本的谓词信息,并添加新的谓词信息构成假的执行流分支;步骤8,目标文件重构;该方法利用计算机系统,对windows系统下的可执行二进制代码文件进行虚拟化保护,保护强度高、易于扩展。 | ||
搜索关键词: | 一种 具有 数据流 混淆 虚拟 软件 保护 方法 | ||
【主权项】:
1.一种具有数据流混淆的虚拟化软件保护方法,其特征在于,包括以下步骤:步骤一,验证载入的待保护文件是否为PE文件,如果是则进行下一步;步骤二,在待保护的文件的源代码段上指定需要被保护的关键代码段,对关键代码段进行反汇编操作,得到关键代码段的x86指令集合;步骤三,将步骤二得到的x86指令集合转换成虚拟指令;步骤四,将虚拟指令映射成相应的Handler序列HAS,然后把映射的Handler序列HAS进行加密处理,得到字节码指令;步骤五,对虚拟机的调度结构进行双进程设计,双进程指用于执行正常程序功能的子进程以及用于调试子进程的父进程,当全部Handler执行完成的时候,产生一个异常,通过父进程捕获到所述的异常,在父进程的中断地址表中查找异常的地址和异常跳向的目的地址,当能够查询到异常的地址和异常跳向的目的地址时,父进程将子进程的EIP寄存器指向目的地址并恢复子进程继续执行,若查询不到,则终止程序的执行;步骤六,对虚拟机中的每一个Handler进行数据流混淆,使程序中的数据流复杂化;步骤七,隐藏程序中原本的谓词信息,并添加新的谓词信息构成假的执行流分支;步骤八,对原PE文件添加一个新节,将混淆后的Handler、字节码指令和虚拟机其他组成部分,包括VMcontext、VMinit、Dispatcher、VMexit嵌入到新节中,用垃圾指令填充关键代码段,并将关键代码段的起始地址处指令修改为一条跳向虚拟机入口的跳转指令,重新生成一个保护后的可执行文件。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北大学,未经西北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610399231.3/,转载请声明来源钻瓜专利网。
- 上一篇:多功能专利申请平台
- 下一篇:控制PPT插入对象的方法及系统