CN105488405A - 一种基于pdb调试信息的恶意代码分析方法及系统 - Google Patents
一种基于pdb调试信息的恶意代码分析方法及系统 Download PDFInfo
- Publication number
- CN105488405A CN105488405A CN201410815171.XA CN201410815171A CN105488405A CN 105488405 A CN105488405 A CN 105488405A CN 201410815171 A CN201410815171 A CN 201410815171A CN 105488405 A CN105488405 A CN 105488405A
- Authority
- CN
- China
- Prior art keywords
- pdb
- information
- debugging
- sample
- file structure
- 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
Links
Abstract
本发明公开了一种基于PDB调试信息的恶意代码分析方法,包括:提取恶意样本的PDB信息;拆分所述PDB信息,获取相关的统计信息;提取常用操作系统和常用软件的PDB信息,并拆分后生成白样本库;利用白样本库对所述统计信息进行过滤后生成黑样本库;输出白样本库和黑样本库用于恶意代码分析。本发明还公开了一种基于PDB调试信息的恶意代码分析系统。本发明所述技术方案通过获取恶意样本的PDB信息,对PDB信息进行拆分过滤后生成黑白样本库,从而辅助恶意代码分析。
Description
技术领域
本发明涉及网络信息安全领域,尤其涉及一种基于PDB调试信息的恶意代码分析方法及系统。
背景技术
恶意代码中会包含生成过程中产生的调试信息,以PDB文件形式存在。程序数据库(PDB)文件保存着调试以及样本状态等信息,根据从PE文件中提取的调试路径分析样本,获得一些有价值的信息,如用户名、样本路径、样本名称等,有助于对恶意样本的进一步分析提供线索。
调试信息通常独立于PE程序存储,通常存储为PDB或DBG文件。程序数据库(PDB)文件保存着应用程序二进制文件的调试和项目状态信息,记录了所有的变量、主信息表的相对位置及大小,这些表可保存资源、导入、导出、重定位、调试、线程本地存储及COM运行时的有关信息。调试信息会帮助调试者分析被调试程序的内部布局,当程序重新编译时,调试信息可以正确的反映出变量和函数的修改,使用这些信息可以对程序的调试配置进行增量链接。
发明内容
本发明提供了一种基于PDB调试信息的恶意代码分析方法及系统,通过获取恶意样本的PDB信息,并进行拆分处理后得到黑样本库,从而辅助恶意代码的深入检测和分析。
本发明采用如下方法来实现:一种基于PDB调试信息的恶意代码分析方法,包括:
提取恶意样本的PDB信息;
拆分所述PDB信息,获取相关的统计信息;
提取常用操作系统和常用软件的PDB信息,并拆分后生成白样本库;
利用白样本库对所述统计信息进行过滤后生成黑样本库;
输出白样本库和黑样本库用于恶意代码分析。
进一步地,所述提取恶意样本的PDB信息包括:基于已知样本的PE文件结构提取PDB信息和基于未知样本的totalhash提取PDB信息。
进一步地,所述基于已知样本的PE文件结构提取PDB信息包括:分析PE文件结构,获取调试目录地址;基于调试目录查找PDB信息入口,并获取PDB信息。
进一步地,所述分析PE文件结构,获取调试目录地址具体为:分析PE文件结构,查找PE文件的可选头入口;获取调试目录的虚拟地址和大小;基于调试目录的虚拟地址,获取调试目录的物理地址。
进一步地,所述统计信息包括:恶意样本相关的路径、家族名、程序名或者作者。
本发明采用如下系统来实现:一种基于PDB调试信息的恶意代码分析系统,包括:
PDB信息提取模块,用于提取恶意样本的PDB信息;
统计信息获取模块,用于拆分所述PDB信息,获取相关的统计信息;
白样本库生成模块,用于提取常用操作系统和常用软件的PDB信息,并拆分后生成白样本库;
黑样本库生成模块,用于利用白样本库对所述统计信息进行过滤后生成黑样本库;
输出模块,用于输出白样本库和黑样本库用于恶意代码分析。
进一步地,所述PDB信息提取模块具体用于:基于已知样本的PE文件结构提取PDB信息和基于未知样本的totalhash提取PDB信息。
进一步地,所述基于已知样本的PE文件结构提取PDB信息包括:分析PE文件结构,获取调试目录地址;基于调试目录查找PDB信息入口,并获取PDB信息。
进一步地,所述分析PE文件结构,获取调试目录地址具体为:分析PE文件结构,查找PE文件的可选头入口;获取调试目录的虚拟地址和大小;基于调试目录的虚拟地址,获取调试目录的物理地址。
进一步地,所述统计信息包括:恶意样本相关的路径、家族名、程序名或者作者。
综上所述,本发明提供了一种基于PDB调试信息的恶意代码分析方法及系统,本发明所提供的技术方案,首先,提取恶意样本的PDB信息,并对所述PDB信息进行拆分,获取统计信息;基于已知常用的操作系统和常用软件的PDB信息,进行拆分后生成白样本库;将获取的统计信息基于白样本库进行过滤后,生成黑样本库;所述白样本库和黑样本库将用于辅助恶意代码样本的检测和深入分析。
本发明的有益效果为:本发明的技术方案通过提取与恶意样本相关的调试信息,从而获取环境信息、病毒文件名、作者等信息,基于大量的恶意样本的PDB信息做关联分析,从而获取病毒家族或者病毒样本间的关联信息,有利于更加深入的分析恶意代码。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种基于PDB调试信息的恶意代码分析方法实施例流程图;
图2为本发明提供的一种基于PDB调试信息的恶意代码分析系统实施例结构图。
具体实施方式
本发明给出了一种基于PDB调试信息的恶意代码分析方法及系统的实施例,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
本发明首先提供了一种基于PDB调试信息的恶意代码分析方法实施例,如图1所示,包括:
S101提取恶意样本的PDB信息;
S102拆分所述PDB信息,获取相关的统计信息;
S103提取常用操作系统和常用软件的PDB信息,并拆分后生成白样本库;
其中,所述常用操作系统包括:windowsxp、windows7、linux等常用的操作系统;
S104利用白样本库对所述统计信息进行过滤后生成黑样本库;
其中,所述过滤方式可以为:利用pdb全路径或者推断程序名为基准进行过滤;
S105输出白样本库和黑样本库用于恶意代码分析。
其中,所述白样本库和黑样本库的形式为,但不限于这一种形式:
StructPDB_Black(或者StructPDB_WHITE):
{
Pdb_name;//名称或路径
Numberofsamples;//样本个数
MD5ofsamples;//样本MD5
}
“netiougc.pdf”:{
“count”:9,
“md5”:[
“8cefae2396730128c0d88f97288e31e8d9b2365f”
“8cefae2396730128c0d88f97288e31e8d9b2365f”
“8cefae2396730128c0d88f97288e31e8d9b2365f”
…
]
优选地,所述提取恶意样本的PDB信息包括:基于已知样本的PE文件结构提取PDB信息和基于未知样本的totalhash提取PDB信息。
其中,所述基于未知样本的totalhash提取PDB信息包括:采用网页爬虫方式,根据MD5值从totalhash的pdb搜索结果中收集html报告,进而抓取pdb信息及相关属性。
优选地,所述基于已知样本的PE文件结构提取PDB信息包括:分析PE文件结构,获取调试目录地址;基于调试目录查找PDB信息入口,并获取PDB信息。
优选地,所述分析PE文件结构,获取调试目录地址具体为:分析PE文件结构,查找PE文件的可选头入口;获取调试目录的虚拟地址和大小;基于调试目录的虚拟地址,获取调试目录的物理地址。
其中,分析PE文件结构,查找PE文件的可选头入口,遍历可选头末尾的DataDirectory成员;
进而查找调试目录的虚拟地址和大小(IMAGE_OPTIONAL_HEADER.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG]);调试目录存储在PE文件的一节中,由IMAGE_DATA_DIRECTORY结构的队列组成;进一步获取调试目录的物理地址;获取调试目录的信息后,即可获取PDB信息的真实位置。
其中,当调试信息存储在单独的PDB文件中时,可能采用PDB2.0或PDB7.0两种结构,这个可以根据调试信息的前四个字节判断:当前四个字节的值是NB10时,采用的是PDB2.0结构,结构体为CV_INFO_PDB20;当前四个字节的值是RSDS时,采用的是PDB7.0结构,结构体为CV_INFO_PDB70。
不论为PDB2.0结构还是为PDB7.0结构,其中都有成员项PdbFileName即为PDB文件名,可能是全路径也可能是部分路径;根据CV_INFO_PDB20.PdbFileName或CV_INFO_PDB70.PdbFileName的值得到PDB信息的路径信息。
优选地,所述统计信息包括:恶意样本相关的路径、家族名、程序名或者作者。
例如:提取到的PDB信息如下:
D:\Programming\CSharp\BlackBerry\UploadDownload\bin\x86\Debug\UploadDownload.pdb
D:\\Programming\\CSharp\\BlackBerry\\UploadDownload\\bin\\x86\\Debug\\UploadDownload.pdb
f:\Projects\C#\Sayad\Source\Binder\obj\Debug\Binder.pdb_x000D_F:\Projects\C#\Sayad\Source\Client\bin\x86\Debug\Client.pdb
c:\winter\Set\Bottom\Up\value\wild\industry\Support\nearcare.pdb
c:\Users\ccm64\ccm_wa\sa1tss\tiapi_instr_agilent_4438c-1_1_0_31504\tiapi_instr_agilent_4438c\Release\tiapi_instr_agilent_e4438c.pdb
其中,通过拆分后,获取统计信息包括:程序名nearcare.pdf,用户名为winter等恶意代码信息。
本发明还提供了一种基于PDB调试信息的恶意代码分析系统实施例,如图2所示,包括:
PDB信息提取模块201,用于提取恶意样本的PDB信息;
统计信息获取模块202,用于拆分所述PDB信息,获取相关的统计信息;
白样本库生成模块203,用于提取常用操作系统和常用软件的PDB信息,并拆分后生成白样本库;
黑样本库生成模块204,用于利用白样本库对所述统计信息进行过滤后生成黑样本库;
输出模块205,用于输出白样本库和黑样本库用于恶意代码分析。
优选地,所述PDB信息提取模块具体用于:基于已知样本的PE文件结构提取PDB信息和基于未知样本的totalhash提取PDB信息。
优选地,所述基于已知样本的PE文件结构提取PDB信息包括:分析PE文件结构,获取调试目录地址;基于调试目录查找PDB信息入口,并获取PDB信息。
优选地,所述分析PE文件结构,获取调试目录地址具体为:分析PE文件结构,查找PE文件的可选头入口;获取调试目录的虚拟地址和大小;基于调试目录的虚拟地址,获取调试目录的物理地址。
优选地,所述统计信息包括:恶意样本相关的路径、家族名、程序名或者作者。
如上所述,传统的恶意代码检测方法局限于特征码匹配或者行为监控等手段,并没有利用PDB信息辅助进行深入分析。而本发明所述的技术方案通过对已知或者未知的恶意样本的PDB信息进行提取,进行适当拆分后获取统计信息,并基于已知操作系统和常用软件的PDB信息生成白样本库,将所述统计信息与白样本库进行匹配,对于无法匹配的统计信息生成黑样本库,所述白样本库和黑样本库都是基于PDB路径信息生成的,其中包括大量恶意样本的调试相关信息,可以进行关联分析,获得家族或者样本间的PDB路径特征,对恶意样本的深入分析提供一定帮助。
以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种基于PDB调试信息的恶意代码分析方法,其特征在于,包括:
提取恶意样本的PDB信息;
拆分所述PDB信息,获取相关的统计信息;
提取常用操作系统和常用软件的PDB信息,并拆分后生成白样本库;
利用白样本库对所述统计信息进行过滤后生成黑样本库;
输出白样本库和黑样本库用于恶意代码分析。
2.如权利要求1所述的方法,其特征在于,所述提取恶意样本的PDB信息包括:基于已知样本的PE文件结构提取PDB信息和基于未知样本的totalhash提取PDB信息。
3.如权利要求2所述的方法,其特征在于,所述基于已知样本的PE文件结构提取PDB信息包括:分析PE文件结构,获取调试目录地址;基于调试目录查找PDB信息入口,并获取PDB信息。
4.如权利要求3所述的方法,其特征在于,所述分析PE文件结构,获取调试目录地址具体为:分析PE文件结构,查找PE文件的可选头入口;获取调试目录的虚拟地址和大小;基于调试目录的虚拟地址,获取调试目录的物理地址。
5.如权利要求1所述的方法,其特征在于,所述统计信息包括:恶意样本相关的路径、家族名、程序名或者作者。
6.一种基于PDB调试信息的恶意代码分析系统,其特征在于,包括:
PDB信息提取模块,用于提取恶意样本的PDB信息;
统计信息获取模块,用于拆分所述PDB信息,获取相关的统计信息;
白样本库生成模块,用于提取常用操作系统和常用软件的PDB信息,并拆分后生成白样本库;
黑样本库生成模块,用于利用白样本库对所述统计信息进行过滤后生成黑样本库;
输出模块,用于输出白样本库和黑样本库用于恶意代码分析。
7.如权利要求6所述的系统,其特征在于,所述PDB信息提取模块具体用于:基于已知样本的PE文件结构提取PDB信息和基于未知样本的totalhash提取PDB信息。
8.如权利要求7所述的系统,其特征在于,所述基于已知样本的PE文件结构提取PDB信息包括:分析PE文件结构,获取调试目录地址;基于调试目录查找PDB信息入口,并获取PDB信息。
9.如权利要求8所述的系统,其特征在于,所述分析PE文件结构,获取调试目录地址具体为:分析PE文件结构,查找PE文件的可选头入口;获取调试目录的虚拟地址和大小;基于调试目录的虚拟地址,获取调试目录的物理地址。
10.如权利要求6所述的系统,其特征在于,所述统计信息包括:恶意样本相关的路径、家族名、程序名或者作者。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410815171.XA CN105488405A (zh) | 2014-12-25 | 2014-12-25 | 一种基于pdb调试信息的恶意代码分析方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410815171.XA CN105488405A (zh) | 2014-12-25 | 2014-12-25 | 一种基于pdb调试信息的恶意代码分析方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105488405A true CN105488405A (zh) | 2016-04-13 |
Family
ID=55675379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410815171.XA Pending CN105488405A (zh) | 2014-12-25 | 2014-12-25 | 一种基于pdb调试信息的恶意代码分析方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105488405A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073808A (zh) * | 2017-12-21 | 2018-05-25 | 哈尔滨安天科技股份有限公司 | 基于pdb调试信息生成攻击者画像的方法及系统 |
CN109271789A (zh) * | 2018-09-27 | 2019-01-25 | 珠海市君天电子科技有限公司 | 恶意进程检测方法、装置、电子设备及存储介质 |
CN109388946A (zh) * | 2018-09-28 | 2019-02-26 | 珠海市君天电子科技有限公司 | 恶意进程检测方法、装置、电子设备及存储介质 |
CN111858359A (zh) * | 2020-07-23 | 2020-10-30 | 珠海豹趣科技有限公司 | 可执行文件的工程代码位置获取方法和装置 |
CN112486555A (zh) * | 2020-12-07 | 2021-03-12 | 浙江诺诺网络科技有限公司 | 软件增量升级方法、装置、设备及计算机可读存储介质 |
CN112887328A (zh) * | 2021-02-24 | 2021-06-01 | 深信服科技股份有限公司 | 一种样本检测方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801030A (zh) * | 2004-12-31 | 2006-07-12 | 福建东方微点信息安全有限责任公司 | 一种区分有害程序行为的方法 |
CN101281571A (zh) * | 2008-04-22 | 2008-10-08 | 白杰 | 防御未知病毒程序的方法 |
CN101753570A (zh) * | 2008-12-18 | 2010-06-23 | 赛门铁克公司 | 用于检测恶意软件的方法和系统 |
CN103186740A (zh) * | 2011-12-27 | 2013-07-03 | 北京大学 | 一种Android恶意软件的自动化检测方法 |
US8646076B1 (en) * | 2012-09-11 | 2014-02-04 | Ahnlab, Inc. | Method and apparatus for detecting malicious shell codes using debugging events |
-
2014
- 2014-12-25 CN CN201410815171.XA patent/CN105488405A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801030A (zh) * | 2004-12-31 | 2006-07-12 | 福建东方微点信息安全有限责任公司 | 一种区分有害程序行为的方法 |
CN101281571A (zh) * | 2008-04-22 | 2008-10-08 | 白杰 | 防御未知病毒程序的方法 |
CN101753570A (zh) * | 2008-12-18 | 2010-06-23 | 赛门铁克公司 | 用于检测恶意软件的方法和系统 |
CN103186740A (zh) * | 2011-12-27 | 2013-07-03 | 北京大学 | 一种Android恶意软件的自动化检测方法 |
US8646076B1 (en) * | 2012-09-11 | 2014-02-04 | Ahnlab, Inc. | Method and apparatus for detecting malicious shell codes using debugging events |
Non-Patent Citations (1)
Title |
---|
张仁斌: "《计算机病毒与反病毒技术》", 30 June 2006, 清华大学出版社 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073808A (zh) * | 2017-12-21 | 2018-05-25 | 哈尔滨安天科技股份有限公司 | 基于pdb调试信息生成攻击者画像的方法及系统 |
CN108073808B (zh) * | 2017-12-21 | 2021-10-15 | 安天科技集团股份有限公司 | 基于pdb调试信息生成攻击者画像的方法及系统 |
CN109271789A (zh) * | 2018-09-27 | 2019-01-25 | 珠海市君天电子科技有限公司 | 恶意进程检测方法、装置、电子设备及存储介质 |
CN109271789B (zh) * | 2018-09-27 | 2021-09-28 | 珠海豹趣科技有限公司 | 恶意进程检测方法、装置、电子设备及存储介质 |
CN109388946A (zh) * | 2018-09-28 | 2019-02-26 | 珠海市君天电子科技有限公司 | 恶意进程检测方法、装置、电子设备及存储介质 |
CN111858359A (zh) * | 2020-07-23 | 2020-10-30 | 珠海豹趣科技有限公司 | 可执行文件的工程代码位置获取方法和装置 |
CN111858359B (zh) * | 2020-07-23 | 2024-01-30 | 珠海豹趣科技有限公司 | 可执行文件的工程代码位置获取方法和装置 |
CN112486555A (zh) * | 2020-12-07 | 2021-03-12 | 浙江诺诺网络科技有限公司 | 软件增量升级方法、装置、设备及计算机可读存储介质 |
CN112887328A (zh) * | 2021-02-24 | 2021-06-01 | 深信服科技股份有限公司 | 一种样本检测方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105488405A (zh) | 一种基于pdb调试信息的恶意代码分析方法及系统 | |
CN102243699B (zh) | 一种恶意代码检测方法及系统 | |
US10416970B2 (en) | Analysis device, analysis method, and analysis program | |
CN103136471B (zh) | 一种恶意Android应用程序检测方法和系统 | |
CN106294222A (zh) | 一种确定pcie设备与插槽对应关系的方法及装置 | |
CN108847957B (zh) | 发现与呈现网络应用访问信息的方法和系统 | |
WO2014043211A1 (en) | Method and system for monitoring execution of user request in distributed system | |
CN103793298A (zh) | 实现Android手机信息读取的方法 | |
CN104360837B (zh) | 取证软件中基于自定义脚本实现电子数据取证分析的方法 | |
CN103294951B (zh) | 一种基于文档型漏洞的恶意代码样本提取方法及系统 | |
CN105868169B (zh) | 一种数据采集装置、数据采集方法和系统 | |
CN108632111A (zh) | 一种基于日志的服务链路监控方法 | |
CN105095330A (zh) | 一种基于压缩包内容的文件格式识别方法及系统 | |
CN104866764A (zh) | 一种基于对象引用图的Android手机恶意软件检测方法 | |
CN103440363B (zh) | 一种fpga布局布线后仿真中异常信号溯源方法 | |
CN101661409B (zh) | 并行程序通信模式的提取方法及系统 | |
CN110011860A (zh) | 基于网络流量分析的安卓应用识别方法 | |
CN103177022A (zh) | 一种恶意文件搜索方法及装置 | |
CN106406913A (zh) | 一种从项目中提取代码的方法及系统 | |
CN103886258A (zh) | 一种病毒检测方法及装置 | |
CN102799804A (zh) | 未知文件安全性综合鉴定方法及系统 | |
CN104750812A (zh) | 一种基于网页标签分析的数据自动采集方法 | |
CN103634135B (zh) | 一种基于元数据的数据采集方法 | |
CN103856365A (zh) | 客户终端接入设备自动测试方法和系统 | |
CN106250437A (zh) | 一种电子监察前端数据采集方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160413 |
|
RJ01 | Rejection of invention patent application after publication |