一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用程序的混淆方法、装置及计算机设备与流程

2022-02-19 23:54:56 来源:中国专利 TAG:


1.本发明涉及数据保护领域,尤其涉及一种应用程序的混淆方法、装置及计算机设备。


背景技术:

2.代码混淆是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式,如将函数名替换为随机生成的无意义数据,又如将变量名替换为加密运算后的加密编码,由此提高计算机程序的安全。
3.但代码混淆也带来了一些问题,如对于支持反射的语言,代码混淆有可能与反射发生冲突,导致应用程序无法运行;又如在苹果公司的应用商城的应用程序审核过程中,无意义数据或加密编码均有可能被认定为马甲应用程序,进而无法通过审核。


技术实现要素:

4.有鉴于此,本发明提供一种应用程序的混淆方法、装置及计算机设备,用于改善计算机程序在执行代码混淆之后,会被认定为马甲应用程序的现状。
5.第一方面,本发明实施例提供一种应用程序的混淆方法,包括:
6.确定目标应用程序的业务场景和目标信息,其中,目标信息包括文件名的数量、变量名的数量及函数名的数量中的至少一种;
7.获取不同于目标应用程序的业务场景的应用程序的混淆数据,其中,混淆数据包括不同于目标应用程序的业务场景的应用程序的文件名、变量名及函数名中的至少一种,混淆数据中的文件名的数量、变量名的数量及函数名的数量分别与目标信息中的文件名的数量、变量名的数量及函数名的数量匹配;
8.根据混淆数据,混淆目标应用程序。
9.可选的,在本发明实施例提供的一种实施方式中,确定目标应用程序的业务场景和目标信息之前,方法还包括:
10.构建应用程序知识库,其中,应用程序知识库包括对应不同业务场景的应用程序的文件名、变量名及函数名;
11.获取不同于目标应用程序的业务场景的应用程序的混淆数据,包括:
12.基于应用程序知识库,得到不同于目标应用程序的业务场景的应用程序的混淆数据。
13.进一步的,在本发明实施例提供的一种实施方式中,构建应用程序知识库之后,确定目标应用程序的业务场景和目标信息之前,方法还包括:
14.根据应用程序知识库,得到混淆词生成模型,其中,混淆词生成模型用于生成对应业务场景的文件名、变量名及函数名中的至少一种;
15.基于所述应用程序知识库,得到不同于所述目标应用程序的业务场景的应用程序的混淆数据,包括:
16.利用混淆词生成模型,生成不同于目标应用程序的业务场景的应用程序的混淆数据。
17.更进一步的,在本发明实施例提供的一种实施方式中,还包括:
18.间隔预设时长后,更新应用程序知识库以再次训练混淆词生成模型。
19.可选的,在本发明实施例提供的一种实施方式中,根据混淆数据,混淆目标应用程序之后,方法还包括:
20.在目标应用程序中增添安全代码,其中,安全代码包括具备反调试功能的代码、具备防止重签名功能的代码以及具备防止网络请求代理功能的代码中的至少一种。
21.第二方面,本发明实施例提供一种应用程序的混淆装置,包括:
22.确定模块,用于确定目标应用程序的业务场景和目标信息,其中,目标信息包括文件名的数量、变量名的数量及函数名的数量中的至少一种;
23.获取模块,用于获取不同于目标应用程序的业务场景的应用程序的混淆数据,其中,混淆数据包括不同于目标应用程序的业务场景的应用程序的文件名、变量名及函数名中的至少一种,混淆数据中的文件名的数量、变量名的数量及函数名的数量分别与目标信息中的文件名的数量、变量名的数量及函数名的数量匹配;
24.混淆模块,用于根据混淆数据,混淆目标应用程序。
25.可选的,在本发明实施例提供的一种实施方式中,还包括:
26.构建模块,用于构建应用程序知识库,其中,应用程序知识库包括对应不同业务场景的应用程序的文件名、变量名及函数名;
27.获取模块还用于基于应用程序知识库,得到不同于目标应用程序的业务场景的应用程序的混淆数据。
28.进一步的,在本发明实施例提供的一种实施方式中,还包括:
29.模型生成模块,用于根据应用程序知识库,得到混淆词生成模型,其中,混淆词生成模型用于生成对应业务场景的文件名、变量名及函数名中的至少一种;
30.获取模块还用于利用混淆词生成模型,生成不同于目标应用程序的业务场景的应用程序的混淆数据。
31.第三方面,本发明实施例提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的应用程序的混淆方法。
32.第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的应用程序的混淆方法。
33.本发明实施例提供的应用程序的混淆方法,首先确定目标应用程序的业务场景和目标信息,其中的目标信息即代表待混淆的具体目标,如函数名、变量名及文件名中的至少一种;接着再获取不同于目标应用程序的业务场景的应用程序的混淆数据,即获得其它业务场景的应用程序的文件名、变量名及函数名中的至少一种;进而利用其它业务场景的应用程序的文件名、变量名及函数名,即混淆数据来混淆目标应用程序。
34.基于此,本发明实施根据其它业务场景的应用程序的文件名、变量名及函数名中的至少一种来混淆目标应用程序中的相应内容,也即通过符合人为编写习惯的文件名、变
量名及函数名等等内容来替换目标应用程序中的相应内容,进而即使目标应用程序被反编译,反编译得到的文件名、变量名及函数名等等内容极具迷惑性,从而提高了目标应用程序的破解难度;不仅如此,混淆后的应用程序中的文件名、变量名及函数名等等内容是符合人为编写习惯的内容,进而能有效提升目标应用程序的审核通过率。
附图说明
35.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
36.图1示出了本发明实施例提供的应用程序的混淆方法的第一种流程示意图;
37.图2示出了本发明实施例提供的应用程序的混淆方法的第二种流程示意图;
38.图3示出了本发明实施例提供的应用程序的混淆方法的第三种流程示意图;
39.图4示出了本发明实施例提供的应用程序的混淆装置的结构示意图。
具体实施方式
40.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
41.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
43.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
44.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
45.参照图1,图1示出了本发明实施例提供的应用程序的混淆方法的第一种流程示意图,本发明实施例提供的应用程序的混淆方法包括:
46.s110,确定目标应用程序的业务场景和目标信息,其中,目标信息包括文件名的数量、变量名的数量及函数名的数量中的至少一种。
47.需说明的是,业务场景可以理解为目标应用程序的主要商业类别,如电商类、汽车销售类、社交类等等。可以理解的是,业务场景也是编码人员对文件、函数及变量等等内容
进行命名的主要依据,也即编码人员在知晓应用程序的业务场景后,会选择与业务场景关联的名词来对目标程序中的文件、函数及变量等等内容进行命名,如业务场景为汽车销售类,则文件名或变量名可能包含car、sale、order等与汽车或销售相关的单词出现。
48.还需说明的是,目标信息可包括文件名的数量、变量名的数量及函数名的数量中的至少一种,还可以包括方法名的数量和/或类名的数量等等内容。在本发明实施例中,目标信息用于指代目标应用程序中需要被混淆的内容,而目标信息包含的具体信息可根据实际情况选择。
49.还能理解的是,确定目标应用程序的业务场景和目标信息的过程可包括:计算机设备接收编码人员输入的业务场景和目标信息;或计算机设备利用预设的程序来对目标应用程序中的文件名、变量名及函数名等等内容进行检测,进而确定目标应用程序的业务场景和目标信息。需明确的是,确定目标应用程序的业务场景和目标信息的过程具体可根据需求进行设置,本发明实施例对此过程不进行限定。
50.s120,获取不同于目标应用程序的业务场景的应用程序的混淆数据,其中,混淆数据包括不同于目标应用程序的业务场景的应用程序的文件名、变量名及函数名中的至少一种,混淆数据中的文件名的数量、变量名的数量及函数名的数量等等内容分别与目标信息中的文件名的数量、变量名的数量及函数名的数量等等内容匹配。
51.具体而言,本发明实施例在确定目标应用程序的业务场景和目标信息后,将根据目标应用程序的业务场景和目标信息,获取不同于目标应用程序的业务场景的应用程序的文件名、变量名及函数名等等内容,即混淆数据。需理解的是,混淆数据中的各个内容与目标信息中的各个内容匹配,如目标信息包括变量名的数据为10,函数名的数量为15,则混淆数据中对应包含10个变量名和15个函数名。
52.需说明的是,获取混淆数据的具体过程可包括:计算机设备根据目标应用程序的业务场景,利用预设程序从开源程序平台中搜索不同业务场景的应用程序,并获取其中的文件名、变量名及函数名等等内容,进而得到混淆数据;或者是计算机设备基于预设程序预先将多类业务场景的文件名、变量名及函数名等等内容存储至数据库中,进而在需要混淆数据时,直接从数据库中进行抽取。可以理解的是,获取混淆数据的具体过程可根据实际情况设置。
53.s130,根据混淆数据,混淆目标应用程序。
54.也即,利用混淆数据中的文件名、变量名及函数名等等内容,将目标程序中的相应数据替换,进而完成应用程序的混淆。
55.基于此,本发明实施例将符合人为编码习惯的、但不同于目标应用程序的业务场景的数据,如文件名、变量名及函数名等等内容来替换目标应用程序中的相关内容,使得目标应用程序即使被反编译,反编译后的源码将极具迷惑性,从提高了目标应用程序的破解难度;并且,由于混淆后的源码符合人为编码习惯,进而能有效避免目标应用程序被认定为马甲应用程序的情况,从而提高了目标应用程序的审核通过率。
56.可选的,参考图2,图2示出了本发明实施例提供的应用程序的混淆方法第二种流程示意图,也即本发明实施例提供的一种实施方式中,s110之前,方法还包括:
57.s140,构建应用程序知识库,其中,应用程序知识库包括对应不同业务场景的应用程序的文件名、变量名及函数名;
58.进而s120包括:
59.s121,基于应用程序知识库,得到不同于目标应用程序的业务场景的应用程序的混淆数据。
60.具体而言,本发明实施例在此种实施方式下,预先将多类业务场景的应用程序的文件名、变量名及函数名等等内容存储至数据库,也即在s110之前,完成应用程序知识库的构建。举例而言,如将物流类场景的多个应用程序的数据、社交类场景的多个应用程序的数据及汽车销售类场景的多个应用程序的数据等等数据都存储至数据库中,从而完成应用程序知识库的构建。由此,在需要获取混淆数据时,直接从应用程序知识库中抽取与相应内容。
61.可以理解的是,将多类业务场景的应用程序的文件名、变量名及函数名存储至数据库时,可对不同业务场景的应用程序的文件名、变量名及函数名等等内容进行重名检测与剔除,从而减少数据库的占用空间。
62.由此,本发明实施例在此种实施方式下,直接通过应用程序知识库来完成混淆数据的获取,提高了混淆数据的获取速率。进一步的,参见图3,图3示出了本发明实施例提供的应用程序的混淆方法的第三种流程示意图,即本发明实施例提供的一种实施方式中,s140之后,s110之前,方法还包括:
63.s150,根据应用程序知识库,得到混淆词生成模型,其中,混淆词生成模型用于生成对应业务场景的文件名、变量名及函数名中的至少一种;
64.进而s121,包括:
65.s122,利用混淆词生成模型,生成不同于目标应用程序的业务场景的应用程序的混淆数据。
66.具体而言,本发明实施例在此种实施方式中,计算机设备通过应用程序知识库得到混淆词生成模型,而混淆词生成模型用于根据输入的业务场景名称,生成对应业务场景的文件名、变量名及函数名等等内容中的至少一种内容。进而在计算机设备确定了目标应用程序的业务场景和目标信息,即需要获取混淆数据时,将目标信息和不同于目标应用程序的业务场景的业务场景名称输入至混淆词生成模型,混淆词生成模型生成对应的文件名、变量名、函数名等等内容。需理解的是,通过应用程序知识库得到混淆词生成模型的过程中,混淆词生成模型学习的是业务场景与文件名、变量、函数名等等内容的对应关系。
67.基于此,本发明实施例利用混淆词生成模型生成与目标信息匹配的混淆数据,进而能在保证混淆数据符合人为编码习惯的情况下,并避免了反编译人员查找到混淆数据对应的原应用程序的可能性,进一步提升了目标应用程序的安全性。
68.更进一步的,在本发明实施例提供的一种实施方式中,还包括:
69.间隔预设时长后,更新应用程序知识库以再次训练混淆词生成模型。
70.具体而言,应用程序知识库间隔预设时长后,自动搜索和保存各类开源平台中各类应用场景的应用程序的变量名、方法名及函数名等等内容,从而完成应用程序知识库的更新,并基于更新后的应用程序知识库再次训练混淆词生成模型,以使混淆词生成模型生成的名称能越来越符合人为的编码习惯,且生成的名称与实际情况贴切,进一步提高应用程序源码的迷惑性。
71.此外,在本发明实施例提供的一种实施方式中,s130之后,方法还包括:
72.在目标应用程序中增添安全代码,其中,安全代码包括具备反调试功能的代码、具备防止重签名功能的代码以及具备防止网络请求代理功能的代码中的至少一种。
73.具体而言,增添安全代码以提高应用程序的反编译和反调试的难度,进一步提高应用程序的安全性。
74.可以理解的是,安全代码可以是预设的程序自主生成,或者是在开源平台中搜索相同功能的代码并添加到目标应用程序中。
75.还可以理解的是,在本发明实施例提供的一种实施方式中,应用程序知识库存储有对应不同业务场景的应用程序的安全代码,进而在需要向目标应用程序增添安全代码时,可直接从应用程序知识库中抽取,从而进一步提高混淆后的目标应用程序的迷惑性,并提高了安全代码的增添效率。
76.与本发明实施例提供的应用程序的混淆方法相对应的,本发明实施例还提供一种应用程序的混淆装置,参照图4,图4示出了本发明实施例提供的应用程序的混淆装置的结构示意图,本发明实施例提供的应用程序的混淆装置200,包括:
77.确定模块210,用于确定目标应用程序的业务场景和目标信息,其中,目标信息包括文件名的数量、变量名的数量及函数名的数量中的至少一种;
78.获取模块220,用于获取不同于目标应用程序的业务场景的应用程序的混淆数据,其中,混淆数据包括不同于目标应用程序的业务场景的应用程序的文件名、变量名及函数名中的至少一种,混淆数据中的文件名的数量、变量名的数量及函数名的数量分别与目标信息中的文件名的数量、变量名的数量及函数名的数量匹配;
79.混淆模块230,用于根据混淆数据,混淆目标应用程序。
80.可选的,在本发明实施例提供的一种实施方式中,还包括:
81.构建模块,用于构建应用程序知识库,其中,应用程序知识库包括对应不同业务场景的应用程序的文件名、变量名及函数名;
82.进而,获取模块还用于基于应用程序知识库,得到不同于目标应用程序的业务场景的应用程序的混淆数据。
83.进一步的,在本发明实施例提供的一种实施方式中,还包括:
84.模型生成模块,用于根据应用程序知识库,得到混淆词生成模型,其中,混淆词生成模型用于生成对应业务场景的文件名、变量名及函数名中的至少一种;
85.进而,获取模块还用于利用混淆词生成模型,生成不同于目标应用程序的业务场景的应用程序的混淆数据。
86.更进一步的,在本发明实施例提供的一种实施方式中,还包括:
87.更新模块,用于间隔预设时长后,更新应用程序知识库以再次训练混淆词生成模型。
88.可选的,在本发明实施例提供的一种实施方式中,还包括:
89.添加模块,用于在目标应用程序中增添安全代码,其中,安全代码包括具备反调试功能的代码、具备防止重签名功能的代码以及具备防止网络请求代理功能的代码中的至少一种。
90.本技术实施例提供的应用程序的混淆装置能够实现图1的方法实施例中应用程序的混淆方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
91.本发明实施例还提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如图1的方法实施例中公开的应用程序的混淆方法。
92.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如图1的方法实施例中公开的应用程序的混淆方法。
93.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
94.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
95.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
96.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献