CN110597516B - 插件化代码的混淆方法、装置、电子设备和存储介质 - Google Patents

插件化代码的混淆方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN110597516B
CN110597516B CN201910794824.3A CN201910794824A CN110597516B CN 110597516 B CN110597516 B CN 110597516B CN 201910794824 A CN201910794824 A CN 201910794824A CN 110597516 B CN110597516 B CN 110597516B
Authority
CN
China
Prior art keywords
plug
package
code
app
codes
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.)
Active
Application number
CN201910794824.3A
Other languages
English (en)
Other versions
CN110597516A (zh
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.)
Beike Technology Co Ltd
Original Assignee
Beike Technology 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 Beike Technology Co Ltd filed Critical Beike Technology Co Ltd
Priority to CN201910794824.3A priority Critical patent/CN110597516B/zh
Publication of CN110597516A publication Critical patent/CN110597516A/zh
Application granted granted Critical
Publication of CN110597516B publication Critical patent/CN110597516B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • G06F8/434Pointers; Aliasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • 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)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种插件化代码的混淆方法、装置、电子设备和存储介质,所述方法包括:在应用程序APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记;针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包;将所述多个插件的所述第二插件包打包生成所述APP的安装包。该方法能够使插件的代码可以在编译期进行优化,并在最终的输出结果中得到防护。

Description

插件化代码的混淆方法、装置、电子设备和存储介质
技术领域
本发明涉及计算机技术领域,特别涉及一种插件化代码的混淆方法、装置、电子设备和存储介质。
背景技术
代码在插件化拆分之后分成多个部分,所有的函数库代码宿主和插件共用,每个插件内部装载业务代码。
现有的插件化代码的混淆方法是在程序源代码的编译完成后,对全部的代码进行依赖分析,依次进行:对冗余代码的压缩、优化执行效率不高的代码,在进行完上面两步之后再对最终的代码进行乱码处理并生成便于开发者回溯源代码的索引文件。
上述实现插件化代码的混淆方式是基于应用程序(APP)整体代码进行,而APP插件化分拆之后,代码被分成多个工程甚至多个小APP,无法进行代码的依赖分析,使用上述方案无法保证代码在多个小APP内相同,就会发生插件甲中调用插件乙的A方法,而插件乙中A方法已经被乱码成B方法,调用不到导致程序崩溃。
发明内容
有鉴于此,本申请提供一种插件化代码的混淆方法、装置、电子设备和存储介质,能够使插件的代码可以在编译期进行优化,并在最终的输出结果中得到防护。
为解决上述技术问题,本申请的技术方案是这样实现的:
在一个实施例中,提供了一种插件化代码的混淆方法,其特征在于,所述方法包括:
在APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记;
针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包;
将所述多个插件的所述第二插件包打包生成所述APP的安装包。
其中,所述在所述插件内的代码进行编译过程中,所述方法进一步包括:
对混淆后的插件代码进行标记。
其中,所述针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译,包括:
对标记为通用代码的文件使用同名的空文件替换。
其中,所述将所述多个插件的所述第二插件包打包生成所述APP的安装包,包括:
将所述多个插件的所述第二插件包迁移到APP的安装包对应的目录中,并记录所述第二插件包的名称与路径的对应关系;
将所述多个插件的所述第二插件包与所述目录中的唯一通用代码生成所述APP的安装包。
在另一个实施例中,提供了一种插件化代码的混淆装置,所述装置包括:插件化单元、编译单元、反编译单元和生成单元;
所述插件化单元,用于APP插件化;
所述编译单元,用于在所述插件化单元进行APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记;
所述反编译单元,用于针对所述编译单元生成的所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包;
所述生成单元,用于将所述反编译单元生成的所述多个插件的所述第二插件包打包生成所述APP的安装包。
其中,
所述编译单元,进一步用于在所述插件内的代码进行编译过程中,对混淆后的插件代码进行标记。
其中,
所述反编译单元,具体用于针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译时,对标记为通用代码的文件使用同名的空文件替换。
其中,
所述生成单元,具体用于将所述多个插件的所述第二插件包打包生成所述APP的安装包,包括:将所述多个插件的所述第二插件包迁移到APP的安装包对应的目录中,并记录所述第二插件包的名称与路径的对应关系;将所述多个插件的所述第二插件包与所述目录中的唯一通用代码生成所述APP的安装包。
在另一个实施例中,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如所述插件化代码的混淆方法的步骤。
在另一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述插件化代码的混淆方法的步骤。
由上面的技术方案可见,上述实施例中通过对插件化后的代码在编译期进行代码混淆,并使用通用代码标记生成插件的第一插件包,并对第一插件包进行反编译生成第二插件包,将所有插件的第二插件包打包生成APP的安装包。这样的实现方式,使插件的代码可以在编译期进行优化,并在最终的输出结果中得到防护。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中插件化代码的混淆流程示意图;
图2为本申请实施例中应用于上述技术的装置结构示意图;
图3为本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
下面以具体实施例对本发明的技术方案进行详细说明。下面几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
APP插件化之后,代码被拆分至多个插件内,APP宿主相当于承载各个插件的容器。这样插件代码不能混淆就导致我们的业务代码没有任何防护的“裸奔”能够被轻易看到敏感信息,为了让插件内的代码得到防护,本申请实施例中提供一种插件化代码的混淆方法,通过对插件化后的代码在编译期进行代码混淆,并使用通用代码标记生成每个插件的第一插件包,并对第一插件包进行反编译生成第二插件包,将所有插件的第二插件包打包生成APP的安装包。这样的实现方式,使插件的代码可以在编译期进行优化,并在最终的输出结果中得到防护。
本申请实施例中插件化代码的混淆方法应用于安装包生成的设备上,该设备具有插件内代码编译、反编译。以及打包等功能即可,该设备可以为一台PC等。
下面结合附图,详细说明本申请实施例中实现插件化代码的混淆的过程。
参见图1,图1为本申请实施例中插件化代码的混淆流程示意图。具体步骤为:
步骤101,在APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记。
APP插件化即将APP插件化分解之后,代码和相关资源会被分布到多个插件上,本申请实施例中仅涉及到对代码的特殊处理,在后续描述中仅描述对代码的处理。
一个APP代码可以看作是一个工程,里面有不同的业务代码,引用一份通用的函数库,在APP插件化之后,每个业务都变成一个独立的插件(独立工程),每个插件工程都得单独依赖通用的函数库,也就是说每个插件上有插件代码和通用代码,在编写这些代码时,即编辑一个脚本(Multidex脚本)来区分插件代码和通用代码。
在上述APP插件化后,针对每个插件独立进行插件内的代码进行编译。
在编译过程中包含两部分操作:
第一部分:进行代码混淆,得到混淆后的插件代码。
混淆(Proguard)是一种通用的技术:混淆会压缩APK大小,移除无用代码,并且动态优化代码写法。
混淆的必要前提是可以分析APP代码的依赖关系,以便构建正确的依赖关系知道:那些代码无用可以移除,那些代码可以优化。
第二部分:对混淆后的通用代码进行标记。
在对混淆后的通用代码进行标记时使用预先编写的Multidex脚本识别出通用代码进行标记,具体实现时,可以将通用代码对应的文件与非通用代码对应的文件区分开即可,如存放到不同的目录中,或对文件名使用特定字段标记。
针对计算机的实现为可更便于区别插件代码和通用代码,在具体实现时,在编译期还可以对插件代码也进行标记。
针对每个插件内的代码进行上述编译,即将代码拆分成不同的插件代码pluginCode.dex和通用代码Libs.dex,并将各文件打包生成每个插件对应的第一插件包。
步骤102,针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包。
针对插件的第一插件包需要进行反编译,在反编译过程中先将第一插件包进行拆分,即将标记为通用代码的文件拆分出,针对通用代码的文件进行处理,具体为:
对标记为通用代码的文件使用同名的空文件替换,即用同名的0字节空文件覆盖标记为通用代码的文件。
将替换后的通用代码文件和插件包文件再次打包,生成所述插件对应的第二插件包。
本申请实施例中的饭编译过程,即使用同名空文件代替通用代码的文件,可以缩减插件包的大小,同时欺骗系统好进行二次打包。
步骤103,将所述多个插件的所述第二插件包打包生成所述APP的安装包。
本步骤中将所述多个插件的所述第二插件包打包生成所述APP的安装包,包括:
将所述多个插件的所述第二插件包迁移到APP的安装包对应的目录中,并记录所述第二插件包的名称与路径的对应关系;
将所述多个插件的所述第二插件包与所述目录中的唯一通用代码生成所述APP的安装包。
通过上述操作,就得到一个混淆后,只有插件代码的插件包(第二插件包),然后将该第二插件包移到宿主APP的安装包中,宿主安装包中有完整的唯一的通用代码。
通过上述方案可以使插件的代码在编译期参与优化,并在最终的输出结果中得到防护。
基于同样的发明构思,本申请实施例中还提供一种插件化代码的混淆装置。参见图2,图2为本申请实施例中应用于上述技术的装置结构示意图。所述装置包括:插件化单元201、编译单元202、反编译单元203和生成单元204;
插件化单元201,用于APP插件化;
编译单元202,用于在插件化单元201进行APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记;
反编译单元203,用于针对编译单元202生成的所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包;
生成单元204,用于将反编译单元203生成的所述多个插件的所述第二插件包打包生成所述APP的安装包。
优选地,
编译单元202,进一步用于在所述插件内的代码进行编译过程中,对混淆后的插件代码进行标记。
优选地,
反编译单元203,具体用于针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译时,对标记为通用代码的文件使用同名的空文件替换。
优选地,
生成单元204,具体用于将所述多个插件的所述第二插件包打包生成所述APP的安装包,包括:将所述多个插件的所述第二插件包迁移到APP的安装包对应的目录中,并记录所述第二插件包的名称与路径的对应关系;将所述多个插件的所述第二插件包与所述目录中的唯一通用代码生成所述APP的安装包。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
在另一个实施例中,还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述插件化代码的混淆方法的步骤。
在另一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被处理器执行时可实现所述插件化代码的混淆方法中的步骤。
图3为本发明实施例提供的电子设备的实体结构示意图。如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行如下方法:
在APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记;
针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包;
将所述多个插件的所述第二插件包打包生成所述APP的安装包。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (8)

1.一种插件化代码的混淆方法,其特征在于,所述方法包括:
在应用程序APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记;
针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包;
将所述多个插件的所述第二插件包打包生成所述APP的安装包;
其中,所述针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译,包括:
对标记为通用代码的文件使用同名的空文件替换。
2.根据权利要求1所述的方法,其特征在于,所述在所述插件内的代码进行编译过程中,所述方法进一步包括:
对混淆后的插件代码进行标记。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述多个插件的所述第二插件包打包生成所述APP的安装包,包括:
将所述多个插件的所述第二插件包迁移到APP的安装包对应的目录中,并记录所述第二插件包的名称与路径的对应关系;
将所述多个插件的所述第二插件包与所述目录中的唯一通用代码生成所述APP的安装包。
4.一种插件化代码的混淆装置,其特征在于,所述装置包括:插件化单元、编译单元、反编译单元和生成单元;
所述插件化单元,用于应用程序APP插件化;
所述编译单元,用于在所述插件化单元进行APP插件化后,针对多个插件内的代码分别进行编译生成所述插件的第一插件包;其中,在所述插件内的代码进行编译过程中,进行代码混淆,并对混淆后的通用代码进行标记;
所述反编译单元,用于针对所述编译单元生成的所述插件的所述第一插件包中标记为通用代码的文件进行反编译,并生成第二插件包;
所述生成单元,用于将所述反编译单元生成的所述多个插件的所述第二插件包打包生成所述APP的安装包;
其中,所述反编译单元,具体用于针对所述插件的所述第一插件包中标记为通用代码的文件进行反编译时,对标记为通用代码的文件使用同名的空文件替换。
5.根据权利要求4所述的装置,其特征在于,
所述编译单元,进一步用于在所述插件内的代码进行编译过程中,对混淆后的插件代码进行标记。
6.根据权利要求4或5所述的装置,其特征在于,
所述生成单元,具体用于将所述多个插件的所述第二插件包打包生成所述APP的安装包,包括:将所述多个插件的所述第二插件包迁移到APP的安装包对应的目录中,并记录所述第二插件包的名称与路径的对应关系;将所述多个插件的所述第二插件包与所述目录中的唯一通用代码生成所述APP的安装包。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-3任一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-3任一项所述的方法。
CN201910794824.3A 2019-08-27 2019-08-27 插件化代码的混淆方法、装置、电子设备和存储介质 Active CN110597516B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910794824.3A CN110597516B (zh) 2019-08-27 2019-08-27 插件化代码的混淆方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910794824.3A CN110597516B (zh) 2019-08-27 2019-08-27 插件化代码的混淆方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN110597516A CN110597516A (zh) 2019-12-20
CN110597516B true CN110597516B (zh) 2023-10-20

Family

ID=68855814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910794824.3A Active CN110597516B (zh) 2019-08-27 2019-08-27 插件化代码的混淆方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN110597516B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153463B (zh) * 2022-02-09 2022-04-12 厚普智慧物联科技有限公司 基于脚本编译器的管理系统业务功能创建方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140245271A1 (en) * 2013-02-28 2014-08-28 Microsoft Corporation Compiler Based Obfuscation
CN106778100A (zh) * 2016-12-01 2017-05-31 北京智游网安科技有限公司 基于安卓平台和ios平台的混淆编译方法及混淆编译器
CN107133029A (zh) * 2017-03-30 2017-09-05 武汉斗鱼网络科技有限公司 个性化组件实现方法及装置
CN109542445A (zh) * 2017-08-01 2019-03-29 北京京东尚科信息技术有限公司 一种Android插件化开发的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140245271A1 (en) * 2013-02-28 2014-08-28 Microsoft Corporation Compiler Based Obfuscation
CN106778100A (zh) * 2016-12-01 2017-05-31 北京智游网安科技有限公司 基于安卓平台和ios平台的混淆编译方法及混淆编译器
CN107133029A (zh) * 2017-03-30 2017-09-05 武汉斗鱼网络科技有限公司 个性化组件实现方法及装置
CN109542445A (zh) * 2017-08-01 2019-03-29 北京京东尚科信息技术有限公司 一种Android插件化开发的方法和装置

Also Published As

Publication number Publication date
CN110597516A (zh) 2019-12-20

Similar Documents

Publication Publication Date Title
CN105683990B (zh) 用于保护动态库的方法和装置
CN108595921B (zh) 一种源代码中字符串的混淆方法和装置
CN110598379B (zh) 一种实现字符串混淆的方法、设备及存储介质
CN104462990B (zh) 字符串加解密方法和装置
KR102159640B1 (ko) 데이터 컴파일 방법, 장치 및 전자 단말기, 컴퓨터 판독 가능 저장 매체
CN108345773A (zh) 基于虚拟机的代码保护方法及装置、电子设备、存储介质
CN110059456B (zh) 代码保护方法、代码保护装置、存储介质与电子设备
US20150310193A1 (en) Control flow flattening for code obfuscation where the next block calculation needs run-time information
CN108399319B (zh) 源代码保护方法、应用服务器及计算机可读存储介质
CN110389762A (zh) 在Android工程中处理AAR包的方法和装置
WO2016024838A1 (ko) 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
EP3729306B1 (en) Compiling device and method
CN106055375A (zh) 应用程序安装方法及装置
CN112115427A (zh) 代码混淆方法、装置、电子设备及存储介质
CA3150187C (en) Method and apparatus for protecting web script codes
CN110597516B (zh) 插件化代码的混淆方法、装置、电子设备和存储介质
CN112966227A (zh) 代码加密解密方法和装置、存储介质
CN109614772A (zh) 基于应用安装包文件的代码转换方法及装置
CN107871066B (zh) 基于安卓系统的代码编译方法及装置
EP2937803A1 (en) Control flow flattening for code obfuscation where the next block calculation needs run-time information
CN107092517B (zh) 一种sdk工具包的生成方法及装置
CN108460254A (zh) 固件保护方法及装置
CN114090965B (zh) java代码混淆方法、系统、计算机设备及存储介质
CN113282294A (zh) 基于安卓平台Java字符串混淆的方法和装置
CN106547519B (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
GR01 Patent grant
GR01 Patent grant