CN115270118A - 一种混淆特征处理方法、装置及存储介质 - Google Patents
一种混淆特征处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN115270118A CN115270118A CN202110485686.8A CN202110485686A CN115270118A CN 115270118 A CN115270118 A CN 115270118A CN 202110485686 A CN202110485686 A CN 202110485686A CN 115270118 A CN115270118 A CN 115270118A
- Authority
- CN
- China
- Prior art keywords
- program
- seed
- function
- content
- feature
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Machine Translation (AREA)
Abstract
本发明提供了一种混淆特征处理方法、装置和存储介质;方法包括:获取正常程序和混淆程序;从正常程序中提取至少一个素材内容;素材内容用于为混淆特征处理提供素材;基于至少一个素材内容,得到至少一个待插入种子;将至少一个待插入种子插入混淆程序,得到混淆特征弱化程序。本发明能够提高混淆特征的弱化程度,从而提高混淆程序素材的识别难度。
Description
技术领域
本发明涉及计算机程序处理技术,尤其涉及一种混淆特征处理方法、装置及存储介质。
背景技术
在网络安全的研究和实践中,攻防双方激烈对抗,双方针对对手技术不断升级自身技术。针对混淆宏病毒的机器学习算法,攻击方可能的策略是通过弱化混淆特征使其失效。研究攻击方如何消除或弱化混淆技术的处理痕迹,有利于防守方有针对性地升级技术。
宏病毒是实现恶意行为的宏程序,一般以Microsoft公司的Office类型文件为载体,以VBA(Visual Basic for Applications,Visual Basic宏语言)为宏语言。对宏病毒进行混淆处理后所生成的混淆宏病毒,是传统基于病毒规则的反病毒技术难以识别的。目前,网络安全厂商一般使用机器学习算法对混淆程序素材建模,进而用所得到的机器学习模型来识别混淆宏病毒。因此,使用更难以被识别的混淆程序素材进行机器学习建模,能够得到对混淆宏病毒的识别能力更高的机器学习模型。
相关技术中,通常采用加强混淆程度、轻微混淆和嵌入高度混淆程序等方法来使混淆程序素材更难以被识别。然而,加强混淆程度的方法具有更明显的混淆特征,容易被机器学习模型识别;轻微混淆的方法对病毒规则的混淆程度较低,容易被传统基于病毒规则的反病毒技术识别;嵌入高度混淆程序只在程序的开头或结尾处插入正常代码,容易被机器学习模型采用分段检测识别。总而言之,采用以上方法所获得的混淆程序素材识别难度较低。
发明内容
本发明实施例期望提出一种混淆特征处理方法、装置及存储介质,能够提高混淆特征的弱化程度,从而提高混淆程序素材的识别难度。
本发明的技术方案是这样实现的:
本发明实施例提供一种混淆特征处理方法,所述方法包括:
获取正常程序和混淆程序;
从所述正常程序中提取至少一个素材内容;所述素材内容用于为混淆特征弱化提供素材;
基于所述至少一个素材内容,得到至少一个待插入种子;
将所述至少一个待插入种子插入所述混淆程序,得到混淆特征弱化程序。
上述方案中,所述从所述正常程序中提取至少一个素材内容,包括:
从所述正常程序中提取注释内容和函数内容中的至少一种作为所述至少一个素材内容。
上述方案中,所述基于所述至少一个素材内容,得到至少一个待插入种子,包括:
将所述注释内容的每若干部分,确定为一个注释种子,从而得到至少一个注释种子;
根据所述函数内容,得到至少一个函数种子和至少一个废代码种子中的至少一个;其中,所述废代码种子为无法被运行的程序代码;
将所述至少一个注释种子、所述至少一个函数种子和所述至少一个废代码种子中的至少一种种子,作为所述至少一个待插入种子。
上述方案中,在所述程序为VBA宏程序时,所述废代码种子的获取过程包括:
对至少一个函数体中每一个函数体的原函数定义部分进行同名变量转换,得到转换后的变量定义;其中,所述至少一个函数体是从所述函数内容中提取到的函数运行部分的内容;
将所述转换后的变量定义置于相对应的函数体的起始位置,并删除相应的所述原函数定义部分,得到至少一个转换后的函数体;
在所述至少一个转换后的函数体外添加条件恒为假的条件语句,得到所述至少一个废代码种子。
上述方案中,所述至少一个待插入种子为所述至少一个注释种子和/或所述至少一个废代码种子;
所述将所述至少一个待插入种子插入所述混淆程序,得到混淆特征弱化程序,包括:
将所述至少一个待插入种子中的至少一个注释种子和/或所述至少一个废代码种子插入到所述混淆程序中的代码行之间,得到所述混淆特征弱化程序。
上述方案中,所述至少一个待插入种子为所述至少一个函数种子;
所述将所述至少一个待插入种子插入所述混淆程序,得到混淆特征弱化程序,包括:
将所述至少一个待插入种子中的至少一个函数种子插入到所述混淆程序中的函数之间,得到所述混淆特征弱化程序。
上述方案中,所述从所述正常程序中提取注释内容和函数内容中的至少一种作为所述至少一个素材内容,包括:
从所述正常程序中提取所述注释内容;
通过语法解析器解析所述正常程序,得到抽象语法树;从所述抽象语法树中提取所述函数内容;和/或,基于函数标识构建正则表达式;通过所述正则表达式,从所述正常程序中匹配得到所述函数内容;
将所述注释内容和所述函数内容中的至少一种作为所述至少一个素材内容。
上述方案中,所述将所述至少一个待插入种子插入所述混淆程序,得到混淆特征弱化程序之后,所述方法还包括:
使用混淆特征鉴定模型,对所述混淆特征弱化程序进行鉴定;
若鉴定结果为混淆,则对所述混淆特征弱化程序重新进行混淆特征处理,直至得到鉴定结果为正常时,结束迭代,得到最终混淆特征弱化程序。
本发明实施例提供一种混淆特征处理装置,包括:
获取单元,用于获取正常程序和混淆程序;
提取单元,用于从所述正常程序中提取至少一个素材内容;所述素材内容用于为混淆特征弱化提供素材;
生成单元,基于所述至少一个素材内容,得到至少一个待插入种子;
插入单元,将所述至少一个待插入种子插入所述混淆程序,得到混淆特征弱化程序。
本发明实施例还提供一种混淆特征处理装置,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现上述方案中的混淆特征处理方法。
本发明实施例提供一种存储介质,存储有可执行指令,用于引起处理器执行时,实现上述方案中的混淆特征处理方法。
由此可见,本发明实施例提供了一种混淆特征处理方法、装置及存储介质,能够在获取正常程序和混淆程序之后,从正常程序中提取至少一个素材内容;然后,基于至少一个素材内容,得到至少一个待插入种子;最后,将至少一个待插入种子插入混淆程序,得到混淆特征弱化程序。这样,可以从正常程序提取出不具备混淆特征的素材内容,加工成多种待插入种子,并插入进具备混淆特征的混淆程序素材中,从而,能够对混淆程序素材中的混淆特征进行平均稀释性的弱化,让混淆程序素材更难以被识别。
附图说明
图1为本发明实施例提供的一种混淆特征处理方法的流程图一;
图2为本发明实施例提供的一种混淆特征处理方法的流程图二;
图3为本发明实施例提供的一种混淆特征处理方法的流程图三;
图4为本发明实施例提供的一种混淆特征处理方法的流程图四;
图5为本发明实施例提供的一种混淆特征处理方法的流程图五;
图6为本发明实施例提供的一种混淆特征处理方法的流程图六;
图7为本发明实施例提供的一种混淆特征处理方法的流程图七;
图8为本发明实施例提供的一种混淆特征处理方法的流程图八;
图9为本发明实施例提供的一种混淆特征处理装置的结构示意图一;
图10为本发明实施例提供的一种混淆特征处理装置的结构示意图二。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明的技术方案进一步详细阐述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
下列是对本发明实施例中所涉及的一些概念所作出的解释:
VBA(Visual Basic for Applications),是一种基于Visual Basic语言的脚本语言扩展,主要用于扩展Windows应用程序的功能,常用于Microsoft Offic e软件中。
宏病毒(Macro Malware),是指能够对计算机或网络造成侵害的恶意宏程序或内嵌恶意宏程序的文件,其中宏程序一般指Microsoft Office软件中使用的VBA程序。
混淆(Obfuscation),是将计算机程序转换成功能上等价但难以阅读和理解的形式的一种技术手段,常被黑客用于绕过反病毒系统。
机器学习(Machine Learning),是用数据和经验自动改进的计算机算法。
图1是本发明实施例提供的混淆特征处理方法的一个可选的流程示意图,将结合图1示出的步骤进行说明。
S101、获取正常程序和混淆程序。
本发明实施例中,混淆特征处理装置可以获取没有经过混淆处理的正常程序和经过混淆处理的混淆程序。其中,正常程序可以从正常运行的VBA宏程序代码中提取,也可以从其他数据平台获得,对此不做限制。混淆程序是将正常程序输入混淆工具经过混淆处理后而得到的,这里,混淆工具可以使用macr o_pack、Macroshop、vba-obfuscator、VBad、Veil Framework、Generate-Macro等,对此不做限制。
本发明实施例中,混淆特征处理装置所获取的混淆程序可以是由其所获取的正常程序经过混淆处理而得到的,也可以是由其他正常程序经过混淆处理而得到的,在此不做限制。也就是说,混淆特征处理装置所获取的正常程序和混淆程序可以相互对应,也可以相互不对应。
本发明实施例中,混淆工具对正常程序所进行的混淆处理,可以包括以下内容:
1、在正常程序中的函数定义及调用处,将函数名替换为随机字符串;
2、在正常程序中的变量声明及使用处,将变量名替换为随机字符串;
3、在正常程序起始处事先定义随机字符串为常量,然后,用已经定义为常量的随机字符串替换正常程序中的对应常数;
4、将正常程序中的字符串进行切分,将切分后的字符串用“&”等符号重新连接;
5、移除正常程序中注释部分的内容;
6、移除正常程序中每行代码的缩进,降低代码可读性。
可以看出,混淆处理可以在不影响正常程序功能的情况下,对正常程序中的函数名、变量名、常数和字符串进行替换,以及对正常程序的格式进行更改。这样,能够降低程序的可读性,同时,能够规避检测系统对函数名、变量名、常数和字符串的检测。从而,当程序中包含了恶意程序时,通过混淆处理,能够避开传统的基于病毒规则库的反病毒系统对恶意程序的函数名、变量名、常数和字符串等内容的检测。
但是,经过混淆处理的混淆程序,会具备混淆特征。例如,混淆处理对字符串进行切分后用“&”重新连接,这会导致程序中“&”的出现的比例(即在单位长度的程序中所出现的次数)异常升高;又如,混淆处理使用字符串替换函数名、变量名和常数,会导致程序中字符串出现的比例异常升高。通过机器学习建模,可以建立针对性的模型,从而能够对混淆特征加以识别。
可以理解的是,由于混淆程序具备了可能被识别的混淆特征,因此需要进行混淆特征处理以弱化其混淆特征;而正常程序中不具有混淆特征,因此可以作为本发明实施例中的素材内容的提取来源。
S102、从正常程序中提取至少一个素材内容;素材内容用于为混淆特征弱化提供素材。
本发明实施例中,混淆特征处理装置可以从正常程序中提取注释内容和函数内容中的至少一种作为至少一个素材内容;素材内容用于为混淆特征处理提供素材。其中,注释内容是正常程序中注释部分的内容,包括了至少一行注释。在正常程序中通常包括注释部分,注释部分用于对正常程序的功能进行解释,以及对正常程序的一些信息(如修改时间、修改人等)进行记录,不参与编译。函数内容包括了至少一个函数。每一个函数都是正常程序中的一个子程序,可以执行算术、代数、三角函数、辅助或逻辑等运算。
本发明实施例中,混淆特征处理装置在提取函数内容时,可以通过语法解析器解析正常程序,得到抽象语法树,然后,从抽象语法树中提取函数内容;也可以基于函数标识(例如“function”)构建正则表达式,然后,通过正则表达式,从正常程序中匹配函数的开头和结尾,从而得到函数内容。
需要说明的是,素材内容的提取与实际情况相关。可以根据需要只提取注释内容作为素材内容,而无需提取函数内容;也可以根据需要只提取函数内容作为素材内容,而无需提取注释内容。这些方案都在本申请的保护范围之内。
可以理解的是,从正常程序中提取的素材内容不具有混淆特征,经过处理后,加入混淆程序中,可以弱化混淆程序的混淆特征。
S103、基于至少一个素材内容,得到至少一个待插入种子。
本发明实施例中,混淆特征处理装置可以基于至少一个素材内容,得到至少一个待插入种子;其中,素材内容包括了注释内容和函数内容。
具体的,一方面,混淆特征处理装置可以将所提取的注释内容中的每若干部分,确定为一个注释种子,从而得到至少一个注释种子。其中,每若干部分中每一部分的长短可不同,比如,可以将一行作为一注释种子,同时可以选取另两行作为另一注释种子。
另一方面,混淆特征处理装置也可以将所提取的函数内容中的每一个函数,确定为一个函数种子;或者,将所提取的函数内容中的多个函数罗列,作为一个函数种子。从而得到了至少一个函数种子。
再一方面,在所述程序为VBA宏程序时,混淆特征处理装置可以从所提取的函数内容中的中提取函数体,其中,函数体为函数运行部分的内容;然后,按照正常宏程序的语法规则,对函数体的原函数定义进行同名变量转换,例如,对于某函数:
Sub foo(x As String)
{……
},
将函数定义“Sub foo(x As String)”中的参数列表部分“(x As String)”转为“Dim x As String”,这样,便得到了转换后的变量定义;而后,将转换后的变量定义置于相对应的函数体的起始位置,并删除函数体中的原函数定义,得到转换后的函数体;最后,在转换后的函数体外添加条件恒为假的条件语句,使函数体永远不能被执行,这样,得到了一个废代码种子。其中,混淆特征处理装置可以将转换后的各个函数体罗列,外加一个恒为假的条件语句,得到一个废代码种子;也可以针对每一个转换后的执行代码,外加一个恒为假的条件语句,得到多个废代码种子。对函数内容中的至少一个函数执行上述过程,便得到了至少一个废代码种子。
混淆特征处理装置可以将至少一个注释种子、至少一个函数种子和至少一个废代码种子中的至少一种种子,作为至少一个待插入种子。
需要说明的是,若素材内容只有注释内容,则对应的仅仅获取注释种子,无需提取函数种子和/或废代码种子部分;若素材内容只有函数内容,则对应的仅仅获取函数种子和/或废代码种子,无需提取注释种子部分;也可以根据实际需求选择性提取注释种子、函数种子和废代码种子中的至少一个,以作为待插入种子,这些方案都在本申请的保护范围之内。
可以理解的是,基于所提取的素材内容,确定出包括注释种子、函数种子和废代码种子的多种待插入种子,能够在将待插入种子插入混淆程序后,从更多维度地对混淆程序的混淆特征进行弱化,提升了混淆特征弱化的效果。
S104、将至少一个待插入种子插入混淆程序,得到混淆特征弱化程序。
本发明实施例中,混淆特征处理装置可以将至少一个待插入种子中的至少一个注释种子插入到混淆程序中的代码行之间;和/或,将至少一个待插入种子中的至少一个函数种子插入到混淆程序中的函数之间,如果函数没有定义,则直接在程序的起始处插入至少一个函数种子;和/或,将至少一个待插入种子中的至少一个废代码种子插入到混淆程序的代码行之间。从而,得到混淆特征弱化程序。
可以理解的是,在混淆程序中插入不具备混淆特征的待插入种子,能够对混淆程序的混淆特征进行弱化,降低混淆特征被识别的几率。进一步的,在混淆程序的代码行和函数之间插入待插入种子,能够使待插入种子更细粒度地分布于混淆程序之中,这样,避免了被机器学习模型采用分段检测等方法识别出混淆特征,从而,提高了对混淆特征的弱化效果。
在本发明的一些实施例中,可以通过图2示出的S1021来实现上述图1示出的S102,将结合各步骤进行说明。
S1021、从正常程序中提取注释内容和函数内容中的至少一种作为至少一个素材内容。
本发明实施例中,混淆特征处理装置可以从正常程序中提取注释内容和函数内容中的至少一种作为至少一个素材内容。其中,注释内容是正常程序中注释部分的内容,包括了至少一行注释。在正常程序中通常包括注释部分,注释部分用于对正常程序的功能进行解释,以及对正常程序的一些信息(如修改时间、修改人等)进行记录,不参与编译。函数内容包括了至少一个函数。每一个函数都是正常程序中的一个子程序,可以执行算术、代数、三角函数、辅助或逻辑等运算。
需要说明的是,素材内容的提取与实际情况相关。可以根据需要只提取注释内容作为素材内容,而无需提取函数内容;也可以根据需要只提取函数内容作为素材内容,而无需提取注释内容。这些方案都在本申请的保护范围之内。
可以理解的是,从正常程序中提取的素材内容不具有混淆特征,经过处理后,加入混淆程序中,可以弱化混淆程序的混淆特征。
在本发明的一些实施例中,可以通过图3示出的S1031-S1033来实现上述图1示出的S103,将结合各步骤进行说明。
S1031、将注释内容的每若干部分,确定为一个注释种子,从而得到至少一个注释种子。
本发明实施例中,混淆特征处理装置可以将所提取的注释内容中的每若干部分,确定为一个注释种子,从而得到至少一个注释种子。其中,每若干部分中每一部分的长短可不同,比如,可以将一行作为一注释种子,同时可以选取另两行作为另一注释种子。
可以理解的是,将注释种子作为待插入种子插入混淆程序,能够从注释的维度对混淆特征进行稀释,提高对混淆特征的弱化效果。
S1032、根据函数内容,得到至少一个函数种子和至少一个废代码种子中的至少一个;其中,废代码种子为无法被运行的程序代码。
本发明实施例中,混淆特征处理装置可以根据函数内容,得到至少一个函数种子和至少一个废代码种子中的至少一个。
在本发明实施例中,一方面,混淆特征处理装置可以将所提取的函数内容中的每一个函数,确定为一个函数种子;或者,将所提取的函数内容中的多个函数罗列,作为一个函数种子。
另一方面,混淆特征处理装置在所述程序为VBA程序时,混淆特征处理装置可以从所提取的函数内容中提取函数运行部分的内容,作为函数体;然后,将函数体转化为无法被运行的程序代码,得到废代码种子。
S1033、将至少一个注释种子、至少一个函数种子和至少一个废代码种子中的至少一种种子,作为至少一个待插入种子。
本发明实施例中,混淆特征处理装置可以将至少一个注释种子、至少一个函数种子和至少一个废代码种子中的至少一种种子,作为至少一个待插入种子。
需要说明的是,若素材内容只有注释内容,则对应的仅仅获取注释种子,无需提取函数种子和/或废代码种子部分;若素材内容只有函数内容,则对应的仅仅获取函数种子和/或废代码种子,无需提取注释种子部分;也可以根据实际需求选择性提取注释种子、函数种子和废代码种子中的至少一个,以作为待插入种子,这些方案都在本申请的保护范围之内。
可以理解的是,基于所提取的素材内容,确定出包括注释种子、函数种子和废代码种子的多种待插入种子,能够在将待插入种子插入混淆程序后,从更多维度地对混淆程序的混淆特征进行弱化,提升了混淆特征处理的效果。
在本发明的一些实施例中,可以通过图4示出的S201-S203来实现上述S1032,将结合各步骤进行说明。
S201、对至少一个函数体中每一个函数体的原函数定义部分进行同名变量转换,得到转换后的变量定义;其中,至少一个函数体是从函数内容中提取到的函数运行部分的内容。
本发明实施例中,混淆特征处理装置可以从函数内容中的至少一个函数中提取函数运行部分的内容,作为至少一个函数体。而后,按照正常程序的语法规则,对至少一个函数体中每一个函数体的原函数定义进行同名变量转换,例如,将函数定义“Sub foo(x AsString)”中的参数列表部分“(x As String)”转为“Dim x As String”,这样,得到至少一个转换后的变量定义。
S202、将转换后的变量定义置于相对应的函数体的起始位置,并删除相应的原函数定义部分,得到至少一个转换后的函数体。
本发明实施例中,混淆特征处理装置可以将至少一个转换后的变量定义中每一个转换后的变量定义置于相对应的函数体的起始位置,并删除至少一个函数体中的原函数定义,得到至少一个转换后的函数体。
S203、在至少一个转换后的函数体外添加条件恒为假的条件语句,得到至少一个废代码种子。
本发明实施例中,混淆特征处理装置可以在至少一个转换后的函数体中每一个转换后的函数体外添加条件恒为假的条件语句,使函数体永远不能被执行,这样,得到每一个废代码种子,从而得到了至少一个废代码种子。
可以理解的是,通过对函数体进行处理后得到的废代码种子,由于永远不能被执行,从而能够更细粒度插入混淆程序的代码行之间,避免了被机器学习模型采用分段检测等方法识别出混淆特征,提升了对混淆特征的弱化效果。
在本发明的一些实施例中,至少一个待插入种子为至少一个注释种子和/或至少一个废代码种子;可以通过图5示出的S1041来实现上述图1示出的S104,将结合各步骤进行说明。
S1041、将至少一个待插入种子中的至少一个注释种子和/或至少一个废代码种子插入到混淆程序中的代码行之间,得到混淆特征弱化程序。
本发明实施例中,混淆特征处理装置可以将至少一个待插入种子中的至少一个注释种子和/或至少一个废代码种子插入到混淆程序中的代码行之间,得到混淆特征弱化程序。
可以理解的是,由于注释种子和废代码种子不会被程序执行,因此可以更细粒度地插入到混淆程序的代码行之间,避免了被机器学习模型采用分段检测等方法识别出混淆特征,从而提高对混淆特征的弱化效果。
在本发明的一些实施例中,至少一个待插入种子为至少一个函数种子;可以通过图5示出的S1042来实现上述图1示出的S104,将结合各步骤进行说明。
S1042、将至少一个待插入种子中的至少一个函数种子插入到混淆程序中的函数之间,得到混淆特征弱化程序。
本发明实施例中,混淆特征处理装置可以将至少一个待插入种子中的至少一个函数种子插入到混淆程序中的函数之间,得到混淆特征弱化程序。
可以理解的是,将函数种子细粒度地插入混淆程序的函数之间,避免了被机器学习模型采用分段检测等方法识别出混淆特征,从而提高对混淆特征的弱化效果。
在本发明的一些实施例中,可以通过S1022-S1024来实现上述S1021,将结合各步骤进行说明。
S1022、从正常程序中提取注释内容。
本发明实施例中,混淆特征处理装置可以从正常程序中提取注释内容。
S1023、通过语法解析器解析正常程序,得到抽象语法树;从抽象语法树中提取函数内容;和/或,基于函数标识构建正则表达式;通过正则表达式,从正常程序中匹配得到函数内容。
本发明实施例中,混淆特征处理装置可以通过语法解析器解析正常程序,得到抽象语法树,然后,从抽象语法树中提取函数内容;和/或,基于函数标识构建正则表达式,然后,通过正则表达式,从正常程序中匹配得到函数内容。
S1024、将注释内容和函数内容中的至少一种作为至少一个素材内容。
本发明实施例中,混淆特征处理装置可以将注释内容和函数内容中的至少一种作为至少一个素材内容。
在本发明的一些实施例中,上述图1示出的S104之后还包括图6示出的S105-S106,将结合各步骤进行说明。
S105、使用混淆特征鉴定模型,对混淆特征弱化程序进行鉴定。
本发明实施例中,混淆特征处理装置可以使用混淆特征鉴定模型,对混淆特征弱化程序进行鉴定。其中,混淆特征鉴定模型可以是任意的根据机器学习算法建模的混淆特征鉴定模型,包括第三方基于机器学习算法的反病毒系统。
可以理解的是,使用任意混淆特征鉴定模型对混淆特征弱化程序进行鉴定,可以从多角度对混淆特征弱化程序的弱化效果进行鉴定,从而获取全面的鉴定结果信息。
S106、若鉴定结果为混淆,则对混淆特征弱化程序重新进行混淆特征处理,直至得到鉴定结果为正常时,结束迭代,得到最终混淆特征弱化程序。
本发明实施例中,混淆特征处理装置经过对混淆特征弱化程序鉴定后,如果鉴定结果为混淆,则说明混淆特征处理的效果还不足,混淆特征仍然明显,需要进一步进行弱化处理,因此,对混淆特征弱化程序重新进行混淆特征弱化,而后再次对所得到的混淆特征弱化程序进行鉴定,如此迭代。直至得到鉴定结果为正常时,结束迭代,得到了最终混淆特征弱化程序。
本发明实施例中,对混淆特征弱化程序重新进行的混淆特征处理,可以是从正常程序中重新提取素材内容,加工后得到新的待插入种子,并将新的待插入种子插入到混淆特征弱化程序中;也可以是将已经得到的待插入种子中的部分或者全部再次插入到混淆特征弱化程序中,在此不做限制。
可以理解的是,对鉴定结果为混淆的混淆特征弱化程序迭代进行混淆特征处理,能够不断提高混淆特征弱化处理的效果,从而得到混淆特征被足够弱化的最终混淆特征弱化程序,即令人足够满意的结果。
图7是本发明实施例提供的混淆特征处理方法的一个可选的流程示意图,将结合图7示出的步骤进行说明。
S501、获取正常宏程序。
本发明实施例中,混淆特征处理装置可以获取没有经过混淆处理的正常宏程序。正常宏程序可以从正常运行的程序代码中提取,也可以从其他数据平台获得,对此不做限制。
S502、获取混淆宏程序
本发明实施例中,混淆特征处理装置可以获取经过混淆处理的混淆宏程序。混淆宏程序是将正常宏程序输入混淆工具经过混淆处理后而得到的,这里,混淆工具可以使用macro_pack、Macroshop、vba-obfuscator、VBad、Veil Frame work、Generate-Macro等,对此不做限制。混淆特征处理装置所获取的混淆宏程序可以是由其所获取的正常宏程序经过混淆处理而得到的,也可以是由其他正常宏程序经过混淆处理而得到的,在此不做限制。也就是说,混淆特征处理装置所获取的正常宏程序和混淆宏程序可以相互对应,也可以相互不对应。
S503、从正常宏程序中提取注释内容。
本发明实施例中,混淆特征处理装置可以从正常宏程序中提取注释内容。注释内容是正常宏程序中注释部分的内容,包括了至少一行注释。在正常宏程序中通常包括注释部分,注释部分用于对正常宏程序的功能进行解释,以及对正常宏程序的一些信息(如修改时间、修改人等)进行记录,不参与编译。
S504、从正常宏程序中提取函数内容。
本发明实施例中,混淆特征处理装置可以从正常宏程序中提取函数内容。函数内容包括了至少一个函数。每一个函数都是正常宏程序中的一个子程序,可以执行算术、代数、三角函数、辅助或逻辑等运算。
本发明实施例中,混淆特征处理装置在提取函数内容时,可以通过语法解析器解析正常宏程序,得到抽象语法树,然后,从抽象语法树中提取函数内容;也可以基于函数标识(例如“function”)构建正则表达式,然后,通过正则表达式,从正常宏程序中匹配函数的开头和结尾,从而得到函数内容。
S505、根据注释内容得到注释种子。
本发明实施例中,混淆特征处理装置可以将所提取的注释内容中的每一行注释,确定为一个注释种子。
S506、根据函数内容得到函数种子。
本发明实施例中,混淆特征处理装置可以将函数内容中的每一个函数,确定为一个函数种子。
S507、根据函数内容得到废代码种子。
本发明实施例中,混淆特征处理装置可以从函数内容中的一个函数中提取函数体;然后,按照正常宏程序的语法规则,对函数体的原函数定义进行同名变量转换,例如,将函数定义“Sub foo(x As String)”中的参数列表部分“(xAs String)”转为“Dim x AsString”,这样,得到转换后的变量定义;而后,将转换后的变量定义置于相对应的函数体的起始位置,并删除函数体中的原函数定义,得到转换后的函数体;最后,在转换后的函数体外添加条件恒为假的条件语句,使函数体永远不能被执行,这样,便得到了一个废代码种子。对函数内容中的至少一个函数执行上述过程,便得到了至少一个废代码种子。
S508、向混淆宏程序中插入注释种子。
本发明实施例中,混淆特征处理装置可以将注释种子插入到混淆宏程序中的代码行之间。
S509、向混淆宏程序中插入函数种子。
本发明实施例中,混淆特征处理装置可以将函数种子插入到混淆宏程序中的函数之间,如果函数没有定义,则直接在宏程序的起始处插入函数种子。
S510、向混淆宏程序中插入废代码种子。
本发明实施例中,混淆特征处理装置可以将废代码种子插入到混淆宏程序的代码行之间。
S511、得到混淆特征弱化宏程序。
本发明实施例中,混淆特征处理装置在向混淆宏程序中插入注释种子、函数种子和废代码种子之后,得到了混淆特征弱化宏程序。
S512、对混淆特征弱化宏程序进行鉴定。
本发明实施例中,混淆特征处理装置可以通过机器学习模型对混淆特征弱化宏程序进行鉴定。如果鉴定为正常,说明混淆特征已经得到足够弱化,将混淆特征弱化宏程序作为最终混淆特征弱化宏程序;如果鉴定为混淆,则说明混淆特征弱化程度还不足,则重复执行S508-S509,向混淆宏程序中插入注释种子、函数种子和废代码种子,直到鉴定为正常。
S513、得到最终混淆特征弱化宏程序。
本发明实施例中,混淆特征处理装置在机器学习模型对混淆特征弱化宏程序进行鉴定为正常后,将混淆特征弱化宏程序作为最终混淆特征弱化宏程序。
图8是本发明实施例提供的混淆特征处理方法的一个可选的流程示意图,将结合图8示出的步骤进行说明。
S601、用混淆工具生成混淆宏程序。
本发明实施例中,混淆特征处理装置以已知正常宏程序(即未经过混淆处理的宏程序)为输入,使用混淆工具(例如macro_pack、Macroshop、vba-obfu scator、VBad、VeilFramework、Generate-Macro等),生成混淆VBA(相当于混淆宏程序)。
S602、提取注释。
本发明实施例中,混淆特征处理装置从正常宏程序中提取注释(相当于注释内容),并将每行注释作为一个注释种子。
S603、提取函数。
本发明实施例中,混淆特征处理装置从正常宏程序中提取函数(相当于函数内容),并将每个函数作为一个函数种子。其中,混淆特征处理装置可以用标准的VBA语法分析器解析宏程序,然后在语法分析产生的抽象语法树上识别函数,并生成函数的代码;混淆特征处理装置也可以用正则表达式匹配函数的开头和结尾,从而提取函数的代码。
S604、扩展为废代码种子。
本发明实施例中,混淆特征处理装置以函数种子为主体,生成废代码种子:首先,提取函数体;然后,将函数定义的参数列表转为同名的变量的定义,置于起始位置,并删除函数定义,例如,将函数定义“Sub foo(x As String)”中的参数列表部分“(x As String)”转为“Dim x As String”,这样保证所生成废代码中的变量均有定义;最后,在外面包装一层条件永远为假的IF语句,使其永远不可能被执行。
S605、加入注释种子。
本发明实施例中,混淆特征处理装置向混淆VBA程序的代码行之间插入注释种子。因为注释种子来源于正常宏程序,所以混淆VBA的整体混淆程度降低。
S606、加入函数种子。
本发明实施例中,混淆特征处理装置向混淆VBA程序的函数之间插入函数种子。若没有函数定义,则直接在VBA程序的起始处插入。因为函数种子来源于正常宏程序,所以混淆VBA的整体混淆程度降低。
S607、加入废代码种子。
本发明实施例中,混淆特征处理装置向混淆VBA程序的代码行之间插入废代码种子。因为废代码种子来源于正常宏程序,所以混淆VBA的整体混淆程度降低。通过S605-S607,生成了混淆特征被弱化后VBA程序的中间结果(相当于混淆特征弱化宏程序)。
S608、机器学习算法鉴定。
本发明实施例中,混淆特征处理装置使用第三方基于机器学习算法的反病毒系统对中间结果做鉴定。若中间结果被判为混淆VBA程序,则说明混淆特征仍然明显,需进一步弱化,故回到S605做迭代;若中间结果被判为正常VB A程序,则说明混淆特征已经被弱化充分,将中间结果作为特征弱化后的混淆VBA(相当于最终混淆特征弱化宏程序)输出。
可以理解的是,采用本发明实施例中的混淆特征处理方法,能够使用真实正常宏程序中提取的注释和函数以及扩展得到的废代码来稀释混淆特征,进而,采用第三方基于机器学习的检测系统做鉴定,通过迭代地方式,直至检测系统失效。从而,能够细粒度地向混淆VBA程序的代码行和函数定义之间插入正常代码,以使混淆特征弱化,提升基于机器学习算法的反病毒系统的检测难度。
图9为本发明实施例提供的混淆特征处理装置的一个可选的结构示意图。如图9所示,本发明实施例还提供了一种混淆特征处理装置800,包括:获取单元804、提取单元805、生成单元806和插入单元807,其中:
获取单元804,用于获取正常程序和混淆程序;
提取单元805,用于从正常程序中提取至少一个素材内容;素材内容用于为混淆特征弱化提供素材;
生成单元806,用于基于至少一个素材内容,得到至少一个待插入种子;
插入单元807,用于将至少一个待插入种子插入混淆程序,得到混淆特征弱化程序。
在本发明的一些实施例中,所述提取单元805,还用于从正常程序中提取注释内容和函数内容中的至少一种作为至少一个素材内容。
在本发明的一些实施例中,所述生成单元806,还用于将注释内容的每若干部分,确定为一个注释种子,从而得到至少一个注释种子;和/或,根据函数内容,得到至少一个函数种子和至少一个废代码种子中的至少一个;其中,废代码种子为无法被运行的程序代码;将至少一个注释种子、至少一个函数种子和至少一个废代码种子中的至少一种种子,作为至少一个待插入种子。
在本发明的一些实施例中,在所述程序为VBA宏程序时,所述生成单元806,还用于对至少一个函数体中每一个函数体的原函数定义部分进行同名变量转换,得到至少一个转换后的变量定义;其中,至少一个函数体是从函数内容中提取到的函数运行部分的内容;将转换后的变量定义置于相对应的函数体的起始位置,并删除相应的原函数定义部分,得到至少一个转换后的函数体;在至少一个转换后的函数体外添加条件恒为假的条件语句,得到至少一个废代码种子。
在本发明的一些实施例中,至少一个待插入种子为至少一个注释种子和/或至少一个废代码种子;所述插入单元807,还用于将至少一个待插入种子中的至少一个注释种子和/或至少一个废代码种子插入到混淆程序中的代码行之间,得到混淆特征弱化程序。
在本发明的一些实施例中,至少一个待插入种子为至少一个函数种子;所述插入单元807,还用于将至少一个待插入种子中的至少一个函数种子插入到混淆程序中的函数之间,得到混淆特征弱化程序。
在本发明的一些实施例中,所述提取单元805,还用于从正常程序中提取注释内容;通过语法解析器解析正常程序,得到抽象语法树;从抽象语法树中提取函数内容;和/或,基于函数标识构建正则表达式;通过正则表达式,从正常程序中匹配得到函数内容;将注释内容和函数内容中的至少一种作为至少一个素材内容。
在本发明的一些实施例中,所述混淆特征处理装置800,还包括:鉴定单元808和迭代单元809,其中:
鉴定单元808,用于使用混淆特征鉴定模型,对混淆特征弱化程序进行鉴定;
迭代单元809,用于若鉴定结果为混淆,则对混淆特征弱化程序重新进行混淆特征弱化,直至得到鉴定结果为正常时,结束迭代,得到最终混淆特征弱化程序。
需要说明的是,图10为本发明实施例提供的混淆特征处理装置的一个可选的结构示意图,如图10所示,混淆特征处理装置800的硬件实体包括:处理器801、通信接口802和存储器803,其中:
处理器801通常控制混淆特征处理装置800的总体操作。
通信接口802可以使混淆特征处理装置800通过网络与其他装置或设备通信。
存储器803配置为存储由处理器801可执行的指令和应用,还可以缓存待处理器801以及报文批处理装置800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLAS H)或随机访问存储器(RandomAccess Memory,RAM)实现。
需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述的检测恶意行为的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得风险检测装置800(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
对应地,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述混淆特征处理装置对应的方法中的步骤。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明存储介质和设备实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种混淆特征处理方法,其特征在于,包括:
获取正常程序和混淆程序;
从所述正常程序中提取至少一个素材内容;所述素材内容用于为混淆特征弱化提供素材;
基于所述至少一个素材内容,得到至少一个待插入种子;
将所述至少一个待插入种子插入所述混淆程序,得到混淆特征弱化程序。
2.根据权利要求1所述的混淆特征处理方法,其特征在于,所述从所述正常程序中提取至少一个素材内容,包括:
从所述正常程序中提取注释内容和函数内容中的至少一种作为所述至少一个素材内容。
3.根据权利要求2所述的混淆特征处理方法,其特征在于,所述基于所述至少一个素材内容,得到至少一个待插入种子,包括:
将所述注释内容的每若干部分,确定为一个注释种子,从而得到至少一个注释种子;
根据所述函数内容,得到至少一个函数种子和至少一个废代码种子中的至少一个;其中,所述废代码种子为无法被运行的程序代码;
将所述至少一个注释种子、所述至少一个函数种子和所述至少一个废代码种子中的至少一种种子,作为所述至少一个待插入种子。
4.根据权利要求3所述的混淆特征处理方法,其特征在于,在所述程序为VBA宏程序时,所述废代码种子的获取过程包括:
对至少一个函数体中每一个函数体的原函数定义部分进行同名变量转换,得到转换后的变量定义;其中,所述至少一个函数体是从所述函数内容中提取到的函数运行部分的内容;
将所述转换后的变量定义置于相对应的函数体的起始位置,并删除相应的所述原函数定义部分,得到至少一个转换后的函数体;
在所述至少一个转换后的函数体外添加条件恒为假的条件语句,得到所述至少一个废代码种子。
5.根据权利要求3或4所述的混淆特征处理方法,其特征在于,所述至少一个待插入种子为所述至少一个注释种子和/或所述至少一个废代码种子;
所述将所述至少一个待插入种子插入所述混淆程序,得到混淆特征弱化程序,包括:
将所述至少一个待插入种子中的至少一个注释种子和/或所述至少一个废代码种子插入到所述混淆程序中的代码行之间,得到所述混淆特征弱化程序。
6.根据权利要求3或4所述的混淆特征处理方法,其特征在于,所述至少一个待插入种子为所述至少一个函数种子;
所述将所述至少一个待插入种子插入所述混淆程序,得到混淆特征弱化程序,包括:
将所述至少一个待插入种子中的至少一个函数种子插入到所述混淆程序中的函数之间,得到所述混淆特征弱化程序。
7.根据权利要求2至6任一项所述的混淆特征处理方法,其特征在于,所述从所述正常程序中提取注释内容和函数内容中的至少一种作为所述至少一个素材内容,包括:
从所述正常程序中提取所述注释内容;
通过语法解析器解析所述正常程序,得到抽象语法树;从所述抽象语法树中提取所述函数内容;和/或,基于函数标识构建正则表达式;通过所述正则表达式,从所述正常程序中匹配得到所述函数内容;
将所述注释内容和所述函数内容中的至少一种作为所述至少一个素材内容。
8.根据权利要求1至7任一项所述的混淆特征处理方法,其特征在于,所述将所述至少一个待插入种子插入所述混淆程序,得到混淆特征弱化程序之后,所述方法还包括:
使用混淆特征鉴定模型,对所述混淆特征弱化程序进行鉴定;
若鉴定结果为混淆,则对所述混淆特征弱化程序重新进行混淆特征处理,直至得到鉴定结果为正常时,结束迭代,得到最终混淆特征弱化程序。
9.一种混淆特征处理装置,其特征在于,包括:
获取单元,用于获取正常程序和混淆程序;
提取单元,用于从所述正常程序中提取至少一个素材内容;所述素材内容用于为混淆特征弱化提供素材;
生成单元,基于所述至少一个素材内容,得到至少一个待插入种子;
插入单元,将所述至少一个待插入种子插入所述混淆程序,得到混淆特征弱化程序。
10.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110485686.8A CN115270118A (zh) | 2021-04-30 | 2021-04-30 | 一种混淆特征处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110485686.8A CN115270118A (zh) | 2021-04-30 | 2021-04-30 | 一种混淆特征处理方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115270118A true CN115270118A (zh) | 2022-11-01 |
Family
ID=83744790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110485686.8A Pending CN115270118A (zh) | 2021-04-30 | 2021-04-30 | 一种混淆特征处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115270118A (zh) |
-
2021
- 2021-04-30 CN CN202110485686.8A patent/CN115270118A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lu et al. | Automatic simplification of obfuscated JavaScript code: A semantics-based approach | |
US8589897B2 (en) | System and method for branch extraction obfuscation | |
Liang et al. | A behavior-based malware variant classification technique | |
JP7297791B2 (ja) | アプリケーションソフトウェアファイル内の難読化コードを検出するための方法、装置、およびシステム | |
US11349816B2 (en) | Obfuscating source code sent, from a server computer, to a browser on a client computer | |
CN109983464B (zh) | 检测恶意脚本 | |
US8281290B2 (en) | Software diversity using context-free grammar transformations | |
CN110750789B (zh) | 解混淆方法、装置、计算机设备和存储介质 | |
CN113486350B (zh) | 恶意软件的识别方法、装置、设备及存储介质 | |
KR101356676B1 (ko) | 컴퓨팅 환경에서 표현식을 번역하는 방법, 소프트웨어 및시스템 | |
CN105653949B (zh) | 一种恶意程序检测方法及装置 | |
US10409572B2 (en) | Compiled file normalization | |
CN103559447A (zh) | 一种基于病毒样本特征的检测方法、检测装置及检测系统 | |
JP2008299723A (ja) | プログラム検証方法、プログラム検証装置 | |
CN115659330A (zh) | 一种基于内存取证和图神经网络的恶意代码检测方法 | |
CN116305131B (zh) | 脚本静态去混淆方法及系统 | |
CN115688108B (zh) | 一种webshell静态检测方法及系统 | |
CN115270118A (zh) | 一种混淆特征处理方法、装置及存储介质 | |
US10331902B2 (en) | Data loss prevention | |
US11989326B2 (en) | Programmable feature extractor with anonymization | |
CN111651781B (zh) | 日志内容保护方法、装置、计算机设备和存储介质 | |
CN114880667A (zh) | 一种脚本检测方法及装置 | |
CN111881047B (zh) | 混淆脚本的处理方法及装置 | |
US11868473B2 (en) | Method for constructing behavioural software signatures | |
CN110147671B (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 |