CN116522321A - 反射dll检测方法、装置、设备及介质 - Google Patents

反射dll检测方法、装置、设备及介质 Download PDF

Info

Publication number
CN116522321A
CN116522321A CN202211530775.0A CN202211530775A CN116522321A CN 116522321 A CN116522321 A CN 116522321A CN 202211530775 A CN202211530775 A CN 202211530775A CN 116522321 A CN116522321 A CN 116522321A
Authority
CN
China
Prior art keywords
target
signature
dos
feature code
dll
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.)
Pending
Application number
CN202211530775.0A
Other languages
English (en)
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.)
DBAPPSecurity Co Ltd
Original Assignee
DBAPPSecurity Co Ltd
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 DBAPPSecurity Co Ltd filed Critical DBAPPSecurity Co Ltd
Priority to CN202211530775.0A priority Critical patent/CN116522321A/zh
Publication of CN116522321A publication Critical patent/CN116522321A/zh
Pending legal-status Critical Current

Links

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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

本申请公开了一种反射DLL检测方法、装置、设备及介质,涉及计算机安全技术领域,该方法包括:基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名;在与所述目标DOS签名对应的预设字节内,查找出目标特征码;利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址;判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。通过上述方案,能够确定出运行反射DLL的目标内存空间,实现了更加精准的检测反射DLL,以提高操作系统的安全性。

Description

反射DLL检测方法、装置、设备及介质
技术领域
本发明涉及计算机安全技术领域,特别涉及反射DLL检测方法、装置、设备及介质。
背景技术
木马病毒是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。一般的木马病毒程序主要是寻找计算机后门,伺机窃取被控计算机中的密码和重要文件等。可以对被控计算机实施监控、资料修改等非法操作。木马病毒具有很强的隐蔽性,可以根据黑客意图突然发起攻击。
目前为了更快的开发一款木马程序,木马程序的载荷一般不会使用shellcode(漏洞代码),因为编写shellcode耗时很久且可定制性差,因此很多木马程序都是通过反射DLL(Dynamic Link Library,即动态链接库)的方式来编写载荷和相关插件模块,并且很多木马程序的功能插件也是通过反射DLL来实现的。反射DLL其实是一种特殊的DLL,反射DLL有一个导出函数,导出函数的功能是通过解析PE(Portable Executable,即可执行文件)格式利用内存直接运行反射DLL,生成反射DLL时修改PE头,当起线程运行时跳转至导出函数的地址执行,这样反射DLL就和shellcode类似,但是编写难度相较于shellcode的编写更简单。
为了保证当前操作系统的安全,需要检测当前操作系统中是否存在被反射DLL类型的木马程序所控制。现有技术是通过普通的文件扫描方式对反射DLL类型的木马程序进行查杀,但是因为反射DLL运行是在其他进程内存或者当前进程内存中,所以文件扫描的形式无法精准的检测反射DLL。
综上可见,如何更加精准的检测反射DLL,以提高操作系统的安全性是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种反射DLL检测方法、装置、设备及介质,能够更加精准的检测反射DLL,以提高操作系统的安全性。其具体方案如下:
第一方面,本申请公开了一种反射DLL检测方法,应用于目标操作系统,包括:
基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名;
在与所述目标DOS签名对应的预设字节内,查找出目标特征码;
利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址;
判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。
可选的,所述基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名,包括:
基于当前监控线程的起始地址扫描所述当前监控线程的内存空间,并从所述当前监控线程的内存空间中筛选出满足第一预设条件的目标DOS签名。
可选的,所述从所述当前监控线程的内存空间中筛选出满足第一预设条件的目标DOS签名,包括:
从所述当前监控线程的内存空间中筛选出为0x5A4D的当前DOS签名,并判断所述当前DOS签名的文件最后页的字节数是否为0x0090;
若否则判定所述当前DOS签名为目标DOS签名。
可选的,所述从所述在与所述目标DOS签名对应的预设字节内,查找出目标特征码,包括:
在与所述目标DOS签名对应的预设字节内,查找出当前特征码,并确定与所述当前特征码对应的内存空间的PE结构体,然后获取将所述PE结构体中的文件属性和0x2000进行与运算的计算结果;
判断所述计算结果是否满足第二预设条件,若满足则判定所述当前特征码为目标特征码。
可选的,所述查找出当前特征码,包括:
查找出与64位数对应的当前特征码;
和/或,查找出与32位数对应的当前特征码。
可选的,所述利用所述目标特征码确定跳转地址,包括:
利用PE格式中的FileAlignment和SectionAlignment将与所述目标DOS签名对应的内存空间恢复至目标格式,并利用所述目标特征码中的偏移量在所述目标格式下确定跳转地址。
可选的,所述获取导出函数地址,包括:
解析所述PE格式,以获得导出函数地址。
第二方面,本申请公开了一种反射DLL检测装置,应用于目标操作系统,包括:
签名筛选模块,用于基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名;
特征码查找模块,用于在与所述目标DOS签名对应的预设字节内,查找出目标特征码;
导出函数地址获取定模块,用于利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址;
内存确定模块,用于判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的反射DLL检测方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的反射DLL检测方法的步骤。
可见,本申请基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名;在与所述目标DOS签名对应的预设字节内,查找出目标特征码;利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址;判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。由此可见,本申请通过判断内存中是否存在与跳转地址对应的二进制值,确定目标操作系统中是否将要运行反射DLL,即若存在则确定目标操作系统中将要运行反射DLL;进一步通过判断跳转地址和导出函数地址是否一致,锁定运行反射DLL的目标内存空间,因此能够更加精准的检测反射DLL,以提高操作系统的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种反射DLL检测方法流程图;
图2为本申请公开的一种具体的反射DLL检测方法流程图;
图3为本申请公开的一种反射DLL检测装置结构示意图;
图4为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
木马病毒是计算机黑客用于远程控制计算机的程序,将控制程序寄生于被控制的计算机系统中,里应外合,对被感染木马病毒的计算机实施操作。一般的木马病毒程序主要是寻找计算机后门,伺机窃取被控计算机中的密码和重要文件等。可以对被控计算机实施监控、资料修改等非法操作。木马病毒具有很强的隐蔽性,可以根据黑客意图突然发起攻击。
目前为了更快的开发一款木马程序,木马程序的载荷一般不会使用shellcode,因为编写shellcode耗时很久且可定制性差,因此很多木马程序都是通过反射DLL的方式来编写载荷和相关插件模块,并且很多木马程序的功能插件也是通过反射DLL来实现的。反射DLL其实是一种特殊的DLL,反射DLL有一个导出函数,导出函数的功能是通过解析PE格式利用内存直接运行反射DLL,生成反射DLL时修改PE头,当起线程运行时跳转至导出函数的地址执行,这样反射DLL就和shellcode类似,但是编写难度相较于shellcode的编写更简单。
为了保证当前操作系统的安全,需要检测当前操作系统中是否存在被反射DLL类型的木马程序所控制。现有技术是通过普通的文件扫描方式对反射DLL类型的木马程序进行查杀,但是因为反射DLL运行是在其他进程内存或者当前进程内存中,所以文件扫描的形式无法精准的检测反射DLL。
为此本申请相应的提供了一种反射DLL检测方案,能够更加精准的检测反射DLL,以提高操作系统的安全性。
参见图1所示,本申请实施例公开了一种反射DLL检测方法,应用于目标操作系统,包括:
步骤S11:基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名。
本实施例中,所述基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名,包括:基于当前监控线程的起始地址扫描所述当前监控线程的内存空间,并从所述当前监控线程的内存空间中筛选出满足第一预设条件的目标DOS签名。本实施例中,所述从所述当前监控线程的内存空间中筛选出满足第一预设条件的目标DOS签名,包括:从所述当前监控线程的内存空间中筛选出为0x5A4D的当前DOS签名,并判断所述当前DOS签名的文件最后页的字节数是否为0x0090;若否则判定所述当前DOS签名为目标DOS签名。程序运行时,首先注册一个windows线程,创建通知事件,定期扫描所有进程的内存块,扫描具有EXECUTE权限的内存快,然后向下匹配0x5A4D,即满足第一预设条件的目标DOS签名。需要注意的是,如果当前没有监控线程,则创建当前监控线程,然后向下匹配0x5A4D,即满足第一预设条件的目标DOS签名。0x5A4D为第一个域e_magic,被称为魔术数字,它被用于表示一个MS-DOS兼容的文件类型,所有MS-DOS兼容的可执行文件都将这个值设为0x5A4D。
步骤S12:在与所述目标DOS签名对应的预设字节内,查找出目标特征码。
本实施例中,所述从所述在与所述目标DOS签名对应的预设字节内,查找出目标特征码,包括:在与所述目标DOS签名对应的预设字节内,查找出当前特征码,并确定与所述当前特征码对应的内存空间的PE结构体,然后获取将所述PE结构体中的文件属性和0x2000进行与运算的计算结果;判断所述计算结果是否满足第二预设条件,若满足则判定所述当前特征码为目标特征码。例如在0x5A4D后面的50个字节内找到不同位数对应的当前特征码,确定当前特征码对应的内存空间PE结构体中IMAGE_FILE_HEADER(文件属性),并将IMAGE_FILE_HEADER中的Characteristics和0x2000进行与计算,与运算之后结果是0x2000,即计算结果满足第二预设条件,则判定当前特征码为目标特征码。
本实施例中,所述查找出当前特征码,包括:查找出与64位数对应的当前特征码;和/或,查找出与32位数对应的当前特征码。例如64位数对应的特征码为4881c3????????ffd3,32位数对应的特征码为81c3????????ffd3。
步骤S13:利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址。
通过特征码中的偏移计算出跳转地址,匹配跳转地址处的二进制(64位数对应0x8948,32位数对应0x8b55),如果匹配上即可判断该线程将要运行反射DLL。
步骤S14:判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。
将跳转地址与导出函数地址处的二进制进行比较,如果一样那么与目标DOS签名对应的内存空间为运行反射DLL的目标内存空间,也即是反射DLL运行之后在内存中展开的目标内存空间。
可见,本申请基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名;在与所述目标DOS签名对应的预设字节内,查找出目标特征码;利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址;判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。由此可见,本申请通过判断内存中是否存在与跳转地址对应的二进制值,确定目标操作系统中是否将要运行反射DLL,即若存在则确定目标操作系统中将要运行反射DLL;进一步通过判断跳转地址和导出函数地址是否一致,锁定运行反射DLL的目标内存空间,因此能够更加精准的检测反射DLL,以提高操作系统的安全性。
参见图2所示,本申请实施例公开了一种具体的反射DLL检测方法,应用于目标操作系统,包括:
步骤S21:基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名。
其中,关于上述步骤S21更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S22:在与所述目标DOS签名对应的预设字节内,查找出目标特征码。
其中,关于上述步骤S22更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S23:利用PE格式中的FileAlignment和SectionAlignment将与所述目标DOS签名对应的内存空间恢复至目标格式,并利用所述目标特征码中的偏移量在所述目标格式下确定跳转地址。
本实施例中,通过PE格式中的FileAlignment和SectionAlignment将与目标DOS签名对应的内存空间恢复至在磁盘上的格式,例如格式为typeA,通过目标特征码中的偏移量,在typeA中计算得到跳转地址。FileAlignment是PE磁盘文件中区块的对齐值,每一个区块从对齐值的倍数的偏移位置开始。SectionAlignment指定了节区在磁盘文件中的最小单位,FileAlignment也指定了节区在内存中的最小单位。PE文件大致可以分为两部分,即数据管理结构及数据部分。数据管理结构包含:DOS头、PE头、节表。PE头分为三个部分,分别是PE标识(IMAGE_NT_SIGNATRUE)、文件头(IMAGE_FILE_HEADER)、可选头(IMAHE_OPTION_HEADER)。PE头是固定不变的,位于DOS头部中e_ifanew字段指出位置。分为两部分:MZ头部、DOS存根,或称DOS残留,主要是用来兼容MS-DOS操作系统的,因为通常情况下,Win32下的PE程序不能在DOS下运行。
步骤S24:判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址。
其中,关于上述步骤S24更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S25:判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。
本实施例中,所述获取导出函数地址,包括:解析所述PE格式,以获得导出函数地址。
由此可见,本申请有效监控内存中是否存在反射DLL,以及是否有反射DLL类型的木马程序即将运行。可以防止windows被反射DLL类型的木马程序所控制,提高目标操作系统的安全性。
参见图3所示,本申请实施例公开了一种反射DLL检测装置,应用于目标操作系统,包括:
签名筛选模块11,用于基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名;
特征码查找模块12,用于在与所述目标DOS签名对应的预设字节内,查找出目标特征码;
导出函数地址获取定模块13,用于利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址;
内存确定模块14,用于判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。
可见,本申请基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名;在与所述目标DOS签名对应的预设字节内,查找出目标特征码;利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址;判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。由此可见,本申请通过判断内存中是否存在与跳转地址对应的二进制值,确定目标操作系统中是否将要运行反射DLL,即若存在则确定目标操作系统中将要运行反射DLL;进一步通过判断跳转地址和导出函数地址是否一致,锁定运行反射DLL的目标内存空间,因此能够更加精准的检测反射DLL,以提高操作系统的安全性。
在一些具体实施例中,所述签名筛选模块11,包括:
DOS签名筛选单元,用于基于当前监控线程的起始地址扫描所述当前监控线程的内存空间,并从所述当前监控线程的内存空间中筛选出满足第一预设条件的目标DOS签名。
在一些具体实施例中,所述DOS签名筛选单元,包括:
第一判断单元,用于从所述当前监控线程的内存空间中筛选出为0x5A4D的当前DOS签名,并判断所述当前DOS签名的文件最后页的字节数是否为0x0090;若否则判定所述当前DOS签名为目标DOS签名。
在一些具体实施例中,所述特征码查找模块12,包括:
第二判断单元,用于在与所述目标DOS签名对应的预设字节内,查找出当前特征码,并确定与所述当前特征码对应的内存空间的PE结构体,然后获取将所述PE结构体中的文件属性和0x2000进行与运算的计算结果;判断所述计算结果是否满足第二预设条件,若满足则判定所述当前特征码为目标特征码。
在一些具体实施例中,所述第二判断单元,包括:
当前特征码查找单元,用于查找出与64位数对应的当前特征码;和/或,查找出与32位数对应的当前特征码。
在一些具体实施例中,所述导出函数地址获取定模块13,包括:
跳转地址确定单元,用于利用PE格式中的FileAlignment和SectionAlignment将与所述目标DOS签名对应的内存空间恢复至目标格式,并利用所述目标特征码中的偏移量在所述目标格式下确定跳转地址。
在一些具体实施例中,所述导出函数地址获取定模块13,包括:
解析单元,用于解析所述PE格式,以获得导出函数地址。
进一步的,本申请实施例还提供了一种电子设备。图4是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图4为本申请实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现以下步骤:
基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名;
在与所述目标DOS签名对应的预设字节内,查找出目标特征码;
利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址;
判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
基于当前监控线程的起始地址扫描所述当前监控线程的内存空间,并从所述当前监控线程的内存空间中筛选出满足第一预设条件的目标DOS签名。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
从所述当前监控线程的内存空间中筛选出为0x5A4D的当前DOS签名,并判断所述当前DOS签名的文件最后页的字节数是否为0x0090;
若否则判定所述当前DOS签名为目标DOS签名。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
在与所述目标DOS签名对应的预设字节内,查找出当前特征码,并确定与所述当前特征码对应的内存空间的PE结构体,然后获取将所述PE结构体中的文件属性和0x2000进行与运算的计算结果;
判断所述计算结果是否满足第二预设条件,若满足则判定所述当前特征码为目标特征码。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
查找出与64位数对应的当前特征码;
和/或,查找出与32位数对应的当前特征码。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
利用PE格式中的FileAlignment和SectionAlignment将与所述目标DOS签名对应的内存空间恢复至目标格式,并利用所述目标特征码中的偏移量在所述目标格式下确定跳转地址。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,还可以进一步包括以下步骤:
解析所述PE格式,以获得导出函数地址。
本实施例中,电源23用于为电子设备上的各硬件设备提供工作电压;通信接口24能够为电子设备创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备执行的反射DLL检测方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由反射DLL检测过程中执行的方法步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种反射DLL检测方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种反射DLL检测方法,其特征在于,应用于目标操作系统,包括:
基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名;
在与所述目标DOS签名对应的预设字节内,查找出目标特征码;
利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址;
判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。
2.根据权利要求1所述的反射DLL检测方法,其特征在于,所述基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名,包括:
基于当前监控线程的起始地址扫描所述当前监控线程的内存空间,并从所述当前监控线程的内存空间中筛选出满足第一预设条件的目标DOS签名。
3.根据权利要求2所述的反射DLL检测方法,其特征在于,所述从所述当前监控线程的内存空间中筛选出满足第一预设条件的目标DOS签名,包括:
从所述当前监控线程的内存空间中筛选出为0x5A4D的当前DOS签名,并判断所述当前DOS签名的文件最后页的字节数是否为0x0090;
若否则判定所述当前DOS签名为目标DOS签名。
4.根据权利要求1所述的反射DLL检测方法,其特征在于,所述从所述在与所述目标DOS签名对应的预设字节内,查找出目标特征码,包括:
在与所述目标DOS签名对应的预设字节内,查找出当前特征码,并确定与所述当前特征码对应的内存空间的PE结构体,然后获取将所述PE结构体中的文件属性和0x2000进行与运算的计算结果;
判断所述计算结果是否满足第二预设条件,若满足则判定所述当前特征码为目标特征码。
5.根据权利要求4所述的反射DLL检测方法,其特征在于,所述查找出当前特征码,包括:
查找出与64位数对应的当前特征码;
和/或,查找出与32位数对应的当前特征码。
6.根据权利要求1至5任一项所述的反射DLL检测方法,其特征在于,所述利用所述目标特征码确定跳转地址,包括:
利用PE格式中的FileAlignment和SectionAlignment将与所述目标DOS签名对应的内存空间恢复至目标格式,并利用所述目标特征码中的偏移量在所述目标格式下确定跳转地址。
7.根据权利要求6所述的反射DLL检测方法,其特征在于,所述获取导出函数地址,包括:
解析所述PE格式,以获得导出函数地址。
8.一种反射DLL检测装置,其特征在于,应用于目标操作系统,包括:
签名筛选模块,用于基于当前监控线程的起始地址筛选出满足第一预设条件的目标DOS签名;
特征码查找模块,用于在与所述目标DOS签名对应的预设字节内,查找出目标特征码;
导出函数地址获取定模块,用于利用所述目标特征码确定跳转地址,并判断内存中是否存在与所述跳转地址对应的二进制值,若存在则获取导出函数地址;
内存确定模块,用于判断所述跳转地址和所述导出函数地址是否一致,若一致则确定与所述目标DOS签名对应的内存空间为运行反射DLL的目标内存空间。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的反射DLL检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的反射DLL检测方法的步骤。
CN202211530775.0A 2022-12-01 2022-12-01 反射dll检测方法、装置、设备及介质 Pending CN116522321A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211530775.0A CN116522321A (zh) 2022-12-01 2022-12-01 反射dll检测方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211530775.0A CN116522321A (zh) 2022-12-01 2022-12-01 反射dll检测方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN116522321A true CN116522321A (zh) 2023-08-01

Family

ID=87406920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211530775.0A Pending CN116522321A (zh) 2022-12-01 2022-12-01 反射dll检测方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116522321A (zh)

Similar Documents

Publication Publication Date Title
US11431676B2 (en) Method, apparatus, and system for detecting terminal security status
US11151244B2 (en) Software container profiling
US10055585B2 (en) Hardware and software execution profiling
US20070136807A1 (en) System and method for detecting unauthorized boots
US11151268B2 (en) Software container access control
JP2014509421A (ja) Usbホストシステムの拡張usbプロトコルスタックのためのセキュリティ手段
US7814549B2 (en) Direct process access
GB2494738A (en) Detecting security vulnerabilities in web applications using a black-box tester
CN102110213A (zh) 检测计算机系统内隐藏的对象
CN111177727B (zh) 漏洞检测方法及装置
US10339305B2 (en) Sub-execution environment controller
EP3652639A1 (en) System and method for validating in-memory integrity of executable files to identify malicious activity
CN111241546B (zh) 一种恶意软件行为检测方法和装置
CN110505246B (zh) 客户端网络通讯检测方法、装置及存储介质
CN114253579A (zh) 一种基于白名单机制的软件更新方法、装置及介质
CN108959915B (zh) 一种rootkit检测方法、装置及服务器
GB2550178A (en) Software container access control
CN116522321A (zh) 反射dll检测方法、装置、设备及介质
CN113760393A (zh) 一种动态链接库的防护方法、装置、设备和介质
CN113849813A (zh) 数据检测方法、装置、电子设备及存储介质
CN112199672A (zh) 账号权限提升行为的检测方法、装置及可读存储介质
CN110555307A (zh) 识别和处理伪装型系统动态库的方法、装置、设备及介质
CN114547612B (zh) 一种进程查询方法、装置、电子设备及存储介质
US20240346145A1 (en) Real-time shellcode detection and prevention
CN106709552B (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