[发明专利]针对软件虚拟机保护的反混淆系统及方法有效
申请号: | 201810820633.5 | 申请日: | 2018-07-24 |
公开(公告)号: | CN109145534B | 公开(公告)日: | 2022-11-11 |
发明(设计)人: | 张媛媛;李华懿;李卷孺;谷大武;杨文博;张新鹏 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F9/455 |
代理公司: | 上海交达专利事务所 31201 | 代理人: | 王毓理;王锡麟 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 软件 虚拟机 保护 混淆 系统 方法 | ||
一种针对软件虚拟机保护的反混淆系统及方法,通过对程序追踪并获得追踪文件后,采用启发式分析策略分析trace文件得到软件虚拟机指令集;然后通过对虚拟机指令集提取语义;最后经重写和优化编译实现反混淆。本发明针对于受商业软件虚拟机vmprotect保护的程序,优化后得到的程序所执行的指令平均减少了2/3,并且易于修改,克服了现有的软件虚拟机逆向分析方法的缺陷。
技术领域
本发明涉及的是一种信息安全领域的技术,具体是一种利用程序执行的记录文件提取程序语义,对受软件虚拟机保护的程序进行反混淆的软件系统及方法。
背景技术
软件混淆是一种增加软件逆向工程难度的技术,它被用于保护软件版权,防止软件被破解。软件混淆中的虚拟机保护技术在需要保护的程序(目标程序)中实现了一个指令集和虚拟机,该保护技术将目标程序中的指令转化为虚拟机中功能相同的一系列字节码,并通过虚拟机解释执行。被软件虚拟机保护的程序无法利用针对原有指令架构(例如x86)的分析工具进行分析,逆向工程难度会极大提高。
现有的分析软件虚拟机保护程序方法较为繁琐,这些方法首先对被保护程序中的字节码进行标注(这些标注形式类似于汇编代码),并对这些手工标注进行优化,最终对优化后的标注进行分析。该方法难以满足对受保护程序进行修改的需求。
发明内容
本发明针对现有技术存在的上述不足,提出一种针对软件虚拟机保护的反混淆系统及方法,使用启发式的方法对被保护程序进行结构分析,并利用符号执行的方法提取软件虚拟机指令集语义。对于得到的指令集语义,进一步地使用编译器技术进行优化编译,最终生成一个优化后的程序用于逆向工程分析。针对于受商业软件虚拟机vmprotect保护的程序,优化后得到的程序所执行的指令平均减少了2/3,并且易于修改,克服了现有的软件虚拟机逆向分析方法的缺陷。
本发明是通过以下技术方案实现的:
本发明涉及一种针对软件虚拟机保护的反混淆系统,包括:程序追踪模块、结构分析模块、语义分析模块以及优化编译模块,其中:程序追踪模块与结构分析模块相连并输出程序执行的记录信息,结构分析模块根据记录信息将原程序的结构进行拆分并提取受虚拟机保护的函数和虚拟机实现的指令集,结构分析模块分别与语义分析模块相连并输出虚拟机实现的指令集中每一个指令的代码实现、与优化编译模块相连并输出程序结构信息,语义分析模块从代码实现中分析得到指令语义后输出至优化编译模块,优化编译模块汇总程序结构信息和指令语义并输出受保护程序的语义表示,同时编译生成优化后的程序。
所述的程序执行的记录信息包括程序执行的所有指令。
本发明涉及上述系统的实现方法,通过对程序追踪并获得追踪文件(trace文件)后,采用启发式分析策略分析trace文件得到软件虚拟机指令集;然后通过对虚拟机指令集提取语义;最后经重写和优化编译实现反混淆。
所述的对程序追踪是指:确定分析目标后通过运行程序和调试的方法对于确定待分析程序达到分析目标所需要的输入,使用具有程序追踪功能的工具对程序执行过程进行记录,获取trace文件。
所述的利用启发式策略分析是指:利用待分析程序执行生成的trace文件,对程序进行控制流分析,还原其控制流图,从而在trace文件中识别并提取出受软件虚拟机保护的代码,并从提取的代码中分离得到分发器(dispatcher)及其对应的句柄(handlers),从而组合作为一个虚拟机指令的软件实现;然后使用一个程序执行窗口对trace文件进行顺序遍历,程序执行窗口中包含程序执行过程中的指令,对于每一个程序执行窗口,统计其中指令执行次数并进行排序,将高频指令所在的程序块作为疑似的dispatcher,对这些程序块附近的指令产生的控制流图进行模式匹配,符合之前所述虚拟机控制流特征的程序块即是软件虚拟机的指令集。
所述的虚拟机指令集中每条指令均为对软件虚拟机中虚拟寄存器或者虚拟堆栈进行的一定操作。每条指令功能都由软件代码实现,其语义即为虚拟机指令语义。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810820633.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种使用随机密码保护代码的方法及装置
- 下一篇:一种前端页面提供方法及装置