CN102982043A - Pe文件的处理方法和装置 - Google Patents
Pe文件的处理方法和装置 Download PDFInfo
- Publication number
- CN102982043A CN102982043A CN2011102640403A CN201110264040A CN102982043A CN 102982043 A CN102982043 A CN 102982043A CN 2011102640403 A CN2011102640403 A CN 2011102640403A CN 201110264040 A CN201110264040 A CN 201110264040A CN 102982043 A CN102982043 A CN 102982043A
- Authority
- CN
- China
- Prior art keywords
- function
- file
- built
- dis
- assembling
- 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
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种PE文件的处理方法和装置,涉及程序检测领域,能够降低库函数对PE文件分类聚类的影响,提高分类聚类的准确性。本发明实施例的PE文件的处理方法,包括:将PE文件进行反汇编处理,得到所述PE文件的函数结点,所述函数结点将所述PE文件分为若干个函数段;加载库函数特征库,并根据所述库函数特征库中的特征逐次判断各个所述函数段是否为库函数;若所述函数段是库函数,则脱去所述函数段。
Description
技术领域
本发明涉及程序检测领域,尤其涉及一种PE文件的处理方法和装置。
背景技术
PE(Portable Execute,可移植的执行体)文件是微软Windows操作系统上的程序文件,常见的PE文件有EXE、DLL、OCX、SYS、COM等格式的文件,此外,PE文件也可以是间接被执行的文件,如DLL格式的文件。
在查找恶意程序和病毒文件的过程中,需要将PE文件进行分类聚类,即将具有相同恶意程序特征的PE文件划分到一起,将不具有恶意程序特征的PE文件划分到一起。由于PE文件中包含大量的库函数,而库函数是公用的函数,不能够区别PE文件是否为恶意程序或者病毒文件,因此,PE文件中库函数的存在给PE文件的分类聚类带来很大的不便。
发明内容
本发明的实施例所要解决的技术问题在于提供一种PE文件的处理方法和装置,能够降低库函数对PE文件分类聚类的影响,从而提高了分类聚类的准确性。
为解决上述技术问题,本发明的实施例采用如下技术方案:
一种PE文件的处理方法,包括:
将PE文件进行反汇编处理,得到所述PE文件的函数结点,所述函数结点将所述PE文件分为若干个函数段;
加载库函数特征库,并根据所述库函数特征库中的特征逐次判断各个所述函数段是否为库函数;
若所述函数段是库函数,则脱去所述函数段。
一种PE文件的处理装置,包括:
反汇编单元,用于将PE文件进行反汇编处理,得到所述PE文件的函数结点,所述函数结点将所述PE文件分为若干个函数段;
判断单元,用于加载库函数特征库,并根据所述库函数特征库中的特征逐次判断各个所述函数段是否为库函数;
脱去单元,用于在判断所述函数段是库函数后,脱去所述函数段。
本发明实施例的PE文件的处理方法和装置,通过将PE文件进行反汇编处理,得到PE文件的函数结点,再加载库函数特征库,并根据所述库函数特征库中的特征逐次判断各个所述函数段是否为库函数,最后将判断为库函数的函数段脱去,得到脱去了库函数的PE文件,由于PE文件被脱去了库函数,因此在分类聚类的过程中,简化了分类过程,消除了库函数对分类的不良影响,提高了分类聚类的效果和准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中PE文件的处理方法的流程示意图;
图2为本发明实施例中PE文件的处理装置的示意图。
具体实施方式
本发明实施例提供一种PE文件的处理方法和装置,能够降低库函数对PE文件分类聚类的影响,从而提高了分类聚类的准确性。
下面结合附图对本发明实施例做详细描述。
实施例一
本实施例提供一种PE文件的处理方法,如图1所示,该方法包括:
步骤101、将PE文件进行反汇编处理,得到所述PE文件的函数结点,所述函数结点将所述PE文件分为若干个函数段。
本实施例中对PE文件进行的反汇编处理通常分为:对分支调用进行反汇编和对导入表、导出表的内容进行反汇编,作为本发明的一种实施方式,反汇编采用的算法可以为递归算法。
其中,对分支调用进行反汇编的具体过程为:
从所述PE文件的函数入口开始,判断函数是否为调用指令或者跳转指令;
若是调用指令或者跳转指令,则根据所述调用指令或者跳转指令进行相应的函数调用或者跳转,若所述函数不是调用指令或者跳转指令,则进一步判断所述函数是否为跳转表;
若所述函数是跳转表,则根据跳转表的内容进行相应的跳转,若所述函数也不是跳转表,则对所述函数依次进行顺序反汇编。
在根据调用指令或者跳转指令或者跳转表转到相应的函数后,从此函数入口开始,重复上述步骤,直至完成所有的分支的反汇编处理。
对于另外的一种情况,对导入表、导出表的内容进行反汇编时,直接将导入表和导出表的内容解析并反汇编为函数或者数据。
在反汇编完成后,得到的函数结点将PE文件分为若干个函数段。
进一步的,为充分保护好原PE文件,本实施例的方法中,在将PE文件进行反汇编处理之前,还可以将待分析PE文件复制一份,得到PE文件副本,用于备份,以避免由于误操作等引起的文件损坏。
步骤102、加载库函数特征库,并根据所述库函数特征库中的特征逐次判断各个所述函数段是否为库函数。
在加载库函数特征库时,首先判断PE文件的厂商和版本号,并根据所述厂商和版本号匹配相应的库函数特征库,然后将所述库函数特征库加载至内存。
加载库函数特征库完成后,根据步骤101中函数节点划分得到的函数段,对每个函数段进行库函数特征库的特征匹配,来判断此函数段是否为库函数。与库函数特征库中的特征相同的函数段为库函数,反之,则不是库函数。
步骤103、若所述函数段是库函数,则脱去所述函数段。
在判断一个函数段是库函数后,则脱去所述函数段。作为本发明的一种实施方式,脱去的方法可以直接删除此函数段。此外,还可以改变此函数段的属性,将其转换为不可执行的程序文本。
进一步的,在依次匹配完所有的函数段后,根据剩下的未被脱去的函数段,对PE文件按照分类规则进行分类聚类。由于PE文件被脱去了库函数,因此在分类聚类的过程中,简化了分类过程,消除了库函数对分类的不良影响,提高了分类聚类的效果。
本实施例的PE文件的处理方法,通过先复制待分析的PE文件,得到PE文件副本,有效的保护了原始文件,然后将所述PE文件进行反汇编处理,得到所述PE文件的函数结点,再加载库函数特征库,并根据所述库函数特征库中的特征逐次判断各个所述函数段是否为库函数,最后将判断为库函数的函数段脱去,得到脱去了库函数的PE文件,由于PE文件被脱去了库函数,因此在分类聚类的过程中,简化了分类过程,消除了库函数对分类的不良影响,提高了分类聚类的效果。
实施例二
本实施例提供一种PE文件的处理装置,如图2所示,该装置包括:反汇编单元2、判断单元3和脱去单元4,其中,
反汇编单元2,用于将PE文件进行反汇编处理,得到所述PE文件的函数结点,所述函数结点将所述PE文件分为若干个函数段;
判断单元3,用于加载库函数特征库,并根据所述库函数特征库中的特征逐次判断各个所述函数段是否为库函数;
脱去单元4,用于在判断所述函数段是库函数后,脱去所述函数段。
进一步的,本实施例的PE文件的处理装置还包括:
复制单元1,用于复制待分析的PE文件,得到PE文件副本;
分类单元5,用于对脱去库函数的所述PE文件按照分类规则进行分类聚类。
所述判断单元3还用于:
判断所述PE文件的厂商和版本号,并根据所述厂商和版本号匹配相应的库函数特征库,并将所述库函数特征库加载至内存。
所述反汇编采用的算法为递归算法。
所述反汇编单元2具体用于:
从所述PE文件的函数入口开始,判断函数是否为调用指令或者跳转指令;
若所述函数不是调用指令或者跳转指令,则进一步判断所述函数是否为跳转表;
若所述函数也不是跳转表,则对所述函数依次进行顺序反汇编。
所述反汇编单元3还用于:将所述PE文件中的导入表和导出表中的内容反汇编为函数或者数据。
本实施例中各单元的工作原理和工作过程与实施例一中的类似,在此不再赘述。
本实施例的PE文件的处理装置,先通过复制单元复制待分析的PE文件,得到PE文件副本,然后通过反汇编单元将所述PE文件进行反汇编处理,得到所述PE文件的函数结点,再通过判断单元加载库函数特征库,并根据所述库函数特征库中的特征逐次判断各个所述函数段是否为库函数,最后通过脱去单元将判断为库函数的函数段脱去,得到脱去了库函数的PE文件,由于PE文件被脱去了库函数,因此在分类聚类的过程中,简化了分类过程,消除了库函数对分类的不良影响,提高了分类聚类的效果。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种PE文件的处理方法,其特征在于,包括:
将PE文件进行反汇编处理,得到所述PE文件的函数结点,所述函数结点将所述PE文件分为若干个函数段;
加载库函数特征库,并根据所述库函数特征库中的特征逐次判断各个所述函数段是否为库函数;
若所述函数段是库函数,则脱去所述函数段。
2.根据权利要求1所述的PE文件的处理方法,其特征在于,在将所述PE文件进行反汇编处理之前,还包括:
复制待分析的所述PE文件,得到PE文件副本。
3.根据权利要求1所述的PE文件的处理方法,其特征在于,在脱去所述函数段之后,还包括:
对脱去库函数的所述PE文件按照分类规则进行分类聚类。
4.根据权利要求1所述的PE文件的处理方法,其特征在于,所述加载库函数特征库,包括:
判断所述PE文件的厂商和版本号,并根据所述厂商和版本号匹配相应的库函数特征库,并将所述库函数特征库加载至内存。
5.根据权利要求1所述的PE文件的处理方法,其特征在于,所述反汇编采用的算法为递归算法。
6.根据权利要求1所述的PE文件的处理方法,其特征在于,所述将所述PE文件进行反汇编处理,包括:
从所述PE文件的函数入口开始,判断函数是否为调用指令或者跳转指令;
若所述函数不是调用指令或者跳转指令,则进一步判断所述函数是否为跳转表;
若所述函数也不是跳转表,则对所述函数依次进行顺序反汇编。
7.根据权利要求6所述的PE文件的处理方法,其特征在于,所述将所述PE文件进行反汇编处理,还包括:
将所述PE文件中的导入表和导出表中的内容反汇编为函数或者数据。
8.一种PE文件的处理装置,其特征在于,包括:
反汇编单元,用于将PE文件进行反汇编处理,得到所述PE文件的函数结点,所述函数结点将所述PE文件分为若干个函数段;
判断单元,用于加载库函数特征库,并根据所述库函数特征库中的特征逐次判断各个所述函数段是否为库函数;
脱去单元,用于在判断所述函数段是库函数后,脱去所述函数段。
9.根据权利要求8所述的PE文件的处理装置,其特征在于,还包括:
复制单元,用于复制待分析的所述PE文件,得到PE文件副本。
10.根据权利要求8所述的PE文件的处理装置,其特征在于,还包括:
分类单元,用于对脱去库函数的所述PE文件按照分类规则进行分类聚类。
11.根据权利要求8所述的PE文件的处理装置,其特征在于,所述判断单元还用于:
判断所述PE文件的厂商和版本号,并根据所述厂商和版本号匹配相应的库函数特征库,并将所述库函数特征库加载至内存。
12.根据权利要求8所述的PE文件的处理装置,其特征在于,所述反汇编采用的算法为递归算法。
13.根据权利要求8所述的PE文件的处理装置,其特征在于,所述反汇编单元具体用于:
从所述PE文件的函数入口开始,判断函数是否为调用指令或者跳转指令;
若所述函数不是调用指令或者跳转指令,则进一步判断所述函数是否为跳转表;
若所述函数也不是跳转表,则对所述函数依次进行顺序反汇编。
14.根据权利要求13所述的PE文件的处理装置,其特征在于,所述反汇编单元还用于:将所述PE文件中的导入表和导出表中的内容反汇编为函数或者数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110264040.3A CN102982043B (zh) | 2011-09-07 | 2011-09-07 | Pe文件的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110264040.3A CN102982043B (zh) | 2011-09-07 | 2011-09-07 | Pe文件的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102982043A true CN102982043A (zh) | 2013-03-20 |
CN102982043B CN102982043B (zh) | 2015-12-02 |
Family
ID=47856080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110264040.3A Active CN102982043B (zh) | 2011-09-07 | 2011-09-07 | Pe文件的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102982043B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298919A (zh) * | 2014-09-30 | 2015-01-21 | 珠海市君天电子科技有限公司 | 一种识别pe文件是否是资源文件的方法及装置 |
CN105975854A (zh) * | 2016-06-20 | 2016-09-28 | 武汉绿色网络信息服务有限责任公司 | 一种恶意文件的检测方法和装置 |
CN106127044A (zh) * | 2016-06-20 | 2016-11-16 | 武汉绿色网络信息服务有限责任公司 | 一种函数恶意程度的检测方法和装置 |
CN106446676A (zh) * | 2016-08-30 | 2017-02-22 | 北京奇虎科技有限公司 | Pe文件的处理方法及装置 |
CN110688654A (zh) * | 2018-06-20 | 2020-01-14 | 深信服科技股份有限公司 | 基于机器学习引擎生成检测模型的方法及系统及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885224A (zh) * | 2005-06-23 | 2006-12-27 | 福建东方微点信息安全有限责任公司 | 计算机反病毒防护系统和方法 |
CN102024112A (zh) * | 2010-12-17 | 2011-04-20 | 四川大学 | 基于静态特征的pe文件加壳检测方法 |
-
2011
- 2011-09-07 CN CN201110264040.3A patent/CN102982043B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1885224A (zh) * | 2005-06-23 | 2006-12-27 | 福建东方微点信息安全有限责任公司 | 计算机反病毒防护系统和方法 |
CN102024112A (zh) * | 2010-12-17 | 2011-04-20 | 四川大学 | 基于静态特征的pe文件加壳检测方法 |
Non-Patent Citations (1)
Title |
---|
邱景: "《二进制环境下的缓冲区溢出漏洞动态检测》", 《中国优秀硕士学位论文全文数据库》, no. 3, 15 March 2010 (2010-03-15) * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298919A (zh) * | 2014-09-30 | 2015-01-21 | 珠海市君天电子科技有限公司 | 一种识别pe文件是否是资源文件的方法及装置 |
CN104298919B (zh) * | 2014-09-30 | 2017-04-26 | 珠海市君天电子科技有限公司 | 一种识别pe文件是否是资源文件的方法及装置 |
CN105975854A (zh) * | 2016-06-20 | 2016-09-28 | 武汉绿色网络信息服务有限责任公司 | 一种恶意文件的检测方法和装置 |
CN106127044A (zh) * | 2016-06-20 | 2016-11-16 | 武汉绿色网络信息服务有限责任公司 | 一种函数恶意程度的检测方法和装置 |
CN105975854B (zh) * | 2016-06-20 | 2019-06-28 | 武汉绿色网络信息服务有限责任公司 | 一种恶意文件的检测方法和装置 |
CN106446676A (zh) * | 2016-08-30 | 2017-02-22 | 北京奇虎科技有限公司 | Pe文件的处理方法及装置 |
CN106446676B (zh) * | 2016-08-30 | 2019-05-31 | 北京奇虎科技有限公司 | Pe文件的处理方法及装置 |
CN110688654A (zh) * | 2018-06-20 | 2020-01-14 | 深信服科技股份有限公司 | 基于机器学习引擎生成检测模型的方法及系统及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102982043B (zh) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8561193B1 (en) | Systems and methods for analyzing malware | |
US9047466B2 (en) | Method of detecting a malware based on a white list | |
US8087061B2 (en) | Resource-reordered remediation of malware threats | |
CN102982043B (zh) | Pe文件的处理方法和装置 | |
US8453237B2 (en) | Verification of a segmented program on a parallel processing computing system | |
US20100333203A1 (en) | Methods for detecting malicious programs using a multilayered heuristics approach | |
EP3220307B1 (en) | System and method of performing an antivirus scan of a file on a virtual machine | |
KR20130044290A (ko) | 악성 소프트웨어를 분석 및 검출하기 위한 방법 및 장치 | |
US10545746B2 (en) | Biosequence-based approach to analyzing binaries | |
US9244679B1 (en) | Systems and methods for automatically identifying changes in deliverable files | |
CN102870116B (zh) | 内容匹配方法和装置 | |
CN105610903B (zh) | 分布式系统的数据节点升级方法及装置 | |
US9003398B2 (en) | Stochastic method for program security using deferred linking | |
EP2553581A1 (en) | Detection of global metamorphic malware variants using control and data flow analysis | |
US20120185939A1 (en) | Malware detection | |
CN114491566B (zh) | 一种基于代码相似性的模糊测试方法、装置及存储介质 | |
US20080127043A1 (en) | Automatic Extraction of Programming Rules | |
CN103631904A (zh) | 反病毒分析期间选择同或异步文件访问方法的系统和方法 | |
WO2017128952A1 (zh) | 堆栈的保护方法及装置 | |
WO2014044187A2 (zh) | 一种检测和清除计算机病毒的方法和装置 | |
CN102456036A (zh) | 一种操作撤销方法及系统 | |
US20060259498A1 (en) | Signature set content matching | |
US8938807B1 (en) | Malware removal without virus pattern | |
KR101860674B1 (ko) | 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램 | |
US20130275954A1 (en) | Inter-procedural unreachable code elimination with use graph |
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 |