[发明专利]一种基于语义的二进制代码反混淆方法有效
申请号: | 201510158163.7 | 申请日: | 2015-04-03 |
公开(公告)号: | CN104834837B | 公开(公告)日: | 2017-10-31 |
发明(设计)人: | 王蕾;郭军;汤战勇;房鼎益;陈晓江;李光辉;郝朝辉;王华;张恒;叶贵鑫;周祥;陈锋 | 申请(专利权)人: | 西北大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 西安恒泰知识产权代理事务所61216 | 代理人: | 李郑建,王芳 |
地址: | 710069 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 语义 二进制 代码 混淆 方法 | ||
技术领域
本发明属于软件安全领域,特别涉及一种基于语义的二进制代码反混淆方法。
背景技术
如今随着人们对计算机程序的依赖性越来越高,为了增加程序的安全性,使用安全软件进行程序保护已经成为重要的保护方式。但恶意软件厂商为了令自身的恶意程序“逃脱”安全软件的查杀,会使用“混淆”的方式增加恶意软件的复杂程度,达到改变恶意程序原有的代码特征的效果,从而增加安全软件厂商对其进行逆向分析的系统开销,实现免于查杀的目的。针对上述情况,就需要使用“反混淆”的方式,以便于得到去除“伪装”后恶意软件的真正特征码,进而对实现对恶意软件的查杀。
现有的反混淆技术,如静态模式匹配技术、针对于标识符重命名的反混淆算法等都是基于静态的或者在源码的基础上进行反混淆,对于虚拟化混淆技术的反混淆的研究更为稀少。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
已有的虚拟化反混淆技术首先逆向分析虚拟解释器的结构,然后使用这些信息去计算所有的字节码,最后恢复嵌入到解释器中的原始代码。当我们处理的解释器结构符合我们的特定需求时,这种方法虽然有效的,但通用性较差,不能适用于大量的“反混淆”处理。
发明内容
为了解决现有技术的问题,本发明提供了一种基于语义的二进制代码反混淆方法,所述基于语义的二进制代码反混淆方法,包括:
构建反变形模板库,所述反变形模板库中包括基于语义的指令变形策略;
导入目标程序,通过检测所述目标程序的二进制代码确定所述目标程序是否为可执行文件;
当所述目标程序为所述可执行文件时,执行所述目标程序,提取所述目标程序的执行过程信息;
对所述执行过程信息进行污点分析,获取带有污点标记的指令序列,根据所述带有污点标记的指令序列构造控制流图,所述控制流图中包括至少两个数据基本块,多个所述数据基本块构成显式路径;
根据控制依赖关系对所述控制流图进行信息补充,得到与所述数据基本块具有控制依赖关系的控制基本块;
根据所述控制流图中的跳转关系,得到所述控制流图中除所述显式路径之外的隐式路径,将所述显式路径和所述隐式路径构成所述控制流图中的多执行路径,得到完整控制流图;
根据所述完整控制流图,结合所述反变形模板库对所述目标程序进行指令裁剪,得到裁剪后指令对应的简洁控制流图,根据所述目标程序的执行过程信息获取函数调用关系图。
可选的,所述构建反变形模板库,所述反变形模板库中包括基于语义的指令变形策略,包括:
获取已知的基于语义的指令变形策略,所述指令变形策略包括变形前的原始指令和变形后的反混淆指令;
将所述指令变形策略进行组合,得到反变形模板库。
可选的,所述当所述目标程序为所述可执行文件时提取所述目标程序的执行过程信息,包括:
在确定所述目标程序为所述可执行文件时,执行所述目标程序,并对所述目标程序的所有执行数据中进行动态分析:
提取所述所有执行数据中的执行过程信息,所述执行过程信息包括在所述目标程序执行过程中的所有指令信息、寄存器信息和内存数据信息,在执行所述目标程序存在函数调用时,还需提取函数调用信息。
可选的,所述对所述执行过程信息进行污点分析,获取带有污点标记的指令序列,根据所述带有污点标记的指令序列构造控制流图,所述控制流图中包括至少两个数据基本块,多个所述数据基本块构成显式路径,包括:
确定所述目标程序的污点信息,将所述执行过程信息中含有所述污点信息的所有指令进行污点标记,获取带有所述污点标记的指令序列;
根据所述带有所述污点标记的指令序列的存储位置和前后跳转关系,构造控制流图,所述控制流图中包括至少两个数据基本块,多个所述数据基本块构成显式路径。
可选的,所述确定所述目标程序的污点信息,包括:
将符合预设格式的内容作为污点信息;或
当不存在所述预设格式时,将输入内容作为所述污点信息。
可选的,所述根据控制依赖关系对所述控制流图进行信息补充,得到与所述数据基本块具有控制依赖关系的控制基本块,包括:
获取所述控制流图中的所有数据基本块;
根据控制依赖关系,获取所述控制流图中与所述数据基本块具有控制依赖关系的控制基本块,将所述控制基本块补充至所述控制流图中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北大学,未经西北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510158163.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种运输机空调系统控制电路试验器
- 下一篇:洗衣机用单相感应电机及洗衣机