CN101359352A - 分层协同的混淆后api调用行为发现及其恶意性判定方法 - Google Patents
分层协同的混淆后api调用行为发现及其恶意性判定方法 Download PDFInfo
- Publication number
- CN101359352A CN101359352A CNA200810141455XA CN200810141455A CN101359352A CN 101359352 A CN101359352 A CN 101359352A CN A200810141455X A CNA200810141455X A CN A200810141455XA CN 200810141455 A CN200810141455 A CN 200810141455A CN 101359352 A CN101359352 A CN 101359352A
- Authority
- CN
- China
- Prior art keywords
- api
- function
- sequence
- malice
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种分层协同的混淆后API调用行为发现及其恶意性判定方法;该判定方法含有三个步骤:首先,对待分析的二进制代码进行反汇编,构建程序的控制流图CFG,根据数据库DB1中存储的已知具有调用API函数能力的非常规指令或数据序列来识别API函数的非常规调用行为;其次,完成目标程序所调用的API序列的生成工作,从直接调用和间接调用两方面对API函数进行识别和恢复;最后,完成API序列的提取及恶意性判定工作,序列的提取基于程序的控制流图CFG完成,然后将得到的序列按照可疑API序列库中存储的格式进行规范化;本发明提供了一种识别范围广、识别准确、效率高的分层协同的混淆后API调用行为发现及其恶意性判定方法。
Description
(一)、技术领域:
本发明涉及一种静态分析混淆后目标可执行代码的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的分析工作。
在步骤b中,当直接调用API函数时,对API函数的识别含有对使用函数地址的硬编码形式的API函数调用的识别和对使用函数名的直接API函数调用的识别;对使用函数地址的硬编码形式的API函数调用的识别借助一个二维表来实现,该二维表中存放有不同操作系统以及不同版本下特定API函数的函数名到函数地址的对应关系,通过查表实现从硬编码地址到API函数名的对应;对使用函数名的直接API函数调用的识别通过识别编译器编译产生的特定代码模式来识别调用指令实际调用的API函数;根据对API函数的识别结果,对已生成的控制流图CFG中的调用指令进行调整,即将调用指令中对目标地址的调用恢复成对相应API函数名的调用。
在步骤b中,当间接调用API函数时,对API函数的识别和恢复分三步来完成:
a1.借助数据库DB2对间接调用形式进行识别,与调用形式相关的指令序列以模板的形式被存放在数据库DB2中,该数据库DB2有助于对间接API函数调用形式的识别,并为下一步识别间接API调用的目标函数奠定基础。
b1.根据步骤a1的分析结果,完成对间接API函数调用的目标函数的识别,根据步骤a1中对调用形式的区分,针对不同的调用形式,寻找API函数名与API调用指令中的目标地址之间的内在联系,识别API调用指令中被调用API函数的函数名,并相应的调整控制流图CFG。
c1.进行间隙代码分析。虽然反汇编过程具有自修复性,但是大量的实验结果表明,恶意代码采用的一些间接调用API函数的方法,往往不可避免的导致反汇编结果的错误,甚至对反汇编流程带来重大的影响,因此,在经过前两步的分析后,需要对以上错误进行修正,在控制流图CFG中恢复被错误识别成代码的数据,并添加被错误识别成数据的代码。
步骤a1中的调用形式含有:使用函数数组、利用调用指令后的压栈操作、定义同名函数。
有些API函数的恶意性是通过其参数或者是返回值来体现的,因此,在步骤b1中对API函数调用的参数及返回值进行恢复,该恢复工作借助于事先定义好的API函数的参数及返回值的类型及个数信息来完成,对于一些敏感信息需要采用切片的方法进行更加精确的二次分析。
步骤c中对API序列的恶意性判定在用户的干预下采用分级判定模式进行;第一级为完全判定模式,该模式下主要实现API序列的完全匹配工作,将识别出来的API序列与可疑API序列库DB3中的API序列进行对比,找出完全匹配的API序列,该模式判定出的目标可执行程序的可疑度高、恶意性强;第二级为基于最优队列的相似度判定模式,该模式下首先使用最优队列算法构造用于比较的最优序列,接下来使用扩展的Jaccard相似度评价方法得到序列的相似度,然后根据用户定义的阈值判定目标可执行程序的恶意性。
根据恶意性判定结果生成可疑二进制程序的API序列恶意性分析报告,该报告以文本的形式提交给用户,以便于用户查阅和下一步的分析工作。
本发明分别从二进制代码层、反汇编代码层以及控制流图表示层来识别和恢复目标文件中经过不同混淆方法混淆后的API函数调用行为;提取和规范分析后得到的目标二进制文件的API序列,并在用户干预下,采用基于完全判定模式和基于最优队列的相似度判定模式的分级判定方法,对目标文件的恶意性进行判定,最终提交基于API序列分析的二进制程序恶意性分析报告。该发明较好的解决了当前恶意代码检测中由于被混淆所以难以发现API函数调用行为的问题,对于未知恶意代码以及已知恶意代码的变种具有一定的识别能力,同时也为用户提供易于理解的可执行程序逆向分析结果,以帮助计算机安全人员判定目标可执行程序中是否存在安全隐患。
本发明的有益效果:
1、本发明将API函数调用恢复问题分为三个步骤分别进行分析,其好处在于:能够清晰明了的分别对抗针对API函数调用行为在反编译不同阶段的代码混淆技术,从而最大化的识别对API函数的调用行为。
2、本发明在第二个步骤中,根据不同的API函数调用方式,采用分而治之的策略识别和恢复API函数调用的方法,能够最大化的对问题进行分解,充分的挖掘分析过程中的确定因素和不确定因素,研究的粒度更细,针对性更强。
3、本发明在第三个步骤中分别采用整数和向量的表示法来表示API函数和API序列,将字符串的比较操作转换成对整数序列的比较操作,大大简化了操作流程,提高了操作效率。
(四)、附图说明:
图1为分层协同的混淆后API调用行为发现及其恶意度判定总框架图;
图2为针对几类敏感指令的混淆策略的反混淆实现框架图;
图3为API调用行为“创建文件映射并写入”的三种表示方式示意图;
(五)、具体实施方式:
参见图1~图3,分层协同的混淆后API调用行为发现及其恶意性判定方法具体分为三个阶段:二进制代码分析阶段A、API序列生成阶段B、API序列分析阶段C。
二进制代码分析阶段A:
本阶段主要完成的工作是对目标二进制文件的预处理,涉及的模块包括图1中的模块101和模块102。
模块101的主要工作是对输入的二进制代码进行脱壳处理,这里包括对常用的加密算法和压缩算法的解密和解压缩处理。模块102的主要工作是完成对解密、解压后的二进制程序进行反汇编,以及构建相应的控制流图CFG。由于系统面向的可能是被混淆后的含有恶意目的的可执行程序,因此模块102使用的是具有抗混淆能力的抗混淆反汇编流程。该流程中使用的算法不同于常用的线性扫描算法或行进递归算法,其主要思想是在行进递归算法的基础上,加入了对敏感指令的分析步骤,以消除行进递归算法在解码相关指令时的若干假设,对假设不成立的情况分类进行处理。在用户辅助的情况下,该流程能够有效地对抗一些常见的反反汇编策略,以及代码混淆手段,能够更好的对抗常见混淆技术,适应于对带有恶意的可执行程序的反汇编,从一定程度上为保证下一步分析的正确性奠定了基础。
图2中,对敏感指令的分析为:模块202~204主要完成针对条件跳转类指令的混淆策略的分析和恢复工作,主要方法是使用数据流分析、切片分析等相关技术,对跳转条件进行分析,识别常见的不透明谓词形式,并根据所识别的不透明谓词情况消除代码中的冗余分支及垃圾代码。模块205~208主要完成针对过程调用指令的混淆策略的分析与恢复工作。通过对调用指令的目标地址的预解码,分析被调用过程的内存栈使用情况和返回情况,根据分析结果判定调用指令的下一条指令是否会执行。在此基础上,识别并恢复隐藏于调用指令后的有用的数据,并对垃圾代码进行消除。模块209~211主要完成针对多路跳转的混淆策略的分析与恢复工作,主要方法是在识别跳转表的基础上,使用表达式替换,常量传播和切片分析等技术,对分支变量进行分析。根据分析结果,对使用压平flattening算法的多分支语句进行合并;对使用不透明谓词导致的冗余分支进行消除。
模块102的另一项重要工作是根据指令模板库DB1中的指令模板,识别带有显著特征的API函数非常规调用形式。在这些非常规调用形式中,通常不会直接使用常用的调用指令来调用API函数。相反,一组等价于调用指令的指令序列常常被用来实现对API函数的调用。我们将此类序列存放于数据库DB1中,在模块102中采用模板匹配的方法对此类API函数调用进行识别。
API序列生成阶段B:
本阶段主要完成的工作,是在第一阶段分析的基础上,挖掘目标二进制文件反汇编代码表示中的API调用行为,并生成API序列,涉及的模块包括图1中的模块103到模块108共6个模块。其中,模块103用于判定API函数调用的调用形式,该模块将API函数调用按照直接调用和间接调用划分成两类。模块104和模块105用于实现直接调用形式的目标API函数的识别;模块106、模块107和模块108用于实现间接API函数调用形式的目标函数的识别。
模块104用来识别硬编码形式的API函数调用,其主要方法是首先维护一个二维表,以存储常采用硬编码形式的关键API函数的函数名与其在特定操作系统版本上的装载地址之间的对应关系,通过查表可以得到硬编码地址实际对应的API函数的函数名。模块105用于识别直接调用的API函数名,该模块主要针对的是使用导入表调用API函数的一类恶意代码。
使用数据库DB2(API调用形式模板库)中定义的模板,模块106可以识别间接调用API函数的具体调用方式,包括使用函数数组的API调用实现,利用调用指令后的压栈操作实现的API调用,定义API函数的同名函数等。模块107根据模块106的分析结果,对间接API函数调用的目标函数进行识别。模块108完成对代码间隙的分析工作,主要用于对间接调用给反汇编流程带来的负面影响进行修正和消除。
模块109借助于事先定义的关键API函数原型,结合数据流分析和控制流分析方法,恢复API函数调用的参数及返回值。
API序列分析阶段C:
本阶段主要完成对API序列的提取和分析工作,以及在用户参与的基础上生成并提交基于API序列分析的可疑二进制代码恶意性分析报告。涉及的模块包括图1中的模块110到模块112共3个模块。
模块110和模块111用于提取API序列并按照模块112的要求对提取出来的API序列进行规范化。模块110首先从程序的控制流图CFG中得到程序的API调用图,该图中用API函数名来表示对API函数的调用;接下来,根据事先为每个API函数指定好的id号,将API调用图中用函数名表示的API函数调用转换成用整数表示的API函数调用;最后,模块111将按照给定的长度从调用图中提取出整数序列表示的API函数调用序列,并最终采用整数向量的表示法来表示程序的API函数调用序列。图3通过一个示例(API调用行为“创建文件映射并写入”),展示了API序列的函数名序列表示、整数序列表示以及整数向量表示这三种表示方式之间的映射关系。
模块112对API序列的恶意性进行判定。判定的依据主要来自于两方面:其一是根据API序列与可疑API序列库DB3中的序列进行比对的结果;其二是使用扩展的Jaccard相似度评价方法,计算API序列与DB3中序列的相似度,并以用户设定的阈值为基准,判定序列的恶意性。扩展的Jaccard相似度评价方法分两步来实施:
假设向量A和向量B分别为待比较的两个API序列。第一步,使用最优队列算法(optimal alignment algorithm)得到用于比较的最优队列A′和B′,并设A′和B′的长度为n。第二步,通过扩展的Jaccard相似度公式
计算序列A和B的相似度
基于API序列分析的可疑二进制代码恶意性分析报告中,将给出可疑文件的API序列,以及对其恶意性的判定结果。如果可疑API序列库DB3中存在与待分析的API序列完全一致的API序列,报告将判定该文件含有恶意性,并给出恶意代码的名称等信息;如果采用的是基于最优队列的相似度判定方法,报告中将给出该目标文件的相似度计算结果,并结合用户给出的阈值,给出该文件恶意性的判定结果。
Claims (10)
1、一种分层协同的混淆后API调用行为发现及其恶意性判定方法,其特征是:含有下列步骤:
a.对待分析的二进制代码进行反汇编,构建程序的控制流图CFG,根据数据库DB1中存储的已知具有调用API函数能力的非常规指令或数据序列来识别API函数的非常规调用行为;
b.完成目标程序所调用的API序列的生成工作,根据不同的API函数调用方式,对API函数进行识别和恢复,API函数调用方式含有直接调用和间接调用;
c.对可疑文件进行分析,完成API序列的提取及恶意性判定工作,序列的提取基于程序的控制流图CFG完成,然后将得到的序列按照可疑API序列库中存储的格式进行规范化,规范后的API序列以整数向量的形式进行存储,以便对其恶意性进行判定。
2.根据权利要求1所述的分层协同的混淆后API调用行为发现及其恶意性判定方法,其特征是:步骤a中的反汇编是具有抗混淆能力的反汇编,该反汇编在行进递归算法的基础上,加入了对敏感指令的分析步骤,以消除行进递归算法在解码相关指令时的若干假设,对假设不成立的情况分类进行处理,所述对敏感指令的分析含有针对条件跳转类指令的混淆策略的分析和恢复工作、针对过程调用指令的混淆策略的分析与恢复工作、针对多路跳转的混淆策略的分析与恢复工作。
3.根据权利要求2所述的分层协同的混淆后API调用行为发现及其恶意性判定方法,其特征是:所述针对条件跳转类指令的混淆策略的分析和恢复工作使用数据流分析、切片分析等相关技术,对跳转条件进行分析,识别常见的不透明谓词形式,并根据所识别的不透明谓词情况消除代码中的冗余分支及垃圾代码;所述针对过程调用指令的混淆策略的分析与恢复工作通过对调用指令的目标地址的预解码,分析被调用过程的内存栈使用情况和返回情况,根据分析结果判定调用指令的下一条指令是否会执行,在此基础上,识别并恢复隐藏于调用指令后的有用的数据,并对垃圾代码进行消除;所述针对多路跳转的混淆策略的分析与恢复工作是在识别跳转表的基础上,使用表达式替换、常量传播和切片分析技术,对分支变量进行分析,根据分析结果,对使用压平flattening算法的多分支语句进行合并,对使用不透明谓词导致的冗余分支进行消除。
4.根据权利要求1所述的分层协同的混淆后API调用行为发现及其恶意性判定方法,其特征是:数据库DB1作为外部数据输入,用来辅助步骤a的分析工作。
5.根据权利要求1所述的分层协同的混淆后API调用行为发现及其恶意性判定方法,其特征是:在步骤b中,当直接调用API函数时,对API函数的识别含有对使用函数地址的硬编码形式的API函数调用的识别和对使用函数名的直接API函数调用的识别;所述对使用函数地址的硬编码形式的API函数调用的识别借助一个二维表来实现,该二维表中存放有不同操作系统以及不同版本下特定API函数的函数名到函数地址的对应关系,通过查表实现从硬编码地址到API函数名的对应;所述对使用函数名的直接API函数调用的识别通过识别编译器编译产生的特定代码模式来识别调用指令实际调用的API函数;根据对API函数的识别结果,对已生成的控制流图CFG中的调用指令进行调整,即将调用指令中对目标地址的调用恢复成对相应API函数名的调用。
6.根据权利要求1所述的分层协同的混淆后API调用行为发现及其恶意性判定方法,其特征是:在步骤b中,当间接调用API函数时,对API函数的识别和恢复分三步来完成:
a1.借助数据库DB2对间接调用形式进行识别,与调用形式相关的指令序列以模板的形式被存放在数据库DB2中。
b1.根据步骤a1的分析结果,完成对间接API函数调用的目标函数的识别,根据步骤a1中对调用形式的区分,针对不同的调用形式,寻找API函数名与API调用指令中的目标地址之间的内在联系,识别API调用指令中被调用API函数的函数名,并相应的调整控制流图CFG。
c1.进行间隙代码分析,在控制流图CFG中恢复被错误识别成代码的数据,并添加被错误识别成数据的代码。
7、根据权利要求6所述的分层协同的混淆后API调用行为发现及其恶意性判定方法,其特征是:所述步骤a1中的调用形式含有:使用函数数组、利用调用指令后的压栈操作、定义同名函数。
8.根据权利要求6所述的分层协同的混淆后API调用行为发现及其恶意性判定方法,其特征是:在步骤b1中对API函数调用的参数及返回值进行恢复,该恢复工作借助于事先定义好的API函数的参数及返回值的类型及个数信息来完成,对于一些敏感信息需要采用切片的方法进行更加精确的二次分析。
9、根据权利要求1所述的分层协同的混淆后API调用行为发现及其恶意性判定方法,其特征是:步骤c中对API序列的恶意性判定在用户的干预下采用分级判定模式进行;第一级为完全判定模式,该模式下主要实现API序列的完全匹配工作,将识别出来的API序列与可疑API序列库DB3中的API序列进行对比,找出完全匹配的API序列;第二级为基于最优队列的相似度判定模式,该模式下首先使用最优队列算法构造用于比较的最优序列,接下来使用扩展的Jaccard相似度评价方法得到序列的相似度,然后根据用户定义的阈值判定目标可执行程序的恶意性。
10、根据权利要求9所述的分层协同的混淆后API调用行为发现及其恶意性判定方法,其特征是:根据恶意性判定结果生成可疑二进制程序的API序列恶意性分析报告,该报告以文本的形式提交给用户,以便于用户查阅和下一步的分析工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810141455XA CN101359352B (zh) | 2008-09-25 | 2008-09-25 | 分层协同的混淆后api调用行为发现及其恶意性判定方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810141455XA CN101359352B (zh) | 2008-09-25 | 2008-09-25 | 分层协同的混淆后api调用行为发现及其恶意性判定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101359352A true CN101359352A (zh) | 2009-02-04 |
CN101359352B CN101359352B (zh) | 2010-08-25 |
Family
ID=40331799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810141455XA Expired - Fee Related CN101359352B (zh) | 2008-09-25 | 2008-09-25 | 分层协同的混淆后api调用行为发现及其恶意性判定方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101359352B (zh) |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976319A (zh) * | 2010-11-22 | 2011-02-16 | 张平 | 基于行为特征的BIOS固件Rootkit检测方法 |
CN102298681A (zh) * | 2011-06-22 | 2011-12-28 | 西北大学 | 一种基于数据流切片的软件识别方法 |
CN102938040A (zh) * | 2012-09-29 | 2013-02-20 | 中兴通讯股份有限公司 | Android恶意应用程序检测方法、系统及设备 |
CN102945347A (zh) * | 2012-09-29 | 2013-02-27 | 中兴通讯股份有限公司 | 一种检测Android恶意软件的方法、系统及设备 |
WO2014026619A1 (en) * | 2012-08-16 | 2014-02-20 | Tencent Technology (Shenzhen) Company Limited | Method and device for controlling invocation of an application programming interface |
WO2014089744A1 (zh) * | 2012-12-10 | 2014-06-19 | 华为技术有限公司 | 恶意代码的检测方法及装置 |
CN104134019A (zh) * | 2014-07-25 | 2014-11-05 | 北京奇虎科技有限公司 | 检测脚本病毒的方法和装置 |
CN104252596A (zh) * | 2013-06-28 | 2014-12-31 | 贝壳网际(北京)安全技术有限公司 | 一种脚本病毒的监控方法及装置 |
CN104751054A (zh) * | 2013-12-31 | 2015-07-01 | 贝壳网际(北京)安全技术有限公司 | 恶意程序的识别方法及装置、移动终端 |
CN104834837A (zh) * | 2015-04-03 | 2015-08-12 | 西北大学 | 一种基于语义的二进制代码反混淆方法 |
CN104850786A (zh) * | 2015-06-03 | 2015-08-19 | 舒辉 | 基于环境重构的恶意代码完整性分析方法 |
CN105653949A (zh) * | 2014-11-17 | 2016-06-08 | 华为技术有限公司 | 一种恶意程序检测方法及装置 |
CN105718765A (zh) * | 2016-01-26 | 2016-06-29 | 国家信息技术安全研究中心 | 一种利用有限自动机实现代码混淆的方法 |
CN106095443A (zh) * | 2016-06-14 | 2016-11-09 | 电子科技大学 | 一种基于c/c++代码库的api调用模式挖掘方法 |
CN106295348A (zh) * | 2015-05-29 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 应用程序的漏洞检测方法及装置 |
CN106464513A (zh) * | 2014-06-27 | 2017-02-22 | 迈克菲股份有限公司 | 用于抑制恶意调用的系统和方法 |
CN106548073A (zh) * | 2016-11-01 | 2017-03-29 | 北京大学 | 基于卷积神经网络的恶意apk的筛查方法 |
CN106650451A (zh) * | 2016-12-30 | 2017-05-10 | 北京启明星辰信息安全技术有限公司 | 一种检测方法和装置 |
CN106709350A (zh) * | 2016-12-30 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种病毒检测方法及装置 |
CN107133501A (zh) * | 2017-03-20 | 2017-09-05 | 福建天晴数码有限公司 | 一种apk文件的安全检测方法及系统 |
CN107210912A (zh) * | 2014-12-29 | 2017-09-26 | 维萨国际服务协会 | 对应用程序库的授权访问 |
CN107273177A (zh) * | 2017-06-28 | 2017-10-20 | 中国信息安全测评中心 | 一种基于跳转表定位arm固件装载基址的方法和装置 |
CN107341374A (zh) * | 2017-07-17 | 2017-11-10 | 广东工业大学 | 一种不透明谓词的插入方法及装置 |
CN108108617A (zh) * | 2017-12-21 | 2018-06-01 | 中国人民解放军战略支援部队信息工程大学 | 基于静态指令流跟踪的导入表修复方法及装置 |
CN108701184A (zh) * | 2016-03-03 | 2018-10-23 | 高通股份有限公司 | 用于硬件控制流施行的控制流传递的基于包的验证的方法和设备 |
CN109101816A (zh) * | 2018-08-10 | 2018-12-28 | 北京理工大学 | 一种基于系统调用控制流图的恶意代码同源性分析方法 |
CN109347808A (zh) * | 2018-09-26 | 2019-02-15 | 北京计算机技术及应用研究所 | 一种基于用户群行为活动的安全分析方法 |
CN110309661A (zh) * | 2019-04-19 | 2019-10-08 | 中国科学院信息工程研究所 | 一种基于控制流的敏感数据使用权限管理方法及装置 |
CN110727925A (zh) * | 2019-08-23 | 2020-01-24 | 北京邮电大学 | 一种目标应用安全检测方法、装置与电子设备 |
CN110765457A (zh) * | 2018-12-24 | 2020-02-07 | 哈尔滨安天科技集团股份有限公司 | 一种基于程序逻辑识别同源攻击的方法、装置及存储设备 |
CN110832488A (zh) * | 2017-06-29 | 2020-02-21 | 爱维士软件有限责任公司 | 规范化可执行程序文件中的入口点指令 |
CN111399848A (zh) * | 2020-03-17 | 2020-07-10 | 北京百度网讯科技有限公司 | 一种硬编码数据检测方法、装置、电子设备和介质 |
CN111506313A (zh) * | 2020-03-04 | 2020-08-07 | 西安电子科技大学 | 一种基于神经网络的程序控制流混淆方法及系统 |
CN111596926A (zh) * | 2020-04-14 | 2020-08-28 | 中国人民解放军战略支援部队信息工程大学 | 数据取证分析方法、装置及电子设备 |
CN112068883A (zh) * | 2020-07-31 | 2020-12-11 | 中国人民解放军战略支援部队信息工程大学 | 精简指令集下大型二进制固件参数个数识别方法 |
CN112395602A (zh) * | 2019-08-15 | 2021-02-23 | 奇安信安全技术(珠海)有限公司 | 静态安全特征数据库的处理方法、装置及系统 |
-
2008
- 2008-09-25 CN CN200810141455XA patent/CN101359352B/zh not_active Expired - Fee Related
Cited By (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976319B (zh) * | 2010-11-22 | 2012-07-04 | 张平 | 基于行为特征的BIOS固件Rootkit检测方法 |
CN101976319A (zh) * | 2010-11-22 | 2011-02-16 | 张平 | 基于行为特征的BIOS固件Rootkit检测方法 |
CN102298681A (zh) * | 2011-06-22 | 2011-12-28 | 西北大学 | 一种基于数据流切片的软件识别方法 |
CN102298681B (zh) * | 2011-06-22 | 2013-07-31 | 西北大学 | 一种基于数据流切片的软件识别方法 |
WO2014026619A1 (en) * | 2012-08-16 | 2014-02-20 | Tencent Technology (Shenzhen) Company Limited | Method and device for controlling invocation of an application programming interface |
US9152786B2 (en) | 2012-08-16 | 2015-10-06 | Tencent Technology (Shenzhen) Company Limited | Method and device for controlling invocation of an application programming interface |
CN102945347B (zh) * | 2012-09-29 | 2016-02-24 | 中兴通讯股份有限公司 | 一种检测Android恶意软件的方法、系统及设备 |
CN102938040A (zh) * | 2012-09-29 | 2013-02-20 | 中兴通讯股份有限公司 | Android恶意应用程序检测方法、系统及设备 |
CN102945347A (zh) * | 2012-09-29 | 2013-02-27 | 中兴通讯股份有限公司 | 一种检测Android恶意软件的方法、系统及设备 |
WO2014048195A1 (zh) * | 2012-09-29 | 2014-04-03 | 中兴通讯股份有限公司 | 检测安卓软件恶意行为的方法、系统及设备 |
WO2014089744A1 (zh) * | 2012-12-10 | 2014-06-19 | 华为技术有限公司 | 恶意代码的检测方法及装置 |
CN104252596A (zh) * | 2013-06-28 | 2014-12-31 | 贝壳网际(北京)安全技术有限公司 | 一种脚本病毒的监控方法及装置 |
CN104252596B (zh) * | 2013-06-28 | 2019-01-25 | 贝壳网际(北京)安全技术有限公司 | 一种脚本病毒的监控方法及装置 |
CN104751054A (zh) * | 2013-12-31 | 2015-07-01 | 贝壳网际(北京)安全技术有限公司 | 恶意程序的识别方法及装置、移动终端 |
CN104751054B (zh) * | 2013-12-31 | 2018-09-14 | 北京猎豹移动科技有限公司 | 恶意程序的识别方法及装置、移动终端 |
CN106464513A (zh) * | 2014-06-27 | 2017-02-22 | 迈克菲股份有限公司 | 用于抑制恶意调用的系统和方法 |
CN106464513B (zh) * | 2014-06-27 | 2020-08-21 | 迈克菲有限公司 | 用于抑制恶意调用的系统和方法 |
CN104134019A (zh) * | 2014-07-25 | 2014-11-05 | 北京奇虎科技有限公司 | 检测脚本病毒的方法和装置 |
CN105653949A (zh) * | 2014-11-17 | 2016-06-08 | 华为技术有限公司 | 一种恶意程序检测方法及装置 |
CN105653949B (zh) * | 2014-11-17 | 2019-06-21 | 华为技术有限公司 | 一种恶意程序检测方法及装置 |
CN107210912B (zh) * | 2014-12-29 | 2021-03-12 | 维萨国际服务协会 | 对应用程序库的授权访问 |
CN107210912A (zh) * | 2014-12-29 | 2017-09-26 | 维萨国际服务协会 | 对应用程序库的授权访问 |
CN104834837A (zh) * | 2015-04-03 | 2015-08-12 | 西北大学 | 一种基于语义的二进制代码反混淆方法 |
CN104834837B (zh) * | 2015-04-03 | 2017-10-31 | 西北大学 | 一种基于语义的二进制代码反混淆方法 |
CN106295348A (zh) * | 2015-05-29 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 应用程序的漏洞检测方法及装置 |
CN106295348B (zh) * | 2015-05-29 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 应用程序的漏洞检测方法及装置 |
CN104850786B (zh) * | 2015-06-03 | 2018-03-20 | 舒辉 | 基于环境重构的恶意代码完整性分析方法 |
CN104850786A (zh) * | 2015-06-03 | 2015-08-19 | 舒辉 | 基于环境重构的恶意代码完整性分析方法 |
CN105718765A (zh) * | 2016-01-26 | 2016-06-29 | 国家信息技术安全研究中心 | 一种利用有限自动机实现代码混淆的方法 |
CN108701184B (zh) * | 2016-03-03 | 2021-10-01 | 高通股份有限公司 | 用于硬件控制流施行的控制流传递的基于包的验证的方法和设备 |
CN108701184A (zh) * | 2016-03-03 | 2018-10-23 | 高通股份有限公司 | 用于硬件控制流施行的控制流传递的基于包的验证的方法和设备 |
CN106095443B (zh) * | 2016-06-14 | 2019-04-05 | 电子科技大学 | 一种基于c/c++代码库的api调用模式挖掘方法 |
CN106095443A (zh) * | 2016-06-14 | 2016-11-09 | 电子科技大学 | 一种基于c/c++代码库的api调用模式挖掘方法 |
CN106548073A (zh) * | 2016-11-01 | 2017-03-29 | 北京大学 | 基于卷积神经网络的恶意apk的筛查方法 |
CN106709350A (zh) * | 2016-12-30 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种病毒检测方法及装置 |
CN106650451A (zh) * | 2016-12-30 | 2017-05-10 | 北京启明星辰信息安全技术有限公司 | 一种检测方法和装置 |
CN107133501A (zh) * | 2017-03-20 | 2017-09-05 | 福建天晴数码有限公司 | 一种apk文件的安全检测方法及系统 |
CN107273177A (zh) * | 2017-06-28 | 2017-10-20 | 中国信息安全测评中心 | 一种基于跳转表定位arm固件装载基址的方法和装置 |
CN107273177B (zh) * | 2017-06-28 | 2020-08-04 | 中国信息安全测评中心 | 一种基于跳转表定位arm固件装载基址的方法和装置 |
CN110832488A (zh) * | 2017-06-29 | 2020-02-21 | 爱维士软件有限责任公司 | 规范化可执行程序文件中的入口点指令 |
CN107341374A (zh) * | 2017-07-17 | 2017-11-10 | 广东工业大学 | 一种不透明谓词的插入方法及装置 |
CN107341374B (zh) * | 2017-07-17 | 2020-05-08 | 广东工业大学 | 一种不透明谓词的插入方法及装置 |
CN108108617B (zh) * | 2017-12-21 | 2019-10-08 | 中国人民解放军战略支援部队信息工程大学 | 基于静态指令流跟踪的导入表修复方法及装置 |
CN108108617A (zh) * | 2017-12-21 | 2018-06-01 | 中国人民解放军战略支援部队信息工程大学 | 基于静态指令流跟踪的导入表修复方法及装置 |
CN109101816A (zh) * | 2018-08-10 | 2018-12-28 | 北京理工大学 | 一种基于系统调用控制流图的恶意代码同源性分析方法 |
CN109347808A (zh) * | 2018-09-26 | 2019-02-15 | 北京计算机技术及应用研究所 | 一种基于用户群行为活动的安全分析方法 |
CN109347808B (zh) * | 2018-09-26 | 2021-02-12 | 北京计算机技术及应用研究所 | 一种基于用户群行为活动的安全分析方法 |
CN110765457A (zh) * | 2018-12-24 | 2020-02-07 | 哈尔滨安天科技集团股份有限公司 | 一种基于程序逻辑识别同源攻击的方法、装置及存储设备 |
CN110309661A (zh) * | 2019-04-19 | 2019-10-08 | 中国科学院信息工程研究所 | 一种基于控制流的敏感数据使用权限管理方法及装置 |
CN110309661B (zh) * | 2019-04-19 | 2021-07-16 | 中国科学院信息工程研究所 | 一种基于控制流的敏感数据使用权限管理方法及装置 |
CN112395602A (zh) * | 2019-08-15 | 2021-02-23 | 奇安信安全技术(珠海)有限公司 | 静态安全特征数据库的处理方法、装置及系统 |
CN110727925A (zh) * | 2019-08-23 | 2020-01-24 | 北京邮电大学 | 一种目标应用安全检测方法、装置与电子设备 |
CN111506313A (zh) * | 2020-03-04 | 2020-08-07 | 西安电子科技大学 | 一种基于神经网络的程序控制流混淆方法及系统 |
CN111506313B (zh) * | 2020-03-04 | 2024-01-23 | 西安电子科技大学 | 一种基于神经网络的程序控制流混淆方法及系统 |
CN111399848A (zh) * | 2020-03-17 | 2020-07-10 | 北京百度网讯科技有限公司 | 一种硬编码数据检测方法、装置、电子设备和介质 |
CN111596926A (zh) * | 2020-04-14 | 2020-08-28 | 中国人民解放军战略支援部队信息工程大学 | 数据取证分析方法、装置及电子设备 |
CN111596926B (zh) * | 2020-04-14 | 2023-02-07 | 中国人民解放军战略支援部队信息工程大学 | 数据取证分析方法、装置及电子设备 |
CN112068883A (zh) * | 2020-07-31 | 2020-12-11 | 中国人民解放军战略支援部队信息工程大学 | 精简指令集下大型二进制固件参数个数识别方法 |
CN112068883B (zh) * | 2020-07-31 | 2022-10-11 | 中国人民解放军战略支援部队信息工程大学 | 精简指令集下大型二进制固件参数个数识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101359352B (zh) | 2010-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101359352B (zh) | 分层协同的混淆后api调用行为发现及其恶意性判定方法 | |
Ding et al. | Asm2vec: Boosting static representation robustness for binary clone search against code obfuscation and compiler optimization | |
Chen et al. | Detecting android malware using clone detection | |
Wang et al. | In-memory fuzzing for binary code similarity analysis | |
Alam et al. | A framework for metamorphic malware analysis and real-time detection | |
US10558805B2 (en) | Method for detecting malware within a linux platform | |
Caselden et al. | Hi-cfg: Construction by binary analysis and application to attack polymorphism | |
Bao et al. | {BYTEWEIGHT}: Learning to recognize functions in binary code | |
Alrabaee et al. | Sigma: A semantic integrated graph matching approach for identifying reused functions in binary code | |
CN104834859B (zh) | 一种Android应用中恶意行为的动态检测方法 | |
Meng et al. | Identifying multiple authors in a binary program | |
Liu et al. | Cyber vulnerability intelligence for internet of things binary | |
CN111695119B (zh) | 一种基于细粒度静态污点分析与符号执行的web漏洞检测方法 | |
Liao et al. | Smartdagger: a bytecode-based static analysis approach for detecting cross-contract vulnerability | |
CN114996126B (zh) | 一种针对eosio智能合约的漏洞检测方法及系统 | |
KR101640479B1 (ko) | 소스코드기반 소프트웨어 취약점 공격행위 분석시스템 | |
CN115270131A (zh) | 一种Java反序列化漏洞检测方法及系统 | |
CN109241737B (zh) | 一种面向多种补丁模式的差异分支识别方法及系统 | |
Menguy et al. | Search-based local black-box deobfuscation: understand, improve and mitigate | |
Mirsky et al. | {VulChecker}: Graph-based Vulnerability Localization in Source Code | |
Partenza et al. | Automatic identification of vulnerable code: Investigations with an ast-based neural network | |
Fazlali et al. | Metamorphic malware detection using opcode frequency rate and decision tree | |
Bai et al. | Dynamic k-gram based software birthmark | |
Ji et al. | Effuzz: Efficient fuzzing by directed search for smart contracts | |
Pandey et al. | A framework for producing effective and efficient secure code through malware analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100825 Termination date: 20110925 |