[发明专利]一种基于语义的二进制代码反混淆方法有效
申请号: | 201510158163.7 | 申请日: | 2015-04-03 |
公开(公告)号: | CN104834837B | 公开(公告)日: | 2017-10-31 |
发明(设计)人: | 王蕾;郭军;汤战勇;房鼎益;陈晓江;李光辉;郝朝辉;王华;张恒;叶贵鑫;周祥;陈锋 | 申请(专利权)人: | 西北大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 西安恒泰知识产权代理事务所61216 | 代理人: | 李郑建,王芳 |
地址: | 710069 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 语义 二进制 代码 混淆 方法 | ||
1.一种基于语义的二进制代码反混淆方法,其特征在于,所述基于语义的二进制代码反混淆方法,包括:
构建反变形模板库,所述反变形模板库中包括基于语义的指令变形策略;
导入目标程序,通过检测所述目标程序的二进制代码确定所述目标程序是否为可执行文件;
当所述目标程序为所述可执行文件时,执行所述目标程序,提取所述目标程序的执行过程信息;
对所述执行过程信息进行污点分析,获取带有污点标记的指令序列,根据所述带有污点标记的指令序列构造控制流图,所述控制流图中包括至少两个基本块,多个所述基本块构成显式路径;
取所述控制流图中的所有数据基本块;根据控制依赖关系,获取所述控制流图中与所述数据基本块具有控制依赖关系的控制基本块,将所述控制基本块补充至所述控制流图中;
根据所述控制流图中的跳转关系,得到所述控制流图中除所述显式路径之外的隐式路径,将所述显式路径和所述隐式路径构成所述控制流图中的多执行路径,得到完整控制流图;
根据所述完整控制流图,结合所述反变形模板库对所述目标程序进行指令裁剪,得到裁剪后指令对应的简洁控制流图,根据所述目标程序的执行过程信息获取函数调用关系图。
2.根据权利要求1所述的基于语义的二进制代码反混淆方法,其特征在于,所述构建反变形模板库,所述反变形模板库中包括基于语义的指令变形策略,包括:
获取已知的基于语义的指令变形策略,所述指令变形策略包括变形前的原始指令和变形后的反混淆指令;
将所述指令变形策略进行组合,得到反变形模板库。
3.根据权利要求1所述的基于语义的二进制代码反混淆方法,其特征在于,所述当所述目标程序为所述可执行文件时提取所述目标程序的执行过程信息,包括:
在确定所述目标程序为所述可执行文件时,执行所述目标程序;
提取所述目标程序的所有执行数据,所述执行数据包括在所述目标程序执行过程中的所有指令信息、寄存器信息和内存数据信息,在执行所述目标程序存在函数调用时,还需提取函数调用信息。
4.根据权利要求1所述的基于语义的二进制代码反混淆方法,其特征在于,所述对所述执行过程信息进行污点分析,获取带有污点标记的指令序列,根据所述带有污点标记的指令序列构造控制流图,所述控制流图中包括至少两个数据基本块,多个所述数据基本块构成显式路径,包括:
确定所述目标程序的污点信息,将所述执行过程信息中含有所述污点信息的所有指令进行污点标记,获取带有所述污点标记的指令序列;
根据所述带有所述污点标记的指令序列的存储位置和前后跳转关系,构造控制流图,所述控制流图中包括至少两个数据基本块,多个所述数据基本块构成显式路径。
5.根据权利要求4所述的基于语义的二进制代码反混淆方法,其特征在于,所述确定所述目标程序的污点信息,包括:
将符合预设格式的内容作为污点信息;或
当不存在所述预设格式时,将输入内容作为所述污点信息。
6.根据权利要求1所述的基于语义的二进制代码反混淆方法,其特征在于,所述根据控制依赖关系对所述控制流图进行信息补充,得到与所述数据基本块具有控制依赖关系的控制基本块,包括:
获取所述控制流图中的所有数据基本块;
根据控制依赖关系,获取所述控制流图中与所述数据基本块具有控制依赖关系的控制基本块,将所述控制基本块补充至所述控制流图中。
7.根据权利要求1所述的基于语义的二进制代码反混淆方法,其特征在于,所述根据所述控制流图中的跳转关系,得到所述控制流图中除所述显式路径之外的隐式路径,将所述显式路径和所述隐式路径构成所述控制流图中的多执行路径,得到完整控制流图,包括:
根据所述控制流图中的跳转关系,确定在执行所述目标程序过程中发生跳转的所述数据基本块;
在发生跳转的所述数据基本块中,根据与所述数据基本块对应的跳转关系,通过深度优先的路径选择算法对所述数据基本块进行路径搜索,得到除所述显式路径的外的隐藏路径,所述隐藏路径构成隐式路径;
基于所述显式路径和所述隐式路径构成多路径,在所述控制流图的基础上,获取完整控制流图。
8.根据权利要求1所述的基于语义的二进制代码反混淆方法,其特征在于,所述根据所述完整控制流图,结合所述反变形模板库对所述目标程序进行指令裁剪,得到裁剪后指令对应的简洁控制流图,根据所述目标程序的执行过程信息获取函数调用关系图,包括:
首先,在所述完整控制流图中的所述数据基本块和所述控制基本块之间以及所述数据基本块或所述控制基本块内部,将所述控制流图中不带有所述污点标记的指令序列进行丢弃;
其次,检测到与反变形模板库中所述变形前的原始指令匹配的指令序列,则将所述指令序列进行裁剪,将所述完整控制流图中剩余的指令序列保存为简洁控制流图,提取所述目标程序的执行过程信息中的函数调用关系,获取函数调用关系图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北大学,未经西北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510158163.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种运输机空调系统控制电路试验器
- 下一篇:洗衣机用单相感应电机及洗衣机