[发明专利]分层协同的混淆后API调用行为发现及其恶意性判定方法无效
申请号: | 200810141455.X | 申请日: | 2008-09-25 |
公开(公告)号: | CN101359352A | 公开(公告)日: | 2009-02-04 |
发明(设计)人: | 赵荣彩;付文;庞建民;张靖博;张一驰;王成;岳峰 | 申请(专利权)人: | 中国人民解放军信息工程大学 |
主分类号: | G06F21/00 | 分类号: | G06F21/00;G06F9/45 |
代理公司: | 郑州大通专利商标代理有限公司 | 代理人: | 陈大通 |
地址: | 450002河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分层 协同 混淆 api 调用 行为 发现 及其 恶意 判定 方法 | ||
(一)、技术领域:本发明涉及一种静态分析混淆后目标可执行代码的API函数调用行为发现及其恶意性判定的方法,特别涉及一种分层协同的混淆后API调用行为发现及其恶意性判定方法。
(二)、背景技术:任何程序要达到其目的总要通过行为来实现,不管恶意程序伪装得多么巧妙,它总与良性程序存在着一些不同的、相对特殊的行为,我们将其称之为可疑行为。不管是二进制格式的可执行恶意代码、还是脚本病毒或是宏病毒,它们都是一种程序,需要调用操作系统提供的各种功能函数才能达到传播自身和破坏系统的目的,而这些功能函数在良性程序中往往是用不到的。因此,对可疑功能函数的调用可以作为恶意代码的可疑行为之一。目前,分析程序在所使用的DLL中调用的API函数是恶意代码分析和检测的一项重要方法和手段。
通常,可执行程序都有一个导入函数表,该函数表中存放有代码段中所用到的API函数在动态链接库中的真实地址。因此,只要通过查表就可以找到相应API函数的真正执行地址,从而实现对API函数的调用。但是,恶意程序往往是没有导入表的。恶意代码编写者往往会采用一些汇编程序中很少使用甚至根本不用的技巧来调用API函数。
除此以外,代码混淆技术的应用也增加了对目标可执行程序的API调用行为分析的难度。代码混淆(Code Obfuscation)技术,也称为代码迷惑技术,产生之初是一种防止拥有版权的软件发布被恶意逆向分析的有效手段。程序员采用混淆技术将源代码转换为与之功能上等价的目标代码,这样逆向分析人员便难于对该程序进行分析,也就难于得到源代码所采用的算法、数据结构等关键信息。但是目前越来越多的恶意代码编写者应用这种技术以逃避基于特征码匹配的恶意代码检测工具的检测,这给恶意代码分析人员的分析工作带来了巨大的困难。其中,众多用于混淆API调用行为的代码混淆方法,也使得想要通过发现对API函数的调用行为来判定代码恶意性的方法,变得难以实现。因此,如何解决混淆后恶意代码的API函数调用行为的发现问题,是恶意代码静态检测工作面临的一项新的挑战。
(三)、发明内容:
本发明要解决的技术问题是:克服现有技术的缺陷,提供一种识别范围广、识别准确、效率高的分层协同的混淆后API调用行为发现及其恶意性判定方法。
本发明的技术方案:
一种分层协同的混淆后API调用行为发现及其恶意性判定方法,含有下列步骤:
a.对待分析的二进制代码进行反汇编,构建程序的控制流图CFG,根据数据库DB1中存储的已知具有调用API函数能力的非常规指令或数据序列来识别API函数的非常规调用行为;
b.完成目标程序所调用的API序列的生成工作,根据不同的API函数调用方式,对API函数进行识别和恢复,API函数调用方式含有直接调用和间接调用;
c.对可疑文件进行分析,完成API序列的提取及恶意性判定工作,序列的提取基于程序的控制流图CFG完成,然后将得到的序列按照可疑API序列库中存储的格式进行规范化,规范后的API序列以整数向量的形式进行存储,以便对其恶意性进行判定。
步骤a中的反汇编是具有抗混淆能力的反汇编,该反汇编在行进递归算法的基础上,加入了对敏感指令的分析步骤,以消除行进递归算法在解码相关指令时的若干假设,对假设不成立的情况分类进行处理,所述对敏感指令的分析含有针对条件跳转类指令的混淆策略的分析和恢复工作、针对过程调用指令的混淆策略的分析与恢复工作、针对多路跳转的混淆策略的分析与恢复工作。
针对条件跳转类指令的混淆策略的分析和恢复工作使用数据流分析、切片分析等相关技术,对跳转条件进行分析,识别常见的不透明谓词形式,并根据所识别的不透明谓词情况消除代码中的冗余分支及垃圾代码;针对过程调用指令的混淆策略的分析与恢复工作通过对调用指令的目标地址的预解码,分析被调用过程的内存栈使用情况和返回情况,根据分析结果判定调用指令的下一条指令是否会执行,在此基础上,识别并恢复隐藏于调用指令后的有用的数据,并对垃圾代码进行消除;针对多路跳转的混淆策略的分析与恢复工作是在识别跳转表的基础上,使用表达式替换、常量传播和切片分析技术,对分支变量进行分析,根据分析结果,对使用压平flattening算法的多分支语句进行合并,对使用不透明谓词导致的冗余分支进行消除。
数据库DB1作为外部数据输入,用来辅助步骤a的分析工作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军信息工程大学,未经中国人民解放军信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810141455.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:六轮行星探测车闭链式悬架机构
- 下一篇:业务配置方法和设备