CN101266550B - 一种恶意代码检测方法 - Google Patents
一种恶意代码检测方法 Download PDFInfo
- Publication number
- CN101266550B CN101266550B CN2008100895764A CN200810089576A CN101266550B CN 101266550 B CN101266550 B CN 101266550B CN 2008100895764 A CN2008100895764 A CN 2008100895764A CN 200810089576 A CN200810089576 A CN 200810089576A CN 101266550 B CN101266550 B CN 101266550B
- Authority
- CN
- China
- Prior art keywords
- automata
- malicious code
- malicious
- program
- behavior
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于语义的恶意代码检测方法,可以完整地刻画基于函数调用的攻击行为,并有效地识别二进制可疑程序中的恶意行为,属于互联网安全技术领域。本发明方法包含a)获得已知恶意代码的有穷状态自动机;b)获得待检测的二进制可疑程序的下推自动机;c)使用模型检验方法检测所述的下推自动机和所述有穷状态自动机之间是否存在可以同时被两者接收的输入字符串,若是,则判定上述待检测的可疑程序为恶意程序。本发明利用有穷状态自动机来描述恶意行为,结合现有的工具和方法把可疑程序转换为下推自动机,然后利用已有的模型检验方法来检测可疑程序中是否包含恶意代码。可有效地用于互联网安全技术领域的恶意代码检测。
Description
技术领域
本发明涉及一种基于语义的恶意代码检测方法,可以完整地刻画基于函数调用的攻击行为,并有效地识别二进制可疑程序中的恶意行为。属于互联网安全技术领域。
背景技术
随着网络和计算机技术的快速发展,恶意代码的种类、传播速度、感染数量和影响范围都在逐渐增强。恶意代码已经成为威胁互联网安全和计算机系统安全的重要因素,对恶意代码的分析和检测是所有安全策略中的重要环节。
传统的最为广泛使用的恶意代码检测技术是基于特征码的检测技术。它提取恶意代码中某个二进制片断作为该恶意代码的“指纹”,当反病毒软件扫描文件时,将当前的文件与病毒特征码库进行对比,通过字串匹配方式判断是否有文件片段与已知样本吻合,从而完成对目标系统进行检测和防护的目的。
但是这种方法不能识别特征未知的恶意代码,而且新病毒的特征码或“指纹”的发布永远落后于病毒的传播。而且由于不同的语法表达可能有相同的语义,因而传统的指纹匹配检测方式很容易被绕过,传统的检测方法也不能识别同一个恶意代码的多态或变形。
为了解决基于特征码检测的方法所存在的这些问题,本发明采用基于语义的恶意代码分析方法。所谓语义,是指高于语法层次的对语言的理解,它抽象的反映了语言的含义。与之不同的是,语法更注重于语言的组织与实现。因此,同一个语义可能有不同的语法表达方式来表达。
基于语义的方法使用抽象语义来分析并刻画程序的行为。这样,只需要记录恶意行为的语义层次的特征,那么通过语法层次上修改代码但是保持语义的新的恶意代码仍然能够被检测出来。而且未知的软件如果有代码片段具有恶意行为的语义特征,那么可以认为它是恶意软件。从而,基于语义的检测方法,可以对抗对语法层次上代码的修改和检测未知的恶意软件。
本发明采用有穷状态自动机来刻画恶意代码的抽象语义。
有穷状态自动机(Finite States Automata,FSA)是一个五元组(Q,A,δ,q1,F),其中Q表示状态集,并且是非空有限集合;A表示输入字母表,是所有可能的输入字母的集合;δ表示一个状态转移函数,定义域是Q×A,值域是Q,也就是说,任意的当前状态,接受任意一个输入字母,根据状态转移函数可以到达另外一个状态或者停机(当当前没有输入字母了或者状态转移函数对当前状态以及输入字母无定义时停机);q1表示状态集Q中一个特定的元素,称为初始状态;F表示Q的一个子集,称为接受状态集。准确的描述可以参考《可计算性与计算复杂性导引》(第二版),张立昂著,北京大学出版社,2004年7月,93页。
对于一组给定的输入字母,从初始状态q1开始,根据状态转移函数,最后停机在某一状态。那么根据这个自动机,可以判断一个输入字符串(输入字母序列)最终能否到达接收状态。所有能到达接收状态的输入字符串称为该有穷状态自动机接受的语言。非形式化的说,自动机的作用就是描述了不同状态之间转换的过程,能够判断一个给定的输入串能否从一个初始状态到达一些特定的状态。
任何一个有穷状态自动机都可以用一个有向图来表示,其中只需要把状态当作节点,把输入字母当作边,一个状态转移就得到从一个节点到另一个节点的边。
本发明另外使用下推自动机来刻画待检测程序的抽象语义。
下推自动机(PDA)是一个7元组(Q,A,Ω,δ,q1,X0,F)。其中,Q表示非空有穷的状态集;A表示输入字母表;Ω表示栈字母表;δ表示函数(或状态转移函数),定义域是Q×(A∪ε)×Ω,值域是Q×Ω*(Ω*代表栈字母表Ω所组成的字符串),也就是说,从任意的当前状态,接受一个输入字母或0个输入字母(ε代表空的),以及当前栈顶字母,该动作函数就可以更改当前状态,同时把栈顶的字母更改为一个字符串;q1表示初始状态;X0表示初始的栈顶字母;F表示状态集Q的一个子集,称为接受状态集。准确的描述可以参考《可计算性与计算复杂性导引》(第二版),张立昂著,北京大学出版社,2004年7月,121页。
对于一组给定的输入字母,从初始状态q1开始,根据状态转移函数,最后停机在某一状态。那么,根据这个下推自动机,可以判断一个输入字符串最终能否到达接收状态。所有能到达接收状态的输入字符串称为该下推自动机接受的语言。非形式化的说,下推自动机是在有穷状态机上加一个“先进后出”的栈。
与有穷状态自动机不同的是,下推自动机有一个栈,这个栈可以很好的模拟真实程序执行时的栈空间,从而实现真实程序中函数调用、嵌套等复杂的控制结构。因而,把程序的可能状态作为状态集Q,把所有动作作为输入字母集A,把相应的函数调用、嵌套等用栈实现,就能用一个下推自动机描述程序的全局状态空间。
发明内容
本发明的目的在于提供一种基于语义的恶意代码检测方法。
为了实现上述技术目标,本发明方法提出了一种描述规则,能够有效的描述基于函数调用的恶意行为,并且记录下常见的恶意行为的描述;然后利用现有工具反汇编待检测的可疑程序,生成程序的下推自动机;再结合现有的模型检验方法,通过已有的恶意行为描述的记录和待检测程序的下推自动机有效的检测可疑程序中是否包含恶意行为。
下面对本发明方法的技术方案作进一步描述。
本发明包含以下几个重点:
1.获得已知恶意行为的有穷状态自动机
本发明方法通过分析已知恶意行为,把恶意行为按照其功能划分为文件访问、网络传输等不同的功能构件,然后在各个构件中仔细分析恶意行为的关键步骤(比如某些API调用),并且通过这种特定的关键步骤以及它们之间的时序关系和状态关系来标识这种恶意行为。本发明使用有穷状态自动机(Finite States Automata,FSA)来描述恶意行为的关键步骤以及它们之间的时序关系,简言之,本发明采用有穷状态自动机来描述恶意行为。
每一种恶意行为都可以建立相应的有穷状态自动机描述,可以搜集各种已知的恶意行为的有穷状态自动机描述,然后建立一个类似于病毒库的恶意行为描述库,以供后续的可疑程序检测中使用。
2.获得待检测的二进制可疑程序的下推自动机
上述已知恶意行为的自动机只能描述一个特定的恶意行为需要的步骤和相应的状态转移情况。而在一个真实的程序中,一个恶意行为的步骤可能分布在程序中的不同位置,并且一个程序还包括其它许多的状态和动作。因此,需要描述程序整体的状态变化情况,也就是需要描述程序的全局状态空间。
如上所述,真实程序可能包含复杂的函数调用、嵌套等复杂的控制结构,因此在真实程序实现时采用的是一个栈结构来处理。本发明使用一个带有栈结构的自动机来描述程序的全局状态空间,也就是说可以用一个下推自动机来描述程序的全局状态空间。
对于可疑的程序(二进制可执行文件),本发明首先对其反汇编(从机器语言转化为汇编语言),然后反编译,将其转换为中间语言,接着根据中间语言生成程序的下推自动机。
从而,每一个程序都可以用一个下推自动机描述其全局状态空间,而且这一步可以通过现有的一些工具和方法实现。
3.恶意行为检测
有了已知恶意行为的自动机,以及可疑程序的下推自动机之后,接着就可以检测它们分别接受的语言有没有交集。如果有一个输入字符串能够同时被有穷状态自动机和下推自动机接受,那么,也就是说,待检测的可疑程序包含有已知的恶意行为,则判定该可疑程序为恶意程序(关于自动机接受的语言以及字符串的概念,在具体实施方式中有详细的说明)。
现有技术中已经存在通过已知的算法判断一个自动机FSA以及一个下推自动机PDA的接受语言的交集是否为空的技术。因此,这一步可以使用已有的模型检验方法,把待检测的可疑程序的下推自动机,以及已经建立的恶意行为自动机描述库当作输入,利用已有的工具进行判断。并且如果程序中存在恶意行为,则输出包含恶意行为的程序执行路径。所谓的程序执行路径,反映的是程序所执行的语句序列,可以用程序的控制流图中的路径来描述,也可以直接用程序中的语句序列来描述。
本发明利用有穷状态自动机来描述恶意行为,结合现有的工具和方法把可疑程序转换为下推自动机,然后利用已有的模型检验方法来检测可疑程序中是否包含恶意代码。与现有技术相比,本发明具有以下优点:
1.能够描述恶意行为的复杂上下文关系和控制流信息;
2.支持对恶意代码的流敏感、上下文敏感且路径敏感的函数间分析;
3.能够扩展较少的恶意行为,从而检测许多未知的恶意代码。
附图说明
图1是本发明方法的流程图
图2是描述杀死反病毒软件进程的恶意行为的有穷状态机模型
图3是描述修改注册表的恶意行为的有穷状态机模型
图4是描述击键记录的恶意行为的有穷状态机模型
图5是描述记录当前窗口的恶意行为的有穷状态机模型
图6是描述DDOS攻击的恶意行为的有穷状态机模型
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述。
一.获得已知恶意行为的有穷状态自动机
本实施例通过分析已知的恶意行为的关键步骤(比如一些API调用)以及它们之间的时序关系,判断程序状态间的变化情况,并采用有穷状态自动机描述这些恶意行为。
有穷状态自动机的构建过程如下:把已知的恶意行为在各个关键步骤之前或者之后的状态作为状态集Q,把关键步骤的动作如API调用作为输入字母表A,根据已知恶意行为的恶意代码的具体执行情况建立状态转移函数δ,而把恶意行为触发之后的状态作为接收状态集F,初始状态为q1,就可以建立一个有穷状态自动机。根据上面描述,给定一个输入字符串(程序的动作序列),能够判定最终能否到达接收状态(恶意行为被触发)。也就是说,这个自动机能够很好的描述恶意行为。
下面给出一些具体的实例,包括两种系统行为——杀死反病毒软件进程行为和自启动行为,以及两种网络行为——击键记录行为和分布式拒绝服务(DDoS)攻击行为:
(1).杀死反病毒软件进程行为
一些恶意软件为了提高自身存活率,通过实时监视系统进程,及时杀死某些著名反病毒软件或者监控软件的进程,从而达到保护自己的目的。
图2表示使用ToolHelp API系列函数实现杀死反病毒软件进程的目的的有限状态机。程序初始状态为a0,调用x=CreateToolhelp32Snapshot()取得快照句柄,程序状态从a0到达a1,然后使用Process32First()和Process32Next()枚举当前的进程,程序状态分别从a1到达a2和从a2到达a3。恶意软件通常维护一个反病毒软件进程名称的列表,枚举过程中逐一判断进程名是否存在该列表中,若存在则调用y=OpenProcess()函数取得目标进程的句柄,程序状态从a3到达a4。然后调用函数TerminateProcess(y,0)终止该进程,程序状态从a4到达a5。最后CloseHandle(x)关闭快照句柄,程序状态从a5到达终止状态a6。若程序使得该状态机到达结束状态a6,则程序中存在杀死反病毒软件进程行为。(其中x,y为自由变量,每个自由变量在程序中的每次出现有一致的取值)。
具体来说,针对这个恶意行为,设定CreateToolhelp32Snapshot(),Process32First(),Process32Next(),OpenProcess(),TerminateProcess(),CloseHandle()这几个函数调用是关键行为,然后分析其时序关系和状态转移关系,得到具体的有限状态自动机。这里的有限状态自动机的状态集Q={a0,a1,a2,a3,a4,a5,a6},输入字母表A={CreateToolhelp32Snapshot(),Process32First(),Process32Next(),OpenProcess(),TerminateProcess(),CloseHandle()},接受状态集F={a6},初始状态q1=a0,状态转移函数δ定义方式就是上面所描述的接受输入字母时状态转移的情况。具体来说就是,程序初始状态为a0,调用x=CreateToolhelp32Snapshot()取得快照句柄,程序状态从a0到达a1,那么δ(a0,CreateToolhelp32Snapshot())=a1,δ函数对其他几个的定义与之类似。
(2).自启动行为
恶意软件除了要进行传播外,还要将自身加载到目标系统当中,以实现对被植入木马的计算机进行远程控制的目的,因此通常要能够实现自启动。
图3表示通过修改注册表实现自启动的有限状态机。程序的初始状态为b0;调用RegOpenKeyEx(x,*)或RegCreateKeyEx(x,*)函数打开或创建一个键,程序状态从b0到达b1;调用RegSetValueEx(x,*)或RegDeleteKey(x,*)设置键值或删除一个键,程序状态从b1到达b2;调用RegCloseKey(x)关闭键,程序状态从b2到达终止状态b3。若程序使得状态机到达终止状态b3,则程序中存在自启动行为。(其中x为自由变量,在程序中的每次出现有一致的取值;*表示任意多个参数)。
(3).击键记录行为
恶意软件通过击键监控对被控计算机交互过程中的用户键盘输入和计算机的反应数据进行检查或记录,识别软件系统的登录操作从而获取帐号信息等。
图4表示击键记录的有限状态机。程序初始状态为c0,调用GetAsyncKeyState()函数根据虚拟键表判断按键类型,程序状态从c0到达c1;调用send()或者fsend()等将按键信息发送给控制端,程序状态从c1到达终止状态c2。若程序使得该状态机到达状态c2,则程序存在记录击键信息的行为。
图5表示窗口记录行为的有限状态机。程序初始状态为d0,调用x=GetForegroundWindow()函数得到程序当前窗口的句柄,程序状态从d0到达d1;调用GetWindowText(x,*)函数得到该窗口的标题,程序状态从d1到达d2;调用send()或者fsend()等将按键信息发送给控制端,程序状态从d2到达终止状态d3。(其中x为自由变量,在程序中的每次出现有一致的取值;*表示任意多个参数)。
这两种行为可以结合起来,比如记录在某个窗口(例如网上银行等)中所有的击键记录,包括密码及帐号等信息。
(4).分布式拒绝服务攻击行为
攻击者可以使用被恶意代码入侵的机器进行协同攻击,例如分布式拒绝服务攻击(DDos),将大量数据发送到特定的宿主或网站,使其停止对合法通信的响应(或者无法响应)。
如图6表示DDoS攻击的有限状态机。程序初始状态为e0,进入循环体(loop_entry,通常是无条件循环)使得程序状态由e0到达e1;若在状态e1时循环结束(loop_exit),则程序回到初始状态e0;在e1状态调用函数send()、sendto()等函数向目标机器发送数据,程序状态从e1到达e2;在e2状态,若调用了recv等函数接收数据,则为正常的网络通信,程序回到状态e1;若循环结束(loop_exit)使得e2到达结束状态e3。若程序使得状态机到达结束状态e3,则程序中存在拒绝服务攻击。
二、获得待检测的二进制可疑程序的下推自动机
对于待检测的可疑程序(二进制可执行文件),首先对其反汇编以及反编译,从机器语言转化为汇编语言,提取汇编语言中的控制流和数据流,将标准化的程序生成面向安全分析的中间语言,接着根据中间语言生成程序的下推自动机。
下推自动机的建立过程大概如下:在有限状态机的基础上,添加了一个栈以及一些栈符号。这个栈记录了还未结束的函数调用的返回地址,栈顶记录了下一条指令的位置;栈符号就是一些地址等信息;根据程序的具体执行情况,可以建立状态转移函数。这个下推自动机接受的一个字符串就是实际程序的一个执行路径所包含的动作序列。具体的实现方法可以参考H.Chen and D.Wagner.MOPS:an infrastructure for examining securityproperties of software.Technical Report UCB//CSD-02-1197,UC Berkeley,2002。
本发明使用标准的反汇编方法完成程序的反汇编工作,得到其中的汇编指令、数据说明、函数引入说明等信息。然后分析和识别控制流以及数据流,完成对动态API调用的识别。
在控制流分析和数据流分析的基础上,将汇编程序转换为自定义的面向安全分析的中间语言程序。将每个中间转换为抽象语法树和抽象语法树的流图,使用现有的算法建立可执行程序的PDA,以表示程序的全局状态空间。
三、恶意行为的检测步骤:
假设已经有了一个有穷状态自动机f,其所接受的语言L(f),和一个下推自动机p,其所接受的语言为L(p)。在自动机理论中,有经典算法能够根据有穷状态自动机f和下推自动机p构造出一个新的下推自动机q,使得q所接受的语言L(q)恰好等于L(f)∩L(p)。这一个算法的具体实现可以参考自动机理论的文献和书籍,例如参考《自动机理论、语言和计算导论》(美)Jhon E.Hopcroft、Rajeev Motwani、Jeffrey D.Ullman著,刘田、姜晖、王捍贫译《Introduction to Automata Theory,Languages,and Computation Second Edition》,机械工业出版社,中信出版社,2007年6月第1版第3次印刷,第199页。
上述过程求出了有穷状态自动机和下推自动机各自接受的语言的交集,且得出结论这个交集语言恰好被一个新的有穷状态自动机接受。同样使用自动机理论中的经典算法可以判定一个下推自动机接受的语言是否为空,从而就可以判断原始的有穷状态自动机和下推自动机各自接受的语言的交集是否为空。
本实施例使用现有的工具例如MOPS的model checker来做恶意行为的检测。这个模型检测工具的实现原理与上述的求交和判断非空的算法基本相似,因而它可以把待检测程序的下推自动机以及恶意行为的有穷状态自动机作为输入,能够有效的检测一个有限状态自动机与一个下推自动机的接受的语言的交集是否为空。如果为空,那么说明待检测的程序所有执行路径上,都不包含该恶意行为的动作序列;反之则说明,待检测的程序可能包含恶意行为的动作序列,这个模型检测工具就会输出包含该恶意行为的程序执行路径。相关实现过程可以参考H.Chen and D.Wagner.MOPS:an infrastructure for examining securityproperties of software.CCS’02,November 18-22,2002,Washington,DC,USA.
Claims (7)
1.一种恶意代码检测方法,其特征在于,包含如下步骤:
a)根据已知恶意行为的关键步骤以及它们之间的时序关系和状态关系获得已知恶意行为的有穷状态自动机,所述关键步骤包括杀死反病毒软件进程行为的关键步骤、自启动行为的关键步骤、击键记录行为的关键步骤、分布式拒绝服务攻击行为的关键步骤;
b)建立待检测的二进制可疑程序的下推自动机;
c)检测步骤b)所述的下推自动机接受的语言和步骤a)所述的有穷状态自动机接受的语言之间是否有交集,若是,则判定上述待检测的可疑程序为恶意程序。
2.如权利要求1所述的恶意代码检测方法,其特征在于,步骤a)所述的有穷状态自动机通过下述方法获得:
由已知恶意代码得到一个或多个恶意代码功能组件,提取每个功能组件中的关键行为及其行为时序序列,进而对其作自动机描述从而得到已知恶意行为的有穷状态自动机。
3.如权利要求2所述的恶意代码检测方法,其特征在于,将获得的已知恶意行为的有穷状态自动机合并成已知恶意行为描述库,并不断更新其中的已知恶意代码的有穷状态自动机。
4.如权利要求3所述的恶意代码检测方法,其特征在于,所述恶意行为描述库包含杀死反病毒软件进程的恶意代码的有穷状态自动机,自启动操作系统的恶意代码的有穷状态自动机,击键记录的恶意代码的有穷状态自动机,和分布式拒绝服务攻击的恶意代码的有穷状态自动机。
5.如权利要求1所述的恶意代码检测方法,其特征在于,步骤b)所述的下推自动机通过下述方法获得:
i.对待检测的二进制可疑程序执行反汇编得到汇编语言;
ii.对上述汇编语言执行反编译得到中间语言;
iii.由上述中间语言生成该二进制可疑程序的一个或多个下推自动机;
6.如权利要求1所述的恶意代码检测方法,其特征在于,步骤c)使用MOPS的model checker进行所述检测。
7.如权利要求1所述的恶意代码检测方法,其特征在于,步骤c)之后还输出可疑程序中的包含有恶意行为的执行路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100895764A CN101266550B (zh) | 2007-12-21 | 2008-04-08 | 一种恶意代码检测方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710303770 | 2007-12-21 | ||
CN200710303770.3 | 2007-12-21 | ||
CN2008100895764A CN101266550B (zh) | 2007-12-21 | 2008-04-08 | 一种恶意代码检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101266550A CN101266550A (zh) | 2008-09-17 |
CN101266550B true CN101266550B (zh) | 2011-02-16 |
Family
ID=39988982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100895764A Expired - Fee Related CN101266550B (zh) | 2007-12-21 | 2008-04-08 | 一种恶意代码检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101266550B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650445A (zh) * | 2016-12-16 | 2017-05-10 | 华东师范大学 | 一种恶意程序识别方法 |
US10114950B2 (en) | 2012-10-19 | 2018-10-30 | McAFEE, LLC. | Mobile application management |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751530B (zh) * | 2009-12-29 | 2012-08-22 | 成都市华为赛门铁克科技有限公司 | 检测漏洞攻击行为的方法及设备 |
CN101763481B (zh) * | 2010-01-15 | 2011-07-27 | 北京工业大学 | 基于lzw压缩算法的未知恶意代码检测方法 |
CN101894072B (zh) * | 2010-07-20 | 2012-04-04 | 山东省计算中心 | 一种模型检测中异常终止的检测方法 |
CN102012987B (zh) * | 2010-12-02 | 2013-03-13 | 李清宝 | 自动二进制恶意代码行为分析系统 |
US8805769B2 (en) * | 2011-12-08 | 2014-08-12 | Sap Ag | Information validation |
CN103294948B (zh) * | 2012-02-27 | 2017-02-08 | 百度在线网络技术(北京)有限公司 | 软件恶意行为的建模及判断方法、装置和移动终端 |
CN102902538B (zh) * | 2012-09-21 | 2015-11-25 | 哈尔滨工业大学深圳研究生院 | 移动互联网智能终端应用中间件安全开发方法 |
US20150193617A1 (en) * | 2012-09-25 | 2015-07-09 | Mitsubishi Electric Corporation | Signature verification device, signature verification method, and program |
CN103067391A (zh) * | 2012-12-28 | 2013-04-24 | 广东欧珀移动通信有限公司 | 一种恶意权限的检测方法、系统及设备 |
CN103916365B (zh) * | 2012-12-31 | 2018-09-11 | 西门子公司 | 导出和验证恶意代码的网络行为特征的方法和装置 |
CN103839005B (zh) * | 2013-11-22 | 2016-09-28 | 北京智谷睿拓技术服务有限公司 | 移动操作系统的恶意软件检测方法和恶意软件检测系统 |
US9171154B2 (en) * | 2014-02-12 | 2015-10-27 | Symantec Corporation | Systems and methods for scanning packed programs in response to detecting suspicious behaviors |
CN105187393B (zh) * | 2015-08-10 | 2018-05-22 | 济南大学 | 一种移动终端恶意软件网络行为重构方法及其系统 |
CN106020958A (zh) * | 2016-05-17 | 2016-10-12 | 北京金山安全软件有限公司 | 一种获取文件占用进程的方法、装置及电子设备 |
CN106845224A (zh) * | 2016-12-16 | 2017-06-13 | 华东师范大学 | 一种恶意程序识别系统 |
CN106598866A (zh) * | 2016-12-22 | 2017-04-26 | 合肥国信车联网研究院有限公司 | 一种基于smali中间语言的静态检测系统及方法 |
CN107194251B (zh) * | 2017-04-01 | 2020-02-14 | 中国科学院信息工程研究所 | Android平台恶意应用检测方法及装置 |
CN107612905A (zh) * | 2017-09-15 | 2018-01-19 | 广西电网有限责任公司电力科学研究院 | 面向设备监测分布式系统主站的恶意代码监控方法 |
CN109472145A (zh) * | 2017-12-29 | 2019-03-15 | 北京安天网络安全技术有限公司 | 一种基于图论的代码复用识别方法及系统 |
US10678916B2 (en) * | 2018-03-20 | 2020-06-09 | Didi Research America, Llc | Malicious program detection |
CN109117631A (zh) * | 2018-07-05 | 2019-01-01 | 武汉斗鱼网络科技有限公司 | 一种程序退出的方法及相关设备 |
CN109508540B (zh) * | 2018-09-12 | 2023-06-23 | 成都奥卡思微电科技有限公司 | 一种芯片安全监视方法和安全监视芯片 |
CN109684838B (zh) * | 2018-11-23 | 2020-03-27 | 电子科技大学 | 一种针对以太坊智能合约的静态代码审计系统及方法 |
CN109558140A (zh) * | 2018-11-27 | 2019-04-02 | 上海航天电子通讯设备研究所 | 一种软件设计与实现的语义一致性验证方法 |
US10958779B1 (en) * | 2019-09-23 | 2021-03-23 | Capital One Services, Llc | Machine learning dataset generation using a natural language processing technique |
CN113157353B (zh) * | 2021-04-19 | 2022-09-30 | 河南科技大学 | 一种有限状态自动机的状态锁的检测方法及系统 |
-
2008
- 2008-04-08 CN CN2008100895764A patent/CN101266550B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114950B2 (en) | 2012-10-19 | 2018-10-30 | McAFEE, LLC. | Mobile application management |
CN106650445A (zh) * | 2016-12-16 | 2017-05-10 | 华东师范大学 | 一种恶意程序识别方法 |
CN106650445B (zh) * | 2016-12-16 | 2019-05-28 | 华东师范大学 | 一种恶意程序识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101266550A (zh) | 2008-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101266550B (zh) | 一种恶意代码检测方法 | |
Han et al. | MalDAE: Detecting and explaining malware based on correlation and fusion of static and dynamic characteristics | |
CN109426722B (zh) | Sql注入缺陷检测方法、系统、设备及存储介质 | |
US7854002B2 (en) | Pattern matching for spyware detection | |
US8220048B2 (en) | Network intrusion detector with combined protocol analyses, normalization and matching | |
CN107659570A (zh) | 基于机器学习与动静态分析的Webshell检测方法及系统 | |
US20070152854A1 (en) | Forgery detection using entropy modeling | |
US8589888B2 (en) | Demand-driven analysis of pointers for software program analysis and debugging | |
Jeon et al. | AutoVAS: An automated vulnerability analysis system with a deep learning approach | |
CN105740711B (zh) | 一种基于内核对象行为本体的恶意代码检测方法及系统 | |
CN111092894A (zh) | 一种基于增量学习的webshell检测方法、终端设备及存储介质 | |
Mimura et al. | Filtering malicious javascript code with doc2vec on an imbalanced dataset | |
Alrabaee et al. | On leveraging coding habits for effective binary authorship attribution | |
Fang et al. | Effective method for detecting malicious PowerShell scripts based on hybrid features☆ | |
Jacob et al. | Malware behavioral detection by attribute-automata using abstraction from platform and language | |
CN113886832A (zh) | 智能合约漏洞检测方法、系统、计算机设备和存储介质 | |
Zhu et al. | Making smart contract classification easier and more effective | |
CN117435480A (zh) | 一种二进制文件检测方法、装置、电子设备及存储介质 | |
Zhang et al. | SVScanner: Detecting smart contract vulnerabilities via deep semantic extraction | |
Chen et al. | Black-box testing based on colorful taint analysis | |
Vani et al. | Vulnerability analysis of smart contracts | |
Ye et al. | A software analysis based vulnerability detection system for smart contracts | |
CN115758388A (zh) | 一种基于低维字节码特征的智能合约的漏洞检测方法 | |
Alipour et al. | An advanced profile hidden Markov model for malware detection | |
Liu et al. | A Malware detection method for health sensor data based on machine learning |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110216 Termination date: 20180408 |