CN108595921A - 一种源代码中字符串的混淆方法和装置 - Google Patents

一种源代码中字符串的混淆方法和装置 Download PDF

Info

Publication number
CN108595921A
CN108595921A CN201810240825.9A CN201810240825A CN108595921A CN 108595921 A CN108595921 A CN 108595921A CN 201810240825 A CN201810240825 A CN 201810240825A CN 108595921 A CN108595921 A CN 108595921A
Authority
CN
China
Prior art keywords
character string
source code
constant
list
encrypted
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
Application number
CN201810240825.9A
Other languages
English (en)
Other versions
CN108595921B (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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201810240825.9A priority Critical patent/CN108595921B/zh
Publication of CN108595921A publication Critical patent/CN108595921A/zh
Application granted granted Critical
Publication of CN108595921B publication Critical patent/CN108595921B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种源代码中字符串的混淆方法和装置,该方法和装置应用于软件开发工具中,具体为利用Clang工具对待混淆源代码进行编译,得到语法树;对语法树进行遍历,得到源代码中字符串的字符串常量列表和字符串引用列表;根据字符串常量列表中指示的位置读出字符串常量并加密处理,并以加密后的加密字符串替换原有的字符串常量;根据字符串引用列表查找加密字符串,并在加密字符串所在源代码中的位置插入解密代码。通过替换处理,使源代码中所有的字符串常量转换为加密后的加密字符串,而不再是可能会造成泄密的明文信息,从而避免了相应的安全风险。

Description

一种源代码中字符串的混淆方法和装置
技术领域
本发明涉及软件开发技术领域,特别是涉及一种字符串的混淆方法和装置。
背景技术
基本上在所有的项目中,源代码都会用到非常多的字符串常量,这些字符串一般都是不经过任何加密或者混淆,直接以明文的方式写在代码中,包括加解密密钥以及UI界面中展示的字符。本申请的发明人发现,这些以明文状态存在于源代码中的字符串会导致应用程序中实现的加密算法形同虚设,另外还给攻击者找到破解入口提供了极大的便利,从而导致这些应用程序在安全上存在较大的风险。
发明内容
有鉴于此,本发明提供了一种源代码中字符串的混淆方法和装置,用于对项目中的字符串进行混淆,以避免字符串以明文状态存在而导致应用程序出现安全风险。
为了解决上述问题,本发明公开了一种源代码中字符串的混淆方法,应用于软件开发工具中,所述混淆方法包括步骤:
利用Clang工具对待混淆源代码进行编译,得到语法树;
对所述语法树进行遍历,得到所述源代码中字符串的字符串常量列表和字符串引用列表;
根据所述字符串常量列表中指示的位置读出字符串常量并加密处理,并以加密后的加密字符串替换原有的字符串常量;
根据所述字符串引用列表查找所述加密字符串,并在所述加密字符串所在所述源代码中的位置插入解密代码。
可选的,所述对所述语法树进行遍历,得到所述源代码中字符串的字符串常量列表和字符串引用列表,包括:
遍历所述语法树中的Token;
记录所有类型为字符串常量的Token以及在所述源代码中的位置,形成所述字符串常量列表;
记录所有用于对字符串进行引用的Token以及在所述源代码中的位置,形成所述字符串引用列表。
可选的,所述根据所述字符串常量列表中指示的位置读出字符串常量并加密处理,并以加密后的加密字符串替换原有的字符串常量,包括:
遍历所述字符串常量列表,根据所述字符串常量列表中的位置从所述源代码的所述位置中读出字符串常量;
利用预设的加密混淆算法对所述字符串常量进行加密混淆处理,得到加密混淆后的加密字符串;
以所述加密字符串常量替换所述位置处的字符串常量。
相应的,为了保证上述方法的实施,本发明还提供了一种源代码中字符串的混淆装置,应用于软件开发工具中,所述混淆装置包括:
代码编译模块,用于利用Clang工具对待混淆源代码进行编译,得到语法树;
列表生成模块,用于对所述语法树进行遍历,得到所述源代码中字符串的字符串常量列表和字符串引用列表;
加密处理模块,用于根据所述字符串常量列表中指示的位置读出字符串常量并加密处理,并以加密后的加密字符串替换原有的字符串常量;
代码插入模块,用于根据所述字符串引用列表查找所述加密字符串,并在所述加密字符串所在所述源代码中的位置插入解密代码。
可选的,所述列表生成模块包括:
语法树遍历单元,用于遍历所述语法树中的Token;
第一记录单元,用于记录所有类型为字符串常量的Token以及在所述源代码中的位置,形成所述字符串常量列表;
第二记录单元,用于记录所有用于对字符串进行引用的Token以及在所述源代码中的位置,形成所述字符串引用列表。
可选的,所述加密处理模块包括:
字符串读取单元,用于遍历所述字符串常量列表,根据所述字符串常量列表中的位置从所述源代码的所述位置中读出字符串常量;
加密计算单元,用于利用预设的加密混淆算法对所述字符串常量进行加密混淆处理,得到加密混淆后的加密字符串;
字符串替换单元,用于以所述加密字符串常量替换所述位置处的字符串常量。
从上述技术方案可以看出,本发明提供了一种源代码中字符串的混淆方法和装置,该方法和装置应用于软件开发工具中,具体为利用Clang工具对待混淆源代码进行编译,得到语法树;对语法树进行遍历,得到源代码中字符串的字符串常量列表和字符串引用列表;根据字符串常量列表中指示的位置读出字符串常量并加密处理,并以加密后的加密字符串替换原有的字符串常量;根据字符串引用列表查找加密字符串,并在加密字符串所在源代码中的位置插入解密代码。通过替换处理,使源代码中所有的字符串常量转换为加密后的加密字符串,而不再是可能会造成泄密的明文信息,从而避免了相应的安全风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种源代码中字符串的混淆方法的步骤流程图;
图2为本发明实施例提供的一种语法树的示例图;
图3为本发明实施例提供的一种源代码中字符串的混淆装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例提供的一种源代码中字符串的混淆方法的步骤流程图。
参照图1所示,本实施例提供的混淆方法应用于软件开发工具中,用于对应用程序项目的源代码中的字符串进行混淆处理,以便避免其中出现容易被人破解的明文字符串,该混淆方法具体包括步骤:
S101:利用Clang工具对带混淆源代码进行编译。
这里的源代码是指开发人员提前开发好的源代码,其中会包括许多的字符串,例如定义的变量、用于解密密钥和需要在UI界面中展示的字符等。在开发人员开发好源代码后,利用Clang工具对该源代码进行编译处理,从而得到源代码的语法树。
Low Level Virtual Machine(LLVM)是一个开源的编译器架构,它已经被成功应用到多个应用领域。其中,Clang工具是LLVM的一个编译器前端,它目前支持C,C++,Objective-C以及Objective-C++等编程语言。Clang对源程序进行词法分析和语义分析,并将分析结果转换为Abstract Syntax Tree语法树,最后使用LLVM作为后端代码的生成器。
Clang的开发目标是提供一个可以替代GCC的前端编译器。与GCC相比,Clang是一个重新设计的编译器前端,具有一系列优点,例如模块化,代码简单易懂,占用内存小以及容易扩展和重用等。由于Clang在设计上的优异性,使得Clang非常适合用于设计源代码级别的分析和转化工具。Clang也已经被应用到一些重要的开发领域,如Static Analysis是一个基于Clang的静态代码分析工具。
上述的语法树又称为抽象语法树AST(Abstract Syntax Tree),例如,下面的语句可以将相应字符串序列处理为许多个Token:
并形成相应的语法树,语法树如图2所示,其中的各分支所表示的含义如下:
FunctionDed:方法定义或者叫函数定义;
CompoundStmt:复合语句;
DedStmt:定义语句;
VarDecl:str1:变量定义:变量名为str1;
ObjCstringLiteral:Hello:Objc字符串常量:常量值“Hello”;
ObjCMessageExpr:stringByAppendingString:变量引用:表示引用名为str1的变量。
S102:通过遍历语法树得到字符串常量列表和字符串引用列表。
在对源代码进行编译得到语法树后,遍历该语法树,通过遍历查找其中的字符串常量并记录,从而得到上述字符串常量列表和字符串引用列表。具体来说过程如下:
首先,遍历上述语法树中的所有Token;当查找到相应Token的类型为字符串类型时,记录相应Token以及其在源代码中的位置,通过对所有类型为字符类型的Token和位置的记录,形成该字符串常量列表;相应的,当查找到用于对字符串进行引用的Token时,记录该Token及其在源代码中的位置,通过对所有这些Token和位置的记录,从而形成该字符串引用列表。
Token本意为标记,是词法分析的术语,词法分析是计算机科学中将字符序列转换为Token的过程,并在此过程中对Token进行分类。
S103:根据字符串常量列表对字符串常量进行加密处理。
具体来说是通过字符串常量列表所记录的Token,以及相应Token在源代码中的位置查找相应的字符串常量,并对该字符串常量进行加密处理,具体过程如下:
首先,通过遍历字符串常量列表依次查找相应的字符串常量的位置,并从该位置读出该字符串常量;然后,利用预设的加密混淆算法对读出的字符串常量进行加密处理,得到与相应字符串常量对应的加密字符串;最后,将该加密得到的加密字符串替换掉源代码中相应位置的字符串常量。从而使源代码中所有的字符串常量转换为加密后的加密字符串。
S104:将相应的解密代码插入到源代码中。
在将所有字符串常量变换为加密字符串后,遍历该字符串引用列表,根据字符串引用列表中查找相应的加密字符串,这里的加密字符串是指对相应字符串常量进行加密处理后得到的字符,在确定该加密字符串的位置后,在该位置插入相应的解密代码。该解密代码是指能够以此为信息对加密字符串进行解密从而得到原来的字符串常量的密码,一般来说其来源于上述加密混淆算法在进行加密处理时所需要的加密代码。
从上述技术方案可以看出,本实施例提供了一种源代码中字符串的混淆方法,该方法应用于软件开发工具中,具体为利用Clang工具对待混淆源代码进行编译,得到语法树;对语法树进行遍历,得到源代码中字符串的字符串常量列表和字符串引用列表;根据字符串常量列表中指示的位置读出字符串常量并加密处理,并以加密后的加密字符串替换原有的字符串常量;根据字符串引用列表查找加密字符串,并在加密字符串所在源代码中的位置插入解密代码。通过替换处理,使源代码中所有的字符串常量转换为加密后的加密字符串,而不再是可能会造成泄密的明文信息,从而避免了相应的安全风险。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例二
图3为本发明实施例提供的一种源代码中字符串的混淆装置的结构框图。
参照图3所示,本实施例提供的混淆装置应用于软件开发工具中,用于对应用程序项目的源代码中的字符串进行混淆处理,以便避免其中出现容易被人破解的明文字符串,该混淆装置具体包括代码编译模块10、列表生成模块20、加密处理模块30和代码插入模块40。
代码编译模块用于利用Clang工具对带混淆源代码进行编译。
这里的源代码是指开发人员提前开发好的源代码,其中会包括许多的字符串,例如定义的变量、用于解密密钥和需要在UI界面中展示的字符等。在开发人员开发好源代码后,利用Clang工具对该源代码进行编译处理,从而得到源代码的语法树。
列表生成模块用于通过遍历语法树得到字符串常量列表和字符串引用列表。
在对源代码进行编译得到语法树后,遍历该语法树,通过遍历查找其中的字符串常量并记录,从而得到上述字符串常量列表和字符串引用列表。该模块具体包括语法树遍历单元、第一记录单元和第二记录单元。
语法树遍历单元用于遍历上述语法树中的所有Token;第一记录单元用于当查找到相应Token的类型为字符串类型时,记录相应Token以及其在源代码中的位置,通过对所有类型为字符类型的Token和位置的记录,形成该字符串常量列表;第二记录单元用于当查找到用于对字符串进行引用的Token时,记录该Token及其在源代码中的位置,通过对所有这些Token的标识和位置的记录,从而形成该字符串引用列表。
加密处理模块用于根据字符串常量列表对字符串常量进行加密处理。
具体来说是通过字符串常量列表所记录的标识,以及该Token在源代码中的位置查找相应的字符串常量,并对该字符串常量进行加密处理,该模块包括字符串读取单元、加密计算单元和字符串替换单元。
字符串读取单元通过遍历字符串常量列表依次查找相应的字符串常量的位置,并从该位置读出该字符串常量;加密计算单元用于利用预设的加密混淆算法对读出的字符串常量进行加密处理,得到与相应字符串常量对应的加密字符串;字符串替换单元将该加密得到的加密字符串替换掉源代码中相应位置的字符串常量。从而使源代码中所有的字符串常量转换为加密后的加密字符串。
代码插入模块用于将相应的解密代码插入到源代码中。
在将所有字符串常量变换为加密字符串后,遍历该字符串引用列表,根据字符串引用列表中查找相应的加密字符串,这里的加密字符串是指对相应字符串常量进行加密处理后得到的字符,在确定该加密字符串的位置后,在该位置插入相应的解密代码。该解密代码是指能够以此为信息对加密字符串进行解密从而得到原来的字符串常量的密码,一般来说其来源于上述加密混淆算法在进行加密处理时所需要的加密代码。
从上述技术方案可以看出,本实施例提供了一种源代码中字符串的混淆装置,该装置应用于软件开发工具中,具体为利用Clang工具对待混淆源代码进行编译,得到语法树;对语法树进行遍历,得到源代码中字符串的字符串常量列表和字符串引用列表;根据字符串常量列表中指示的位置读出字符串常量并加密处理,并以加密后的加密字符串替换原有的字符串常量;根据字符串引用列表查找加密字符串,并在加密字符串所在源代码中的位置插入解密代码。通过替换处理,使源代码中所有的字符串常量转换为加密后的加密字符串,而不再是可能会造成泄密的明文信息,从而避免了相应的安全风险。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (6)

1.一种源代码中字符串的混淆方法,应用于软件开发工具中,其特征在于,所述混淆方法包括步骤:
利用Clang工具对待混淆源代码进行编译,得到语法树;
对所述语法树进行遍历,得到所述源代码中字符串的字符串常量列表和字符串引用列表;
根据所述字符串常量列表中指示的位置读出字符串常量并加密处理,并以加密后的加密字符串替换原有的字符串常量;
根据所述字符串引用列表查找所述加密字符串,并在所述加密字符串所在所述源代码中的位置插入解密代码。
2.如权利要求1所述的混淆方法,其特征在于,所述对所述语法树进行遍历,得到所述源代码中字符串的字符串常量列表和字符串引用列表,包括:
遍历所述语法树中的Token;
记录所有类型为字符串常量的Token以及在所述源代码中的位置,形成所述字符串常量列表;
记录所有用于对字符串进行引用的Token以及在所述源代码中的位置,形成所述字符串引用列表。
3.如权利要求1所述的混淆方法,其特征在于,所述根据所述字符串常量列表中指示的位置读出字符串常量并加密处理,并以加密后的加密字符串替换原有的字符串常量,包括:
遍历所述字符串常量列表,根据所述字符串常量列表中的位置从所述源代码的所述位置中读出字符串常量;
利用预设的加密混淆算法对所述字符串常量进行加密混淆处理,得到加密混淆后的加密字符串;
以所述加密字符串常量替换所述位置处的字符串常量。
4.一种源代码中字符串的混淆装置,应用于软件开发工具中,其特征在于,所述混淆装置包括:
代码编译模块,用于利用Clang工具对待混淆源代码进行编译,得到语法树;
列表生成模块,用于对所述语法树进行遍历,得到所述源代码中字符串的字符串常量列表和字符串引用列表;
加密处理模块,用于根据所述字符串常量列表中指示的位置读出字符串常量并加密处理,并以加密后的加密字符串替换原有的字符串常量;
代码插入模块,用于根据所述字符串引用列表查找所述加密字符串,并在所述加密字符串所在所述源代码中的位置插入解密代码。
5.如权利要求4所述的混淆装置,其特征在于,所述列表生成模块包括:
语法树遍历单元,用于遍历所述语法树中的Token;
第一记录单元,用于记录所有类型为字符串常量的Token以及在所述源代码中的位置,形成所述字符串常量列表;
第二记录单元,用于记录所有用于对字符串进行引用的Token以及在所述源代码中的位置,形成所述字符串引用列表。
6.如权利要求4所述的混淆装置,其特征在于,所述加密处理模块包括:
字符串读取单元,用于遍历所述字符串常量列表,根据所述字符串常量列表中的位置从所述源代码的所述位置中读出字符串常量;
加密计算单元,用于利用预设的加密混淆算法对所述字符串常量进行加密混淆处理,得到加密混淆后的加密字符串;
字符串替换单元,用于以所述加密字符串常量替换所述位置处的字符串常量。
CN201810240825.9A 2018-03-22 2018-03-22 一种源代码中字符串的混淆方法和装置 Active CN108595921B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810240825.9A CN108595921B (zh) 2018-03-22 2018-03-22 一种源代码中字符串的混淆方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810240825.9A CN108595921B (zh) 2018-03-22 2018-03-22 一种源代码中字符串的混淆方法和装置

Publications (2)

Publication Number Publication Date
CN108595921A true CN108595921A (zh) 2018-09-28
CN108595921B CN108595921B (zh) 2020-11-13

Family

ID=63627094

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810240825.9A Active CN108595921B (zh) 2018-03-22 2018-03-22 一种源代码中字符串的混淆方法和装置

Country Status (1)

Country Link
CN (1) CN108595921B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992935A (zh) * 2019-03-15 2019-07-09 同盾控股有限公司 一种源代码保护方法及装置
CN110309629A (zh) * 2019-06-18 2019-10-08 阿里巴巴集团控股有限公司 一种网页代码加固方法、装置及设备
CN110457869A (zh) * 2019-07-23 2019-11-15 Oppo广东移动通信有限公司 程序编译加密方法、装置、存储介质及电子设备
CN110471666A (zh) * 2019-07-18 2019-11-19 五八有限公司 代码自动转换方法和装置、代码转换器及介质
CN110598379A (zh) * 2019-09-23 2019-12-20 北京智游网安科技有限公司 一种实现字符串混淆的方法、系统、设备及存储介质
CN110647329A (zh) * 2019-08-13 2020-01-03 平安科技(深圳)有限公司 代码混淆方法、装置、计算机设备和存储介质
CN110765425A (zh) * 2019-10-25 2020-02-07 杭州涂鸦信息技术有限公司 一种对ios应用程序源代码进行混淆保护的方法及系统
CN111159662A (zh) * 2019-12-25 2020-05-15 郑州阿帕斯数云信息科技有限公司 一种数据的处理方法和装置
CN111428209A (zh) * 2019-01-10 2020-07-17 腾讯科技(深圳)有限公司 一种应用程序的混淆方法、装置及存储介质
CN112804184A (zh) * 2019-11-13 2021-05-14 阿里巴巴集团控股有限公司 数据混淆方法、装置及设备
CN113282294A (zh) * 2021-05-19 2021-08-20 武汉极意网络科技有限公司 基于安卓平台Java字符串混淆的方法和装置
CN113282892A (zh) * 2021-04-16 2021-08-20 南方电网数字电网研究院有限公司 代码混淆方法、装置、计算机设备和存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1971519A (zh) * 2005-11-24 2007-05-30 富士施乐株式会社 用于生成受保护可执行程序的设备、存储介质和方法
CN101227451A (zh) * 2007-01-19 2008-07-23 阿里巴巴公司 通过Web表单获得用户交互数据的方法及系统
CN104091100A (zh) * 2014-07-15 2014-10-08 电子科技大学 一种基于编译中间结果的软件保护方法
CN104751024A (zh) * 2013-12-27 2015-07-01 腾讯科技(深圳)有限公司 一种对核心源代码进行加密的方法及装置
CN104951674A (zh) * 2014-03-28 2015-09-30 中国银联股份有限公司 用于应用程序的信息隐藏方法
CN105335151A (zh) * 2014-08-14 2016-02-17 优视科技有限公司 安装文件的保护方法及装置
CN105701410A (zh) * 2015-12-31 2016-06-22 华为技术有限公司 一种获得源代码中信息的方法、装置及系统
CN106326693A (zh) * 2016-08-18 2017-01-11 广州优视网络科技有限公司 应用程序的代码混淆方法及装置
CN106599620A (zh) * 2016-11-16 2017-04-26 中国人民解放军国防科学技术大学 一种基于动态代码变换的二进制软件保护方法
CN106778100A (zh) * 2016-12-01 2017-05-31 北京智游网安科技有限公司 基于安卓平台和ios平台的混淆编译方法及混淆编译器
CN107194245A (zh) * 2017-05-12 2017-09-22 南京大学 一种针对Linux内核页表隔离的功能调用改造方法
CN107908933A (zh) * 2017-11-08 2018-04-13 北京顶象技术有限公司 一种基于中间语言的字符串加密方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1971519A (zh) * 2005-11-24 2007-05-30 富士施乐株式会社 用于生成受保护可执行程序的设备、存储介质和方法
CN101227451A (zh) * 2007-01-19 2008-07-23 阿里巴巴公司 通过Web表单获得用户交互数据的方法及系统
CN104751024A (zh) * 2013-12-27 2015-07-01 腾讯科技(深圳)有限公司 一种对核心源代码进行加密的方法及装置
CN104951674A (zh) * 2014-03-28 2015-09-30 中国银联股份有限公司 用于应用程序的信息隐藏方法
CN104091100A (zh) * 2014-07-15 2014-10-08 电子科技大学 一种基于编译中间结果的软件保护方法
CN105335151A (zh) * 2014-08-14 2016-02-17 优视科技有限公司 安装文件的保护方法及装置
CN105701410A (zh) * 2015-12-31 2016-06-22 华为技术有限公司 一种获得源代码中信息的方法、装置及系统
CN106326693A (zh) * 2016-08-18 2017-01-11 广州优视网络科技有限公司 应用程序的代码混淆方法及装置
CN106599620A (zh) * 2016-11-16 2017-04-26 中国人民解放军国防科学技术大学 一种基于动态代码变换的二进制软件保护方法
CN106778100A (zh) * 2016-12-01 2017-05-31 北京智游网安科技有限公司 基于安卓平台和ios平台的混淆编译方法及混淆编译器
CN107194245A (zh) * 2017-05-12 2017-09-22 南京大学 一种针对Linux内核页表隔离的功能调用改造方法
CN107908933A (zh) * 2017-11-08 2018-04-13 北京顶象技术有限公司 一种基于中间语言的字符串加密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
同程SRC: "为OLLVM添加字符串混淆功能", 《HTTPS://BBS.ICHUNQIU.COM/THREAD-24423-1-1.HTML?FROM=KX1》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111428209B (zh) * 2019-01-10 2023-09-19 腾讯科技(深圳)有限公司 一种应用程序的混淆方法、装置及存储介质
CN111428209A (zh) * 2019-01-10 2020-07-17 腾讯科技(深圳)有限公司 一种应用程序的混淆方法、装置及存储介质
CN109992935A (zh) * 2019-03-15 2019-07-09 同盾控股有限公司 一种源代码保护方法及装置
CN110309629A (zh) * 2019-06-18 2019-10-08 阿里巴巴集团控股有限公司 一种网页代码加固方法、装置及设备
CN110309629B (zh) * 2019-06-18 2023-10-10 创新先进技术有限公司 一种网页代码加固方法、装置及设备
CN110471666A (zh) * 2019-07-18 2019-11-19 五八有限公司 代码自动转换方法和装置、代码转换器及介质
CN110457869A (zh) * 2019-07-23 2019-11-15 Oppo广东移动通信有限公司 程序编译加密方法、装置、存储介质及电子设备
CN110647329A (zh) * 2019-08-13 2020-01-03 平安科技(深圳)有限公司 代码混淆方法、装置、计算机设备和存储介质
CN110598379A (zh) * 2019-09-23 2019-12-20 北京智游网安科技有限公司 一种实现字符串混淆的方法、系统、设备及存储介质
CN110765425A (zh) * 2019-10-25 2020-02-07 杭州涂鸦信息技术有限公司 一种对ios应用程序源代码进行混淆保护的方法及系统
CN112804184A (zh) * 2019-11-13 2021-05-14 阿里巴巴集团控股有限公司 数据混淆方法、装置及设备
CN112804184B (zh) * 2019-11-13 2023-10-10 阿里巴巴集团控股有限公司 数据混淆方法、装置及设备
CN111159662A (zh) * 2019-12-25 2020-05-15 郑州阿帕斯数云信息科技有限公司 一种数据的处理方法和装置
CN113282892A (zh) * 2021-04-16 2021-08-20 南方电网数字电网研究院有限公司 代码混淆方法、装置、计算机设备和存储介质
CN113282294A (zh) * 2021-05-19 2021-08-20 武汉极意网络科技有限公司 基于安卓平台Java字符串混淆的方法和装置

Also Published As

Publication number Publication date
CN108595921B (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
CN108595921A (zh) 一种源代码中字符串的混淆方法和装置
US10778441B2 (en) Redactable document signatures
US11232216B1 (en) Systems and methods for generation of secure indexes for cryptographically-secure queries
CN109992935B (zh) 一种源代码保护方法及装置
CN100547590C (zh) 文档处理系统
US8667301B2 (en) Obfuscating transformations on data array content and addresses
US8589897B2 (en) System and method for branch extraction obfuscation
CN105117621B (zh) 代码混淆的控制流平展化
CN105354449A (zh) 一种面向Lua语言的加扰混淆方法和解密方法
CN104462990B (zh) 字符串加解密方法和装置
CN110598379B (zh) 一种实现字符串混淆的方法、设备及存储介质
CN106970820A (zh) 代码存储方法及代码存储装置
US20120144208A1 (en) Indexed table based code encrypting/decrypting device and method thereof
CN104751024B (zh) 一种对核心源代码进行加密的方法及装置
WO2007091558A1 (ja) プログラム難読化装置
CN105022936A (zh) 一种类class文件加密解密方法和装置
CN105335151A (zh) 安装文件的保护方法及装置
US10572635B2 (en) Automatic correction of cryptographic application program interfaces
US8677149B2 (en) Method and system for protecting intellectual property in software
CN106960156A (zh) 基于应用程序的数据加密及访问方法、装置
CN109800582A (zh) 可溯源的多方数据处理方法、装置及设备
CN112256275A (zh) 代码混淆方法、装置、电子设备及介质
CN109740314A (zh) 一种swf混淆加密的方法
CN106598828A (zh) 一种源代码中的无效类确定方法及装置
US10013517B1 (en) High level programming language core protection for high level synthesis

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