CN110598379A - 一种实现字符串混淆的方法、系统、设备及存储介质 - Google Patents
一种实现字符串混淆的方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN110598379A CN110598379A CN201910897726.2A CN201910897726A CN110598379A CN 110598379 A CN110598379 A CN 110598379A CN 201910897726 A CN201910897726 A CN 201910897726A CN 110598379 A CN110598379 A CN 110598379A
- Authority
- CN
- China
- Prior art keywords
- syntax tree
- character string
- character
- array
- file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 39
- 230000004048 modification Effects 0.000 claims description 23
- 238000012986 modification Methods 0.000 claims description 23
- 230000003068 static effect Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
-
- 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/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
- G06F8/434—Pointers; Aliasing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种实现字符串混淆的方法、系统、设备及存储介质,所述方法包括:分析处理源文件得到源文件对应的语法树及其包含的头文件;对语法树进行加密修改,使字符串常量进行加密,对语法树进行运行解密修改,使程序运行时字符串常量解密还原;由编译器前端根据修改后的语法树输出加密后的源代码。实现了在编译器前端混淆字符串,并能根据修改后的语法树输出得到C/C++源代码,使其可被各种编译器编译,并可被移植到各种平台,兼顾了程序的安全性和可移植性。
Description
技术领域
本发明涉及通讯安全技术领域,尤其涉及一种实现字符串混淆的方法、系统、设备及存储介质。
背景技术
在移动信息安全领域,代码混淆的目的是为了使代码变得更难懂,防止软件被恶意逆向分析。字符串常量,通常是一种提示信息或其它有意义的信息,逆向分析时可通过字符串常量迅速定位到程序功能的关键点,从而找到突破口,字符串混淆是一种混淆方法,它可以隐藏字符串常量,使得其在最终的二进制程序文件中不能直接观察到。如图像处理应用软件编程上,为防止恶意逆向分析,均需要实现移动信息安全。
OLLVM(Obfuscator-LLVM)是一个开源项目,旨在提供一套开源的针对LLVM(LowLevel Virtual Machine)的代码混淆工具,以增加逆向工程的难度。目前,C/C++混淆技术是基于OLLVM实现的,混淆的都是中间层表示形式的代码,混淆的结果只能由LLVM编译器转化成相应平台的机器指令,无法移植,更不可被其他编译器再次处理。
因此,现有技术有待改进和发展。
发明内容
鉴于上述现有技术的不足,本发明提供了一种实现字符串混淆的方法、系统、设备及存储介质,旨在解决现有技术OLLVM混淆中间层表示形式代码,只能由LLVM编译器转化成机器指令,无法移植无法被其他编译器再次处理的问题。
为了解决上述问题,本发明公开了一种实现字符串混淆的方法,应用于编译器前端,所述方法包括步骤:
分析处理源文件得到源文件对应的语法树及其包含的头文件;
在编译器前端对语法树进行修改处理;
由编译器前端根据修改后的语法树输出混淆后的源代码。
进一步,所述在编译器前端对语法树进行修改处理的步骤具体包括:
对语法树进行加密修改,使字符串常量进行加密;
对语法树进行运行解密修改,使程序运行时字符串常量解密还原。
进一步,所述对语法树进行加密修改,使字符串常量进行加密的步骤具体包括:
在语法树中插入第一字符数组和第二字符数组。
进一步,所述在语法树中插入第一字符数组和第二字符数组步骤具体包括:
遍历语法树,收集语法树中所有字符串常量并记录其顺序;
利用密钥对收集的字符串常量进行加密;
插入第一字符数组,第一字符数组中存储有加密后的字符串常量;插入第二字符数组,第二字符数组中存储有密钥。
进一步,所述对语法树进行运行解密修改,使程序运行时字符串常量解密还原步骤具体包括:
在语法树中插入静态的全局指针数组;
插入解密函数,所述解密函数在程序运行时对第一字符数组进行解密还原;
插入GetString函数,所述GetString函数返回其参数指定的解密后字符串常量;
遍历修改后的语法树,将语法树中字符串常量替换成GetString函数的调用。
进一步,所述由编译器前端修改后的语法树输出混淆后的源代码的步骤具体包括:
创建一个空白文件,所述空白文件类型与源文件一致;
将源文件包含的头文件按正确语法形式输出到所述空白文件;
将语法树中的顶级声明按正确语法形式输出到所述空白文件。
进一步,所述对语法树进行运行解密修改,使程序运行时字符串常量解密还原过程包括:
程序运行时,解密函数对加密后的第一字符数组进行解密;
将解密后的第一字符数组中各字符串常量的首个字符的地址存放在静态的全局指针数组中;
所述GetString函数根据替换的字符串常量的次序返回所述静态的全局指针数组中对应的字符串指针,字符串指针指向解密后的第一字符数组中的字符串,使GetString函数调用得到相应的原始字符串。
相应的,为了保证上述方法的实施,本发明还提供了一种基于编译器前端实现字符串混淆的系统,所述系统包括:
代码编译模块,所述代码编译模块用于分析处理源文件得到源文件对应的语法树及其包含的头文件;
加密修改模块,所述加密修改模块用于对语法树进行加密修改,使进行加密;
解密修改模块,所述解密修改模块用于对语法树进行运行解密修改,使程序运行时字符串常量解密还原;
代码输出模块,所述代码输出模块用于在编译器前端根据修改后的语法树输出混淆后的源代码。
一种基于编译器前端实现字符串混淆的设备:
包括有处理器,以及与所述处理器连接的存储器;所述存储器存储有基于编译器前端实现字符串混淆的程序,所述基于编译器前端实现字符串混淆的程序被所述处理器执行时实现所述的基于编译器前端实现字符串混淆的方法。
一种存储介质,其中,存储有用于实现如上所述的实现字符串混淆的方法的程序。
有益效果:与现有技术相比,本发明提供了一种实现字符串混淆的方法、系统、设备及存储介质,所述方法包括:分析处理源文件得到源文件对应的语法树及其包含的头文件;在编译器前端对语法树进行修改处理;由编译器前端根据修改后的语法树输出混淆后的源代码。本发明通过在编译器前端对语法树进行混淆处理,避免代码被恶意逆向分析,且能在混淆后得到C/C++源代码,有效解决了目前基于中间层混淆代码智能由指定编译器转化成机器指令,无法移植,不能被其他编译器处理的问题,使得代码兼备安全性和可移植性,为程序开发带来便利。
附图说明
图1为本发明基于编译器前端实现字符串混淆的方法实施例的流程图。
图2为本发明基于编译器前端实现字符串混淆的方法较佳实施例的流程图。
图3为本发明基于编译器前端实现字符串混淆的系统实施例结构框图。
图4为本发明基于编译器前端实现字符串混淆的设备实施例结构框图。
图中,10、代码编译模块;20、加密修改模块;30、解密修改模块;40、代码输出模块;50、处理器;51、显示屏;52、存储器;53、通信接口;54、总线。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1、图2所示,本发明的一个实施例提供的一种实现字符串混淆的方法,应用于编译器前端,本方法也可在包括但不限于以下领域使用,如图像处理的应用软件编程。本实施例中以如下的一个源代码为例来对比说明处理过程,代码如下所示:
本发明的一个实施例提供的一种实现字符串混淆的方法,该方法包括步骤:
步骤S100、分析处理源文件得到源文件对应的语法树及其包含的头文件。
具体的,LLVM(Low Level Virtual Machine)工程是一个模块可重用的编译器及工具链技术的集合。其子工程Clang为编写需要语义分析、语法分析的工具提供了基础。利用Clang工程可对源文件进行词法分析和语义分析,得到源文件对应的语法树及头文件。这里的源文件指的是开发人员提前编写好的源代码,语法树指的是抽象语法树,抽象语法树,是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。
步骤S200、对语法树进行加密修改,使字符串常量进行加密。
具体的,在编译器前端对语法树进行加密修改,使字符串常量进行加密。优选的实施例中,步骤S200具体包括:
步骤S210、遍历抽象语法树,收集抽象语法树中所有字符串常量,并记录各字符串常量的次序;
具体的,在对源文件进行处理后,得到抽象语法树,对抽象语法树进行遍历操作,遍历抽象语法树中的所有节点,获取收集抽象语法树所有节点中的字符串常量,记录每一个字符串常量是第几个收集的字符串常量。
步骤S220、将收集到的字符串常量依次放入第一临时字符数组中;
具体的,创建一个第一临时字符数组,将收集到的字符串常量,按照收集的顺序依次放入第一临时字符数组中,每个字符串的结束符NUL也进行保存。第一临时字符数组中不存储重复的字符串常量,即再次出现的字符串常量直接跳过,不再放入第一临时字符数组中,节约空间,减少加密解密的操作量。
步骤S230、随机生成密钥,将密钥存放在第二临时字符数组中;
具体的,随机生成一个密钥,并创建第二临时字符数组,将密钥存入第二临时字符数组中。
步骤S240、利用密钥加密第一临时字符数组;
具体的,加密算法利用第二临时字符数组中的密钥对第一临时字符数组内的字符串常量进行加密处理,使得第一临时字符数组内的字符串常量发生改变,不能被直接观察。易于想到,密钥可以随机生成,也可以预先设定。
步骤S250、插入第一字符数组,第一字符数组中存储有加密后的字符串常量;插入第二字符数组,第二字符数组中存储有密钥;
具体的,在抽象语法树相应的位置插入第一字符数组和第二字符数组。利用密钥对第一临时字符数组加密后,第一临时字符数组中的字符串常量发生改变,将加密后的第一临时字符数组中的内容放入第一字符数组中,将第二临时字符数组中的内容放入第二字符数组中。
步骤S300、对语法树进行运行解密修改,使程序运行时字符串常量解密还原。
具体的,在编译器前端对抽象语法树进行修改,使得程序在运行时能够还原字符串常量,保证正常运行。
在优选的实施例中,步骤S300包括:
步骤S310、在抽象语法树中插入静态的全局指针数组;
具体的,在编译器前端对语法树进行修改时,还在语法树中插入一个静态的全局指针数组。静态的全局指针数组的类型为char*[],静态的全局指针数组的元素个数与收集到的字符串常量的个数相同。
步骤S320、插入解密函数,所述解密函数在程序运行时对第一字符数组进行解密还原,并将解密后各字符串常量首个字符的地址放入静态的全局指针数组;
具体的,在编译器前端对语法树进行修改时,还插入一个解密函数。解密函数在程序运行时,对第一字符数组内的字符串常量进行解密,将加密的字符串常量还原成原始收集的字符串常量。该解密函数指的是能够利用密钥对第一字符数组中加密字符串进行算法解密得到原来相对应的字符串常量的算法函数,解密函数的解密算法与加密函数的加密算法相对应,可以通过密钥对加密的字符串常量进行还原。密钥对加密的字符串常量进行解密后,将解密后各字符串常量的首字符的地址放入静态的全局指针数组中。
步骤S330、在语法树中插入GetString函数,遍历修改后的语法树,将语法树中字符串常量替换成GetString函数的调用。
具体的,在语法树中插入GetString函数,该函数的类型是static char*GetString(unsigned int),该函数能够以参数为静态的全局指针数组的索引,返回静态的全局指针数组中的元素。在编译器前端对语法树进行修改时,还将语法树中字符串常量替换成GetString函数的调用。再次遍历抽象语法树,找出抽象语法树中的字符串常量,将语法树中字符串常量替换成GetString函数的调用。
步骤S400、由编译器前端根据修改后的语法树输出加密后的源代码。
具体的,对抽象语法树进行修改完成后,编译器前端将抽象语法树转化为源代码输出,在加密后的源代码中,字符串常量已被加密隐藏,不可直接观察到,增加了代码的安全性,防止代码被恶意逆向分析。
优选的实施例中,步骤S400具体包括:
步骤S410、创建一个空白文件,所述空白文件类型与源文件一致;
具体的,创建一个空白的C/C++文件,该文件与原始源文件的类型相同,类型相同指的是原始源文件为C文件时,创建的空白文件为C文件,原始源文件为C++文件时,创建的空白文件为C++文件。根据源文件的类型,创建一个与源文件类型一致的空白文件,以使得输出的程序的文件类型与源文件一致。
步骤S420、将源文件包含的头文件按正确语法形式输出到所述空白文件;
具体的,将获取的头文件,例如cstdio、stdio.h、math.h等,按照头文件包含的语法形式,输出到创建的空白文件中。将头文件按照其语法形式输出到空白文件中,得到一个头文件与源文件的头文件相符的半空白的文件。
步骤S430、将语法树中的顶级声明按正确语法形式输出到所述空白文件。
具体的,将修改后的抽象语法树中的顶级声明,如声明或定义的全局变量等,按其正确的语法形式输出到创建的空白文件中,根据修改后的抽象语法树,变换输出得到相对应的加密后的C/C++源代码。
加密后输出的代码,能够使代码的字符串常量改变,不能直接观察到字符串常量,使得代码变得更加难懂,防止代码被恶意逆向分析,且最后输出的是C/C++代码,能够被各种编译器进行编译,也能够被移植到各种平台。
字符串后的程序在运行时,步骤S320中插入的解密函数,对第一字符数组进行解密,将加密后的字符串常量还原成原始的字符串常量,原始的字符串常量的首个字符的地址,将会存放入步骤S310插入的静态的全局指针数组中,步骤S330替换的GetString函数根据替换的字符串常量的次序,返回所述静态的全局指针数组中对应的字符串指针,字符串指针指向解密后的第一字符数组中的字符串,使GetString函数调用得到相应的原始字符串。通过GetString函数,能够将解密后的第一字符数组内的字符串常量,返回到相应的位置,得到源代码,完成解密,使得程序能够正常运行。
加密输出结果如下:
从上述技术方案可以看出,本实施例提供了一种实现字符串混淆的方法,具体为分析处理源文件得到源文件对应的语法树及其包含的头文件;在编译器前端对语法树进行修改处理;由编译器前端根据修改后的语法树输出加密后的源代码。通过上述技术方案,对编译器前端抽象语法树进行修改,实现了在编译器前端抽象语法树中混淆字符串,避免代码被恶意逆向分析,并根据修改后的抽象语法树输出得到C/C++源代码,使其可被各种编译器编译,并可被移植到各种平台,相比于目前一般的混淆中间层表示形式的代码,这种方案兼顾了代码的保护和可移植性,使得程序开发更便利。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
如图3所示,本发明的另一个实施例所提供的一种基于编译器前端实现字符串混淆的系统,包括:代码编译模块10、加密修改模块20,解密修改模块30,代码输出模块40。
所述代码编译模块10用于分析处理源文件得到源文件对应的语法树及其包含的头文件。
所述加密修改模块20用于对语法树进行加密修改,使字符串常量进行加密。
所述解密修改模块30用于对语法树进行运行解密修改,使程序运行时字符串常量解密还原。
所述代码输出模块40用于由编译器前端根据修改后的抽象语法树输出混淆后的源代码。
对于系统实施例而言,由于其与方法实施例步骤相对应设置,所以描述的比较简单,相关说明书之处参见方法实施例的部分说明即可。
本发明还提供一种设备,其包括至少一个处理器50和存储器52,还可以包括通信接口53,总线54和显示屏51。其中,处理器50、显示屏51、存储器52和通信接口53之间可以通过总线54完成相互间的通信。显示屏51设置为显示初始设置模式中预设的用户引导界面。通信接口53可以传输信息。处理器50可以处理和调用存储器52中的逻辑指令,以执行上述实施例中的方法。
在本发明所提供的实施例中,应该理解到,所揭露的方法、系统及设备,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明实施例还包括一种存储介质,其中,存储有用于实现如上所述的实现字符串混淆的方法的程序。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种实现字符串混淆的方法,应用于编译器前端,其特征在于,包括步骤:
分析处理源文件得到源文件对应的语法树及其包含的头文件;
对语法树进行加密修改,使字符串常量进行加密;
对语法树进行运行解密修改,使程序运行时字符串常量解密还原;
由编译器前端根据修改后的语法树输出混淆后的源代码。
2.根据权利要求1所述的实现字符串混淆的方法,其特征在于,所述对语法树进行加密修改,使字符串常量进行加密的步骤具体包括:
在语法树中插入第一字符数组和第二字符数组。
3.根据权利要求2所述的实现字符串混淆的方法,其特征在于,所述在语法树中插入第一字符数组和第二字符数组步骤具体包括:
遍历语法树,收集语法树中所有字符串常量并记录其顺序;
利用密钥对收集的字符串常量进行加密;
插入第一字符数组,第一字符数组中存储有加密后的字符串常量;
插入第二字符数组,第二字符数组中存储有密钥。
4.根据权利要求3所述的实现字符串混淆的方法,其特征在于,所述对语法树进行运行解密修改,使程序运行时字符串常量解密还原步骤具体包括:在语法树中插入静态的全局指针数组;
插入解密函数,所述解密函数在程序运行时对第一字符数组进行解密还原;插入GetString函数,所述GetString函数返回其参数指定的解密后字符串常量;
遍历修改后的语法树,将语法树中字符串常量替换成GetString函数的调用。
5.根据权利要求4所述的实现字符串混淆的方法,其特征在于,所述由编译器前端修改后的语法树输出混淆后的源代码的步骤具体包括:创建一个空白文件,所述空白文件类型与源文件一致;
将源文件包含的头文件按正确语法形式输出到所述空白文件;
将语法树中的顶级声明按正确语法形式输出到所述空白文件。
6.根据权利要求5所述的实现字符串混淆的方法,其特征在于,所述对语法树进行运行解密修改,使程序运行时字符串常量解密还原过程包括:
程序运行时,解密函数对加密后的第一字符数组进行解密;
将解密后的第一字符数组中各字符串常量的首个字符的地址存放在静态的全局指针数组中;
所述GetString函数根据替换的字符串常量的次序返回所述静态的全局指针数组中对应的字符串指针,字符串指针指向解密后的第一字符数组中的字符串,使GetString函数调用得到相应的原始字符串。
7.一种实现字符串混淆的系统,其特征在于,所述系统包括:
代码编译模块,所述代码编译模块用于分析处理源文件得到源文件对应的语法树及其包含的头文件;
加密修改模块,所述加密修改模块用于对语法树进行加密修改,使进行加密;
解密修改模块,所述解密修改模块用于对语法树进行运行解密修改,使程序运行时字符串常量解密还原;
代码输出模块,所述代码输出模块用于在编译器前端根据修改后的语法树输出混淆后的源代码。
8.一种实现字符串混淆的设备,其特征在于:包括有处理器,以及与所述处理器连接的存储器;
所述存储器存储有实现字符串混淆的程序,所述实现字符串混淆的程序被所述处理器执行时实现如权利要求1-6任一所述的实现字符串混淆的方法。
9.一种存储介质,其特征在于,存储有用于实现如权利要求1-6任一所述的实现字符串混淆的方法的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910897726.2A CN110598379B (zh) | 2019-09-23 | 2019-09-23 | 一种实现字符串混淆的方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910897726.2A CN110598379B (zh) | 2019-09-23 | 2019-09-23 | 一种实现字符串混淆的方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110598379A true CN110598379A (zh) | 2019-12-20 |
CN110598379B CN110598379B (zh) | 2021-06-08 |
Family
ID=68862176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910897726.2A Active CN110598379B (zh) | 2019-09-23 | 2019-09-23 | 一种实现字符串混淆的方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110598379B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256275A (zh) * | 2020-10-22 | 2021-01-22 | 北京字节跳动网络技术有限公司 | 代码混淆方法、装置、电子设备及介质 |
CN112347430A (zh) * | 2020-10-28 | 2021-02-09 | 山东开创云计算有限公司 | Ios应用加固保护系统 |
CN113434148A (zh) * | 2021-06-30 | 2021-09-24 | 平安普惠企业管理有限公司 | 防解密客户端开发编译方法、装置、电子设备及存储介质 |
CN113449330A (zh) * | 2021-08-31 | 2021-09-28 | 北京华云安信息技术有限公司 | 对Javascript加密文件进行传输的方法 |
CN113591089A (zh) * | 2021-08-12 | 2021-11-02 | 上海观安信息技术股份有限公司 | 一种数据混淆加密方法 |
CN113641361A (zh) * | 2021-06-28 | 2021-11-12 | 武汉极意网络科技有限公司 | 一种基于Clang的代码隐藏方法及装置 |
CN114756864A (zh) * | 2022-04-11 | 2022-07-15 | 桂林电子科技大学 | 一种基于中间语言的工控恶意软件字符串反混淆方法 |
CN116881035A (zh) * | 2023-07-20 | 2023-10-13 | 上海弘连网络科技有限公司 | 文件修复方法、存储介质及电子设备 |
CN118041534A (zh) * | 2024-04-12 | 2024-05-14 | 浙江金网信息产业股份有限公司 | 一种源码动态算子加密方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015035827A1 (en) * | 2013-09-13 | 2015-03-19 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for providing string encryption and decryption in program files |
CN106326693A (zh) * | 2016-08-18 | 2017-01-11 | 广州优视网络科技有限公司 | 应用程序的代码混淆方法及装置 |
CN108595921A (zh) * | 2018-03-22 | 2018-09-28 | 北京奇艺世纪科技有限公司 | 一种源代码中字符串的混淆方法和装置 |
CN109241484A (zh) * | 2018-09-06 | 2019-01-18 | 平安科技(深圳)有限公司 | 一种基于加密技术的网页数据的发送方法及设备 |
CN109598107A (zh) * | 2018-11-20 | 2019-04-09 | 江苏通付盾信息安全技术有限公司 | 一种基于应用安装包文件的代码转换方法及装置 |
CN109992935A (zh) * | 2019-03-15 | 2019-07-09 | 同盾控股有限公司 | 一种源代码保护方法及装置 |
CN110018814A (zh) * | 2018-01-10 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | 唯一标示符提供方法、存储介质、电子设备及系统 |
-
2019
- 2019-09-23 CN CN201910897726.2A patent/CN110598379B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015035827A1 (en) * | 2013-09-13 | 2015-03-19 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for providing string encryption and decryption in program files |
CN106326693A (zh) * | 2016-08-18 | 2017-01-11 | 广州优视网络科技有限公司 | 应用程序的代码混淆方法及装置 |
CN110018814A (zh) * | 2018-01-10 | 2019-07-16 | 武汉斗鱼网络科技有限公司 | 唯一标示符提供方法、存储介质、电子设备及系统 |
CN108595921A (zh) * | 2018-03-22 | 2018-09-28 | 北京奇艺世纪科技有限公司 | 一种源代码中字符串的混淆方法和装置 |
CN109241484A (zh) * | 2018-09-06 | 2019-01-18 | 平安科技(深圳)有限公司 | 一种基于加密技术的网页数据的发送方法及设备 |
CN109598107A (zh) * | 2018-11-20 | 2019-04-09 | 江苏通付盾信息安全技术有限公司 | 一种基于应用安装包文件的代码转换方法及装置 |
CN109992935A (zh) * | 2019-03-15 | 2019-07-09 | 同盾控股有限公司 | 一种源代码保护方法及装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256275A (zh) * | 2020-10-22 | 2021-01-22 | 北京字节跳动网络技术有限公司 | 代码混淆方法、装置、电子设备及介质 |
CN112256275B (zh) * | 2020-10-22 | 2023-09-29 | 抖音视界有限公司 | 代码混淆方法、装置、电子设备及介质 |
CN112347430A (zh) * | 2020-10-28 | 2021-02-09 | 山东开创云计算有限公司 | Ios应用加固保护系统 |
CN113641361B (zh) * | 2021-06-28 | 2024-01-26 | 武汉极意网络科技有限公司 | 一种基于Clang的代码隐藏方法及装置 |
CN113641361A (zh) * | 2021-06-28 | 2021-11-12 | 武汉极意网络科技有限公司 | 一种基于Clang的代码隐藏方法及装置 |
CN113434148A (zh) * | 2021-06-30 | 2021-09-24 | 平安普惠企业管理有限公司 | 防解密客户端开发编译方法、装置、电子设备及存储介质 |
CN113434148B (zh) * | 2021-06-30 | 2024-03-22 | 广东迅维信息产业股份有限公司 | 防解密客户端开发编译方法、装置、电子设备及存储介质 |
CN113591089A (zh) * | 2021-08-12 | 2021-11-02 | 上海观安信息技术股份有限公司 | 一种数据混淆加密方法 |
CN113591089B (zh) * | 2021-08-12 | 2024-06-11 | 上海观安信息技术股份有限公司 | 一种数据混淆加密方法 |
CN113449330A (zh) * | 2021-08-31 | 2021-09-28 | 北京华云安信息技术有限公司 | 对Javascript加密文件进行传输的方法 |
CN114756864A (zh) * | 2022-04-11 | 2022-07-15 | 桂林电子科技大学 | 一种基于中间语言的工控恶意软件字符串反混淆方法 |
CN116881035A (zh) * | 2023-07-20 | 2023-10-13 | 上海弘连网络科技有限公司 | 文件修复方法、存储介质及电子设备 |
CN116881035B (zh) * | 2023-07-20 | 2024-06-14 | 上海弘连网络科技有限公司 | 文件修复方法、存储介质及电子设备 |
CN118041534A (zh) * | 2024-04-12 | 2024-05-14 | 浙江金网信息产业股份有限公司 | 一种源码动态算子加密方法 |
CN118041534B (zh) * | 2024-04-12 | 2024-07-02 | 浙江金网信息产业股份有限公司 | 一种源码动态算子加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110598379B (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110598379B (zh) | 一种实现字符串混淆的方法、设备及存储介质 | |
CN108595921B (zh) | 一种源代码中字符串的混淆方法和装置 | |
US8539459B2 (en) | Code obfuscation and controlling a processor by emulation | |
US20160203087A1 (en) | Method for providing security for common intermediate language-based program | |
US9607160B2 (en) | Method and apparatus for providing string encryption and decryption in program files | |
CN113569269B (zh) | 一种代码混淆的加密方法、装置、设备及可读介质 | |
CN111240654B (zh) | 一种Python代码加固保护的方法及其系统 | |
CN110569628B (zh) | 一种代码的混淆方法以及装置、计算机设备、存储介质 | |
CN108762788B (zh) | 一种基于服务器的嵌入式设备固件加密方法和系统 | |
CN110008662B (zh) | 应用程序的运行方法、装置、电子设备及可读存储介质 | |
CN111914225B (zh) | 一种源代码保护系统及源代码加密方法 | |
EP3729306B1 (en) | Compiling device and method | |
CN112115427A (zh) | 代码混淆方法、装置、电子设备及存储介质 | |
CN107871066B (zh) | 基于安卓系统的代码编译方法及装置 | |
CN110673852A (zh) | 一种基于编译器前端实现控制流平坦的方法、系统及设备 | |
KR102001046B1 (ko) | 공통 중간 언어를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 | |
CN108932407B (zh) | 一种程序安全保护方法及装置 | |
CN113434148B (zh) | 防解密客户端开发编译方法、装置、电子设备及存储介质 | |
CN106971111A (zh) | 数据加密方法、终端及服务器 | |
CN113626773B (zh) | 一种基于中间语言的代码保护方法 | |
CN113282294B (zh) | 基于安卓平台Java字符串混淆的方法和装置 | |
CN116257867A (zh) | 秘钥加密方法及装置 | |
CN114003868A (zh) | 一种处理软件代码的方法和电子设备 | |
CN114968206A (zh) | 一种编程语言代码动态混淆方法及系统 | |
CN114139117A (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 |