CN111651768A - 计算机二进制程序的链接库函数名识别方法及装置 - Google Patents

计算机二进制程序的链接库函数名识别方法及装置 Download PDF

Info

Publication number
CN111651768A
CN111651768A CN202010775313.XA CN202010775313A CN111651768A CN 111651768 A CN111651768 A CN 111651768A CN 202010775313 A CN202010775313 A CN 202010775313A CN 111651768 A CN111651768 A CN 111651768A
Authority
CN
China
Prior art keywords
ida
machine learning
learning model
program
link library
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
Application number
CN202010775313.XA
Other languages
English (en)
Other versions
CN111651768B (zh
Inventor
刘京菊
赵家振
申卓祥
杨国正
李明磊
戚兰兰
梁用语
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202010775313.XA priority Critical patent/CN111651768B/zh
Publication of CN111651768A publication Critical patent/CN111651768A/zh
Application granted granted Critical
Publication of CN111651768B publication Critical patent/CN111651768B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种计算机二进制程序的链接库函数名识别方法及装置,所述方法包括:收集静态链接库;对收集的静态链接库进行归档整理;将训练好的机器学习模型编写为IDA插件并在IDA中加载使用;IDA接收用户输入的可疑恶意二进制程序,IDA调用所述将训练好的机器学习模型编写的IDA插件进行自动化分析、检测,并将检测结果在IDA界面中显示。根据本发明的方案,便于逆向分析人员针对性分析未知的恶意软件功能函数;能够在静态链接库不充分的情况下,由训练好的机器学习模型主动辨别静态链接库函数和恶意程序的功能函数,能够提高静态链接库函数识别的准确率,避免攻击者恶意构造与静态库函数签名一致的恶意函数而无法识别恶意程序。

Description

计算机二进制程序的链接库函数名识别方法及装置
技术领域
本发明涉及计算机安全领域,尤其涉及一种计算机二进制程序的链接库函数名识别方法及装置。
背景技术
随着互联网技术的持续发展,人们越来越广泛的使用计算机、互联网处理信息,随之而来的,以网络蠕虫、计算机病毒和特洛伊木马等形式存在的恶意软件对信息的安全构成了重大威胁。甚至出现恶意软件,由黑客利用它来破坏并获取敏感信息,对信息安全造成严重危险。
通常通过识别和分析恶意软件,即通过逆向工程的手段来分析恶意程序来达到准确检测查杀恶意软件的目的。为了应对杀毒软件的检测,恶意软件往往通过去除符号表,并加上静态链接等方法,混淆恶意程序调用的库函数和恶意软件的功能函数,加大了对恶意程序的分析难度,使得安全分析人员在分析恶意程序时,需要花费大量的时间来区分库函数和恶意软件的功能函数。
为解决上述问题,如图1所示, IDA Pro的插件FLIRT通过建立一个标准库函数数据库,通过遍历比较函数签名来确定未知函数是库函数还是恶意软件的功能函数。首先将收集到的标准库函数签名存储到标准库函数签名数据库中,然后对于标准库中的函数签名建立树形结构数据库,建立树形结构数据库如图2所示。当用户向IDA输入可疑二进制程序进行分析时,IDA遍历检查被反汇编的文件的每一个字节是否可以标记标准库函数的开始,最终产生检查结果并在IDA中显示,以帮助逆向分析人员进行分析。图2中划分子树的方式可以为:
例如现有4个函数签名,分别为
558BEC0EFF7604..........59595DC3558BEC0EFF7604..........59595DC3_registerbgidriver、558BEC1E078A66048A460E8B5E108B4E0AD1E9D1E980E1C0024E0C8A6E0A8A76 _biosdisk、558BEC1EB41AC55604CD211F5DC3...................................._ setdta、558BEC1EB42FCD210653B41A8B5606CD21B44E8B4E088B5604CD219C5993B41A _findfirst。
其中,变体字节显示为“…”,这4个函数签名以相同的558BEC开头,作为一个分组,划分子树如图3所示。
IDA Pro的实现方式被广大逆向分析人员接受和使用,但该实现方式存在以下问题:(1)该实现方式也没有存储所有的静态库签名文件,需要用户提供额外所需的静态库签名文件,另外,其采用的函数签名出现不同函数但函数签名一致的情况,即造成签名碰撞,如果攻击者利用签名碰撞现象,恶意构造与静态库函数签名一致的恶意函数,将导致逆向分析人员略过对该恶意函数的检测,造成漏检,可能产生严重后果;(2)该实现方式对一些函数名字开头相同但实际功能不同的函数无法准确判断。
发明内容
为解决上述技术问题,本发明提出了一种计算机二进制程序的链接库函数名识别方法及装置,所述方法及装置,用以解决现有技术中攻击者利用签名碰撞现象,恶意构造与静态库函数签名一致的恶意函数而无法识别、对一些函数名字开头相同但实际功能不同的函数无法准确判断的技术问题。
根据本发明的第一方面,提供一种计算机二进制程序的链接库函数名识别方法,所述方法包括以下步骤:
步骤S401:收集静态链接库;
步骤S402:对收集的静态链接库进行归档整理;
步骤S403:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用;
步骤S404:IDA接收用户输入的可疑恶意二进制程序,IDA调用所述将训练好的机器学习模型编写的IDA插件进行自动化分析、检测,并将检测结果在IDA界面中显示。
所述步骤S403,包括:
步骤S4031:对所述静态链接库进行特征提取;获取恶意程序样本数据,对所述恶意程序样本数据进行特征提取;
步骤S4032:将从所述静态链接库提取的特征及从恶意程序样本数据提取的特征输入机器学习网络;
步骤S4033:根据所述从所述静态链接库提取的特征及从恶意程序样本数据提取的特征对所述机器学习模型进行训练,调整所述机器学习模型的参数,得到训练好的机器学习模型;
步骤S4034:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用。
进一步地,所述步骤S404,包括:
步骤S4041:输入层获取用户输入,从用户输入中识别可疑二进制级别程序;
步骤S4042:反汇编层使用具有根据训练好的机器学习模型编写的IDA插件的IDA对所述可疑二进制级别程序进行反汇编,并遍历被反汇编的所述可疑二进制级别程序文件的每一个字节,生成反汇编代码文本;
步骤S4043:对所述反汇编代码文本进行特征提取,IDA调用根据训练好的机器学习模型编写的IDA插件进行自动化分析,输出分类判断结果,所述分类判断结果用于指示该反汇编代码文本对应的可疑二进制级别程序是已知的链接库函数或恶意软件功能函数;
步骤S4044:根据所述分类判断结果,在IDA界面中显示识别出的链接库函数名以及恶意软件功能函数名。
进一步地,所述机器学习模型采用MLP算法。
根据本发明第二方面,提供一种计算机二进制程序的链接库函数名识别装置,所述装置包括:
收集模块:收集静态链接库;
整理模块:对收集的静态链接库进行归档整理;
加载模块:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用;
显示模块:IDA接收用户输入的可疑恶意二进制程序,IDA调用所述将训练好的机器学习模型编写的IDA插件进行自动化分析、检测,并将检测结果在IDA界面中显示。
所述加载模块,包括:
第一特征提取子模块:对所述静态链接库进行特征提取;获取恶意程序样本数据,对所述恶意程序样本数据进行特征提取;
特征输入子模块:将从所述静态链接库提取的特征及从恶意程序样本数据提取的特征输入机器学习网络;
机器学习子模块:根据所述从所述静态链接库提取的特征及从恶意程序样本数据提取的特征对所述机器学习模型进行训练,调整所述机器学习模型的参数,得到训练好的机器学习模型;
加载子模块:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用。
进一步地,所述显示模块,包括:
识别子模块:用于由输入层获取用户输入,从用户输入中识别可疑二进制级别程序;
反汇编代码文本子模块:用于由反汇编层使用具有根据训练好的机器学习模型编写的IDA插件的IDA对所述可疑二进制级别程序进行反汇编,并遍历被反汇编的所述可疑二进制级别程序文件的每一个字节,生成反汇编代码文本;
第二特征提取子模块:用于对所述反汇编代码文本进行特征提取,IDA调用根据训练好的机器学习模型编写的IDA插件进行自动化分析,输出分类判断结果,所述分类判断结果用于指示该反汇编代码文本对应的可疑二进制级别程序是已知的链接库函数或恶意软件功能函数;
显示子模块:用于根据所述分类判断结果,在IDA界面中显示识别出的链接库函数名以及恶意软件功能函数名。
进一步地,所述机器学习模型采用MLP算法。
根据本发明第三方面,提供一种计算机二进制程序的链接库函数名识别系统,包括:
处理器,用于执行多条指令;
存储器,用于存储多条指令;
其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如前所述的计算机二进制程序的链接库函数名识别方法。
根据本发明第四方面,提供一种计算机可读存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如前所述的计算机二进制程序的链接库函数名识别方法。
根据本发明的上述方案,通过提取二进制级别程序的函数的特征,应用机器学习算法,将未知的函数分类为已知的链接库函数和恶意软件的功能函数,能够获得以下技术效果:1、便于逆向分析人员针对性分析未知的恶意软件功能函数;2、能够在静态链接库不充分的情况下,由训练好的机器学习模型主动辨别静态链接库函数和恶意程序的功能函数,能够提高静态链接库函数识别的准确率,避免攻击者利用签名碰撞现象,恶意构造与静态库函数签名一致的恶意函数而无法识别恶意程序。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明提供如下附图进行说明。在附图中:
图1为现有技术中IDA Pro的插件确定未知函数的实现流程图;
图2为现有技术中IDA Pro的插件建立树形结构数据库的方法流程图;
图3为现有技术中IDA Pro划分的子树示意图;
图4为本发明一个实施方式的计算机二进制级别程序的链接库函数名识别方法流程图;
图5为本发明一个实施方式的采用MLP算法训练机器学习模型示意图;
图6为本发明计算机二进制级别程序的链接库函数名识别架构图;
图7为本发明一个实施方式的计算机二进制级别程序的链接库函数名识别装置结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
定义:
函数:函数(计算机函数),是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;所谓出口,就是指函数的函数值,在计算机求得之后,由此口带回给调用它的程序。
变体字节:两个函数的全部字节或局部字节(比如前32个字节)中不一致的字节被称为变体字节
函数签名:函数的前32个字节+第33个字节到第一个变体字节为止的字节的CRC16,整体作为函数签名
静态链接库:在程序链接阶段,与汇编生成的目标文件一起被链接到可执行文件中的被引用的库,本质上是可执行代码的二进制形式。
IDA:Interactive Disassembler,交互式反汇编器,是总部位于比利时的Hex-Rayd的一家著名软件安全公司开发的反汇编软件。
IDA Pro:IDA专业版,逆向工程功能完善。
FLIRT:IDA Pro中一个可以判断静态链接库函数的插件
MLP算法:一种机器学习算法,多层神经网络算法。
首先结合图4说明为本发明一个实施方式的计算机二进制级别程序的链接库函数名识别方法流程图。如图4所示,所述方法包括以下步骤:
步骤S401:收集静态链接库;
步骤S402:对收集的静态链接库进行归档整理;
步骤S403:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用;
步骤S404:IDA接收用户输入的可疑恶意二进制程序,IDA调用所述将训练好的机器学习模型编写的IDA插件进行自动化分析、检测,并将检测结果在IDA界面中显示。
所述步骤S403:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用,具体地,结合图5说明本发明一个实施方式的采用MLP算法训练机器学习模型的方式,图5为本发明一个实施方式的采用MLP算法训练机器学习模型的示意图。
所述步骤S403,包括:
步骤S4031:对所述静态链接库进行特征提取;获取恶意程序样本数据,对所述恶意程序样本数据进行特征提取;
步骤S4032:将从所述静态链接库提取的特征及从恶意程序样本数据提取的特征输入机器学习网络;
步骤S4033:根据所述从所述静态链接库提取的特征及从恶意程序样本数据提取的特征对所述机器学习模型进行训练,调整所述机器学习模型的参数,得到训练好的机器学习模型;
步骤S4034:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用。
本实施例中,所述机器学习模型采用的算法为MLP算法。可选地,可使用要领域通用的其他机器学习算法对机器学习模型进行训练。还可以使用深度学习算法训练机器学习模型。
步骤S404:IDA接收用户输入的可疑恶意二进制程序,IDA调用所述将训练好的机器学习模型编写的IDA插件进行自动化分析、检测,并将检测结果在IDA界面中显示,具体地,结合图6说明本发明的计算机二进制级别程序的链接库函数名识别方法,图6为本发明计算机二进制级别程序的链接库函数名识别架构图。
所述步骤S404,包括:
步骤S4041:输入层获取用户输入,从用户输入中识别可疑二进制级别程序;
步骤S4042:反汇编层使用具有根据训练好的机器学习模型编写的IDA插件的IDA对所述可疑二进制级别程序进行反汇编,并遍历被反汇编的所述可疑二进制级别程序文件的每一个字节,生成反汇编代码文本;
步骤S4043:对所述反汇编代码文本进行特征提取,IDA调用根据训练好的机器学习模型编写的IDA插件进行自动化分析,输出分类判断结果,所述分类判断结果用于指示该反汇编代码文本对应的可疑二进制级别程序是已知的链接库函数或恶意软件功能函数;
步骤S4044:根据所述分类判断结果,在IDA界面中显示识别出的链接库函数名以及恶意软件功能函数名。
以下实施例说明基于本发明实施例的计算机二进制级别程序的链接库函数名识别方法的具体应用。
本实施例中,某公司计算机大规模感染病毒,逆向工程工程师在对病毒进行逆向工程分析时,发现病毒文件的符号表被去除,并且被加上了静态链接,因此常用各种反汇编软件,如IDA无法自动对病毒文件进行简单分析,导致逆向工程分析无法开展。通过应用本发明的IDA插件,可以自动分析、区分出静态链接库函数以及病毒文件的功能函数,逆向工程师只需对病毒文件的功能函数进行分析即可。
具体地,执行以下步骤:
步骤S801:获取病毒文件样本,使用具有根据训练好的机器学习模型编写的IDA插件的IDA打开病毒文件样本;
步骤S802:所述IDA加载病毒文件样本并加载所述根据训练好的机器学习模型编写的IDA插件;
步骤S803:所述IDA分析所述病毒文件样本运行时加载的全部函数,识别加载的函数为静态链接库函数或病毒样本功能函数;
步骤S804:根据分析结果,所述IDA将识别出的加载的函数进行标记,即对识别出的所有的静态链接库函数和病毒样本功能函数进行标记,并展示函数名;
步骤S805:逆向工程师分析所述病毒文件样本。
本发明实施例进一步给出一种计算机二进制级别程序的链接库函数名识别装置,如图7所示,所述装置包括:
收集模块:收集静态链接库;
整理模块:对收集的静态链接库进行归档整理;
加载模块:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用;
显示模块:IDA接收用户输入的可疑恶意二进制程序,IDA调用所述将训练好的机器学习模型编写的IDA插件进行自动化分析、检测,并将检测结果在IDA界面中显示;
所述加载模块,包括:
第一特征提取子模块:对所述静态链接库进行特征提取;获取恶意程序样本数据,对所述恶意程序样本数据进行特征提取;
特征输入子模块:将从所述静态链接库提取的特征及从恶意程序样本数据提取的特征输入机器学习网络;
机器学习子模块:根据所述从所述静态链接库提取的特征及从恶意程序样本数据提取的特征对所述机器学习模型进行训练,调整所述机器学习模型的参数,得到训练好的机器学习模型;
加载子模块:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用。
本发明实施例进一步给出一种计算机二进制级别程序的链接库函数名识别系统,包括:
处理器,用于执行多条指令;
存储器,用于存储多条指令;
其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如前所述的计算机二进制级别程序的链接库函数名识别方法。
本发明实施例进一步给出一种计算机可读存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如前所述的计算机二进制级别程序的链接库函数名识别方法。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,实体机服务器,或者网络云服务器等,需安装Windows或者Windows Server操作系统)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (8)

1.一种计算机二进制程序的链接库函数名识别方法,其特征在于,包括以下步骤:
步骤S401:收集静态链接库;
步骤S402:对收集的静态链接库进行归档整理;
步骤S403:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用;
步骤S404:IDA接收用户输入的可疑恶意二进制程序,IDA调用所述将训练好的机器学习模型编写的IDA插件进行自动化分析、检测,并将检测结果在IDA界面中显示;
所述步骤S403,包括:
步骤S4031:对所述静态链接库进行特征提取;获取恶意程序样本数据,对所述恶意程序样本数据进行特征提取;
步骤S4032:将从所述静态链接库提取的特征及从恶意程序样本数据提取的特征输入机器学习网络;
步骤S4033:根据所述从所述静态链接库提取的特征及从恶意程序样本数据提取的特征对所述机器学习模型进行训练,调整所述机器学习模型的参数,得到训练好的机器学习模型;
步骤S4034:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用。
2.如权利要求1所述的计算机二进制程序的链接库函数名识别方法,其特征在于,所述步骤S404,包括:
步骤S4041:输入层获取用户输入,从用户输入中识别可疑二进制级别程序;
步骤S4042:反汇编层使用具有根据训练好的机器学习模型编写的IDA插件的IDA对所述可疑二进制级别程序进行反汇编,并遍历被反汇编的所述可疑二进制级别程序文件的每一个字节,生成反汇编代码文本;
步骤S4043:对所述反汇编代码文本进行特征提取,IDA调用根据训练好的机器学习模型编写的IDA插件进行自动化分析,输出分类判断结果,所述分类判断结果用于指示该反汇编代码文本对应的可疑二进制级别程序是已知的链接库函数或恶意软件功能函数;
步骤S4044:根据所述分类判断结果,在IDA界面中显示识别出的链接库函数名以及恶意软件功能函数名。
3.如权利要求1所述的计算机二进制程序的链接库函数名识别方法,其特征在于,所述机器学习模型采用MLP算法。
4.一种计算机二进制程序的链接库函数名识别装置,其特征在于,所述装置包括:
收集模块:收集静态链接库;
整理模块:对收集的静态链接库进行归档整理;
加载模块:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用;
显示模块:IDA接收用户输入的可疑恶意二进制程序,IDA调用所述将训练好的机器学习模型编写的IDA插件进行自动化分析、检测,并将检测结果在IDA界面中显示;
所述加载模块,包括:
第一特征提取子模块:对所述静态链接库进行特征提取;获取恶意程序样本数据,对所述恶意程序样本数据进行特征提取;
特征输入子模块:将从所述静态链接库提取的特征及从恶意程序样本数据提取的特征输入机器学习网络;
机器学习子模块:根据所述从所述静态链接库提取的特征及从恶意程序样本数据提取的特征对所述机器学习模型进行训练,调整所述机器学习模型的参数,得到训练好的机器学习模型;
加载子模块:将训练好的机器学习模型编写为IDA插件并在IDA中加载使用。
5.如权利要求4所述的计算机二进制程序的链接库函数名识别装置,其特征在于,所述显示模块,包括:
识别子模块:用于由输入层获取用户输入,从用户输入中识别可疑二进制级别程序;
反汇编代码文本子模块:用于由反汇编层使用具有根据训练好的机器学习模型编写的IDA插件的IDA对所述可疑二进制级别程序进行反汇编,并遍历被反汇编的所述可疑二进制级别程序文件的每一个字节,生成反汇编代码文本;
第二特征提取子模块:用于对所述反汇编代码文本进行特征提取,IDA调用根据训练好的机器学习模型编写的IDA插件进行自动化分析,输出分类判断结果,所述分类判断结果用于指示该反汇编代码文本对应的可疑二进制级别程序是已知的链接库函数或恶意软件功能函数;
显示子模块:用于根据所述分类判断结果,在IDA界面中显示识别出的链接库函数名以及恶意软件功能函数名。
6.如权利要求4所述的计算机二进制程序的链接库函数名识别装置,其特征在于,所述机器学习模型采用MLP算法。
7.一种计算机二进制程序的链接库函数名识别系统,其特征在于,包括:
处理器,用于执行多条指令;
存储器,用于存储多条指令;
其中,所述多条指令,用于由所述存储器存储,并由所述处理器加载并执行如权利要求1-3之任一项所述的计算机二进制程序的链接库函数名识别方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如权利要求1-3之任一项所述的计算机二进制程序的链接库函数名识别方法。
CN202010775313.XA 2020-08-05 2020-08-05 计算机二进制程序的链接库函数名识别方法及装置 Active CN111651768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010775313.XA CN111651768B (zh) 2020-08-05 2020-08-05 计算机二进制程序的链接库函数名识别方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010775313.XA CN111651768B (zh) 2020-08-05 2020-08-05 计算机二进制程序的链接库函数名识别方法及装置

Publications (2)

Publication Number Publication Date
CN111651768A true CN111651768A (zh) 2020-09-11
CN111651768B CN111651768B (zh) 2020-10-30

Family

ID=72351889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010775313.XA Active CN111651768B (zh) 2020-08-05 2020-08-05 计算机二进制程序的链接库函数名识别方法及装置

Country Status (1)

Country Link
CN (1) CN111651768B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540787A (zh) * 2020-12-14 2021-03-23 北京知道未来信息技术有限公司 程序逆向分析方法、装置及电子设备
CN114047929A (zh) * 2022-01-12 2022-02-15 广东省科技基础条件平台中心 基于知识增强的用户定义函数识别方法、装置及介质
CN115563627A (zh) * 2022-12-06 2023-01-03 中国电子科技集团公司第三十研究所 一种基于人机协同的二进制程序漏洞静态分析方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902911A (zh) * 2014-04-16 2014-07-02 南京大学 一种基于程序结构特征的恶意程序检测方法
CN103914657A (zh) * 2014-04-16 2014-07-09 南京大学 一种基于函数特征的恶意程序检测方法
CN105138913A (zh) * 2015-07-24 2015-12-09 四川大学 一种基于多视集成学习的恶意软件检测方法
US20160306971A1 (en) * 2015-04-15 2016-10-20 Los Alamos National Security, Llc Automated identification and reverse engineering of malware
CN108446559A (zh) * 2018-02-13 2018-08-24 北京兰云科技有限公司 一种apt组织的识别方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902911A (zh) * 2014-04-16 2014-07-02 南京大学 一种基于程序结构特征的恶意程序检测方法
CN103914657A (zh) * 2014-04-16 2014-07-09 南京大学 一种基于函数特征的恶意程序检测方法
US20160306971A1 (en) * 2015-04-15 2016-10-20 Los Alamos National Security, Llc Automated identification and reverse engineering of malware
CN105138913A (zh) * 2015-07-24 2015-12-09 四川大学 一种基于多视集成学习的恶意软件检测方法
CN108446559A (zh) * 2018-02-13 2018-08-24 北京兰云科技有限公司 一种apt组织的识别方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540787A (zh) * 2020-12-14 2021-03-23 北京知道未来信息技术有限公司 程序逆向分析方法、装置及电子设备
CN114047929A (zh) * 2022-01-12 2022-02-15 广东省科技基础条件平台中心 基于知识增强的用户定义函数识别方法、装置及介质
CN115563627A (zh) * 2022-12-06 2023-01-03 中国电子科技集团公司第三十研究所 一种基于人机协同的二进制程序漏洞静态分析方法
CN115563627B (zh) * 2022-12-06 2023-03-14 中国电子科技集团公司第三十研究所 一种基于人机协同的二进制程序漏洞静态分析方法

Also Published As

Publication number Publication date
CN111651768B (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN111651768B (zh) 计算机二进制程序的链接库函数名识别方法及装置
Fass et al. Jstap: a static pre-filter for malicious javascript detection
US9876812B1 (en) Automatic malware signature extraction from runtime information
Mosli et al. Automated malware detection using artifacts in forensic memory images
JP4711949B2 (ja) マクロと実行可能なスクリプトにおいてマルウェアを検出する方法およびシステム
CN111639337B (zh) 一种面向海量Windows软件的未知恶意代码检测方法及系统
CN108985064B (zh) 一种识别恶意文档的方法及装置
Karbalaie et al. Semantic malware detection by deploying graph mining
CN105224600B (zh) 一种样本相似度的检测方法及装置
CN105069355A (zh) webshell变形的静态检测方法和装置
CN108009425A (zh) 文件检测及威胁等级判定方法、装置及系统
CN106572117A (zh) 一种WebShell文件的检测方法和装置
Palahan et al. Extraction of statistically significant malware behaviors
CN112560031B (zh) 一种勒索病毒检测方法及系统
Eskandari et al. To incorporate sequential dynamic features in malware detection engines
CN112131249A (zh) 一种攻击意图识别方法及装置
Li et al. Large-scale third-party library detection in android markets
Pirch et al. Tagvet: Vetting malware tags using explainable machine learning
CN113468524B (zh) 基于rasp的机器学习模型安全检测方法
Naeem et al. Digital forensics for malware classification: An approach for binary code to pixel vector transition
CN114491523A (zh) 恶意软件检测方法、装置、电子设备、介质及产品
KR102192196B1 (ko) Ai 기반 머신러닝 교차 검증 기법을 활용한 악성코드 탐지 장치 및 방법
Gregory Paul et al. A framework for dynamic malware analysis based on behavior artifacts
CN112163217B (zh) 恶意软件变种识别方法、装置、设备及计算机存储介质
CN114021138A (zh) 一种同源分析知识库的构建方法、同源分析方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant