CN113434148B - 防解密客户端开发编译方法、装置、电子设备及存储介质 - Google Patents

防解密客户端开发编译方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113434148B
CN113434148B CN202110738031.7A CN202110738031A CN113434148B CN 113434148 B CN113434148 B CN 113434148B CN 202110738031 A CN202110738031 A CN 202110738031A CN 113434148 B CN113434148 B CN 113434148B
Authority
CN
China
Prior art keywords
encryption
character string
function
code
constant
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
CN202110738031.7A
Other languages
English (en)
Other versions
CN113434148A (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.)
Guangdong Xunwei Information Industry Co ltd
Shenzhen Lian Intellectual Property Service Center
Original Assignee
Guangdong Xunwei Information Industry 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 Guangdong Xunwei Information Industry Co ltd filed Critical Guangdong Xunwei Information Industry Co ltd
Priority to CN202110738031.7A priority Critical patent/CN113434148B/zh
Publication of CN113434148A publication Critical patent/CN113434148A/zh
Application granted granted Critical
Publication of CN113434148B publication Critical patent/CN113434148B/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/42Syntactic analysis
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis
    • 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/436Semantic checking

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 Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及研发管理领域,提供一种防解密客户端开发编译方法,首先通过对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于字符串生成抽象语法树,再根据该抽象语法树生成关键代码,并根据该关键代码调用加密符,从而根据加密符在关键代码中查找待加密的常量字符串,并根据常量字符串的类型调用加密函数,而后将基于预设加密算法生成的密文输入加密函数以生成解密函数,并基于解密函数替换常量字符串形成不规则码以完成编译,从而优化代码的保护强度,使得攻击者无法轻易拿到表征代码逻辑信息的字符串,同时为每一个常量字符串随机生成加密密钥使得攻击者破解的难度增加,防止攻击者拿到App业务逻辑的原始信息。

Description

防解密客户端开发编译方法、装置、电子设备及存储介质
技术领域
本发明涉及研发管理领域,涉及一种开发编译方法,尤其涉及一种防解密客户端开发编译方法、装置、电子设备及计算机可读存储介质。
背景技术
现有iOS开发过程中,开发人员常常将一些表征业务逻辑的字符串或者加密的密钥设置为常量,在标准的App的编译过程中,编译器会用明文的方式把字符串编码存放在Mach-O文件的__TEXT段中,存放并打包完成后的数据包发布到应用市场(App Store)之后,被攻击者下载脱壳后,可以轻易的使用现有的反编译工具(IDA、Hopper)查看这些字符串或者加密密钥,然后结合逆向过程中的一些其他信息(抓包数据、反编译伪代码)能够轻易的破解出现有的业务逻辑,开展攻击(虚拟登陆、爬虫、自动化脚本),给业务造成损失。
比如:若字符串是个域名,那么攻击者可以争对该域名进行DOS(Denial ofService)攻击,造成服务器压力过大,致使正常用户无法访问;若字符串是个服务端加密密钥,那么攻击者可以通过加密密钥拿到服务器的访问权限然后进行信息盗取爬虫;若加密密钥是用户本地资料的加密密钥,攻击者拿到之后就可以通过用户备份的导出数据然后使用密钥破解的方式进行用户资料破解造成用户损失;若字符串包含了代码设计信息,那么攻击者可以通过字符串推断出原代码设计者的设计意图进行APP破解造成损失。
因此,亟需一种能够优化代码的保护强度,使得攻击者无法轻易拿到表征代码逻辑信息的字符串,提高整体安全性的防解密客户端开发编译方法。
发明内容
本发明提供一种防解密客户端开发编译方法、装置、电子设备及计算机可读存储介质,其主要目的在于能够解决传统的客户端开发编译可以轻易的使用现有的反编译工具(IDA、Hopper)查看这些字符串或者加密密钥,然后结合逆向过程中的一些其他信息(抓包数据、反编译伪代码)能够轻易的破解出现有的业务逻辑,开展攻击(虚拟登陆、爬虫、自动化脚本),给业务造成损失的问题。
为实现上述目的,本发明提供的一种防解密客户端开发编译方法,包括:
对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于所述字符串生成抽象语法树;
遍历所述抽象语法树以生成关键代码,并根据所述关键代码调用加密符;
通过所述加密符在所述关键代码中查找待加密的常量字符串,并根据所述常量字符串的类型调用加密函数;
将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译。
可选地,所述对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于所述字符串生成抽象语法树,包括:
按照预设命令对代码进行编译操作以形成包含编译代码的源文件;
对所述编译代码进行关于词法分析的顺序扫描以对所述编译代码进行分割生成字符;
对所述字符进行语义分析以生成与所述字符相对应的结构体,并将所述字符的类型与字面值记录在所述结构体的字段中以生成字符串;
将所述字符串内的结构体进行组合以形成完整语义;其中,所述完整语义至少包括表达式、语句;
判断所述完整语义的排版是否存在代码语法错误,若存在代码语法错误,则对所述源文件进行报错终止处理,若不存在语法错误,则根据所述完整语义生成抽象语法树。
可选地,所述遍历所述抽象语法树以生成关键代码,并根据所述关键代码调用加密符,包括:
通过遍历所述抽象语法树对所述抽象语法树进行解析处理以生成关于所述抽象语法树中字符串的类型信息;
根据所述类型信息生成关键代码;其中,所述关键代码为内存格式;
根据所述关键代码依次调用加密符。
可选地,所述通过所述加密符在所述关键代码中查找待加密的常量字符串,并根据所述常量字符串的类型调用加密函数,包括:
使用所述加密符依次对所述关键代码进行优化处理以形成优化码;
通过所述加密符中的加密PASS在所述优化码中查找待加密的关键代码;
查找与所述关键代码相对应的常量字符串;
对所述常量字符串进行类型分析以判断所述常量字符串的属性值;
调用与所述属性值相对应的加密函数。
可选地,所述属性值包括cstring和cfstring;
若所述常量字符串为C字符串,则所述属性值为cstring;若所述常量字符串为Objective-C字符串,则所述属性值为cfstring。
可选地,所述将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译,包括:
为所述常量字符串随机生成加密密钥;
通过预设的加密算法,将所述加密密钥与所述常量字符串进行加密处理,生成密文;
将所述加密密钥、所述密文以及所述加密算法的标识符作为所述加密函数的参数共同输入到所述加密函数中以形成解密函数;
通过所述解密函数对所述加密函数进行解密,以使所述函数体替换所述常量字符串以形成不规则码完成编译,其中,所述函数体通过调用与所述属性值相对应的加密函数生成。
可选地,所述为所述常量字符串随机生成加密密钥,包括:
通过随机算法生成随机长度的随机数;
基于所述随机数根据md5算法为所述常量字符串随机生成加密密钥。
为了解决上述问题,本发明还提供一种防解密客户端开发编译装置,所述装置包括:
抽象语法单元,用于对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于所述字符串生成抽象语法树;
加密调用单元,用于遍历所述抽象语法树以生成关键代码,并根据所述关键代码调用加密符;
加密函数单元,用于通过所述加密符在所述关键代码中查找待加密的常量字符串,并根据所述常量字符串的类型调用加密函数;
密文编译单元,用于将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现上述所述的防解密客户端开发编译方法中的步骤。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的防解密客户端开发编译方法。
本发明实施例首先通过对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于字符串生成抽象语法树,再根据该抽象语法树生成关键代码,并根据该关键代码调用加密符,从而根据加密符在关键代码中查找待加密的常量字符串,并根据常量字符串的类型调用加密函数,而后将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译,从而优化代码的保护强度,使得攻击者无法轻易拿到表征代码逻辑信息的字符串,同时为每一个常量字符串随机生成加密密钥使得攻击者破解的难度大大增加,防止攻击者拿到App业务逻辑的原始信息,并且破坏逆向过程的闭环,即使攻击者拿到了其他的信息,也无法继续进行破解。
附图说明
图1为本发明一实施例提供的防解密客户端开发编译方法的流程示意图;
图2为本发明一实施例提供的防解密客户端开发编译装置的模块示意图;
图3为本发明一实施例提供的实现防解密客户端开发编译方法的电子设备的内部结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有iOS开发过程中,开发人员常常将一些表征业务逻辑的字符串或者加密的密钥设置为常量,在标准的App的编译过程中,编译器会用明文的方式把字符串编码存放在Mach-O文件的__TEXT段中。打包完成后的包发布到应用市场(App Store)之后,被攻击者下载脱壳后,可以轻易的使用现有的反编译工具(IDA、Hopper)查看这些字符串或者加密密钥,然后结合逆向过程中的一些其他信息(抓包数据、反编译伪代码)轻易的破解出现有的业务逻辑,开展攻击(虚拟登陆、爬虫、自动化脚本),给业务造成损失,比如:
①如果字符串是个域名,那么攻击者可以争对域名进行DOS(Denial of Service)攻击,造成服务器压力过大,正常用户无法访问;
②如果字符串是个服务端加密密钥,那么攻击者可以通过加密密钥拿到服务器的访问权限然后进行信息盗取爬虫;
③如果加密密钥是用户本地资料的加密密钥,攻击者拿到之后就可以通过用户备份的导出数据然后使用密钥破解的方式进行用户资料破解造成用户损失;
④如果字符串包含了代码设计信息,那么攻击者可以通过字符串推断出原代码设计者的设计意图进行APP破解造成损失,而在完成PASS加密之后攻击者没法轻易拿到这些数据,增加了攻击成本,这些信息加密之后即使被攻击者或者,也需要在运行时再能完成解密,使得攻击者无法发动攻击。
为了解决上述问题,本发明提供一种防解密客户端开发编译方法。参照图1所示,为本发明一实施例提供的防解密客户端开发编译方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,防解密客户端开发编译方法包括:
S1:对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于该字符串生成抽象语法树;
S2:遍历该抽象语法树以生成关键代码,并根据该关键代码调用加密符;
S3:通过该加密符在该关键代码中查找待加密的常量字符串,并根据该常量字符串的类型调用加密函数;
S4:将基于预设加密算法生成的密文输入加密函数以生成解密函数,并基于解密函数替换常量字符串形成不规则码以完成编译。
在图1所示的实施例中,步骤S1为对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于该字符串生成抽象语法树,该步骤S1包括:
S11:按照预设命令对代码进行编译操作以形成包含编译代码的源文件;
S12:对该编译代码进行关于词法分析的顺序扫描以对该编译代码进行分割生成字符;
S13:对该字符进行语义分析以生成与该字符相对应的结构体,并将该字符的类型与字面值记录在该结构体的字段中以生成字符串;即每生成一个字符,则新建一个结构体;
S14:将该字符串内的结构体进行组合以形成完整语义;其中,该完整语义至少包括表达式、语句;
S15:判断该完整语义的排版是否存在代码语法错误,若存在代码语法错误,则对该源文件进行报错终止处理,若不存在语法错误,则根据该完整语义生成抽象语法树。
具体的,在本实施例中,步骤S11为编译阶段,即按照预设的指令进行编译以向生成APP的方向靠近,形成关于该APP的源文件,并且,在该源文件中包括编译代码;
步骤S12为词法分析阶段,通过编译器将源文件按左至右的顺序扫描,将源文件内所有代码按其字符流分割成一个个的词(也称为token),其中,每一个token,都是源文件中不可再进一步分割的一串字符,其类型包含:常数(整数、小数、字符、字符串等),操作符(算术操作符、比较操作符、逻辑操作符),分隔符(逗号、分号、括号等),保留字,标识符(变量名、函数名、类名等)等;
步骤S13为语义分析阶段,即基于步骤S12每生成一个字符,则新建一个结构体,在本实施例中,每扫描到一个完整的token后,则立即新建一个token record结构体,该结构体内主要包含type字段和value字段,将token的类型与字面值记录在该结构体的字段中,即将token的类型记录在token record结构的type字段中,将其字面值记录在value字段中,当一个token record构造完成后立即扫描下一个token,如此循环往复基于基于该源文件的源程序即转变为一个连续的token流;
步骤S14为重组阶段,即将经过步骤S13语义分析完成的tokens(即token流内的token record)组合在一起,形成表达式、语句等;
步骤S15为检查判断阶段,即检查组合在一起的tokens是否符合它们排版在一起的意义,即是否是一个完整的表达式、语句或者函数,如果不符合意义,代表源文件内的代码语法等错误,那么整个流程会报错终止;如果符合意义,该阶段会根据tokens数据最终生成抽象语法树,在本实施例中,该抽象语法树为AST抽象语法树。
在图1所示的实施例中,步骤S2为遍历抽象语法树以生成关键代码,并根据关键代码调用加密符;其中,遍历该抽象语法树以生成关键代码,并根据该关键代码调用加密符的步骤,包括:
S21:通过遍历该抽象语法树对该抽象语法树进行解析处理以生成关于该抽象语法树中字符串的类型信息;
S22:根据该类型信息生成关键代码;其中,该关键代码为内存格式;
S23:根据该关键代码依次调用各个类别的加密符;其中,该加密符至少包括加密PASS;
具体的,在步骤S21、步骤S22中,通过遍历上一步生成的AST抽象语法树并从符号表中收集有关类型的信息,从而执行解析生成关键代码,执行主体不做限制,在本实施例中,执行主体为语义分析器,该关键代码为IR,该IR为LLVM优化和进行代码生成的关键,是一种代码和机器码的中间格式,IR的格式为内存格式,可以被后面的加密符进行直接PASS处理,减少环节上的损耗,至此整个编译前端完成输出;
步骤S23为调用加密符进行优化处理的过程,加密符为PASS,该PASS包括分析PASS、转化PASS、优化PASS和加密PASS等数十种PASS,以用于对该关键代码进行优化处理,在步骤S23中,LLVM接收到步骤S22输出的IR之后,会调起处理IR的PASS(加密符)进行编译优化,整个过程会经过数十个PASS,这些PASS分为分析类PASS和转化类PASS,分析类PASS为转化类PASS提供数据的前期处理,由于使用编译参数控制clang编译主程序调起加密模块,所以需要被处理的IR会自动作为PASS的输入进入PASS的后续处理流程以完成优化;其中,LLVM为编译器工具链;LLVM Pass:LLVM编译器工具链用于IR处理的一部分,编译过程必定会经过一系列的Pass处理,可以通过插入自定义的Pass,实现编译过程特定功能;加密Pass即自实现加密功能的LLVM Pass。
在图1所示的实施例中,步骤S3为通过加密符在该关键代码中查找待加密的常量字符串,并根据常量字符串的类型调用加密函数;其中,通过该加密符在该关键代码中查找待加密的常量字符串,并根据该常量字符串的类型调用加密函数,包括:
S31:使用加密符依次对关键代码进行优化处理以形成优化码;
S32:通过该加密符中的加密PASS在该优化码中查找待加密的关键代码;
S33:查找与该关键代码相对应的常量字符串;
S34:对该常量字符串进行类型分析以判断该常量字符串的属性值;其中,该属性值包括cstring和cfstring;
若该常量字符串为C字符串,则该属性值为cstring;若该常量字符串为Objective-C字符串,则该属性值为cfstring;
S35:调用与该属性值相对应的加密函数。
具体的,步骤S31、S32、S33为判断常量字符串的类型的过程,从而根据常量字符串的类型进行步骤S34,步骤S34即调用加密函数的过程,换句话说即为用不同的加密函数(区分Objective-C和C)对于Objective-C和C的字符串进行加密包装以形成函数体,其中,具体的包装过程为:使用一个map来存储需要加密的常量字符串来提升处理效率,key为原本的Objective-C或C字符串,value为一个func即函数体,该函数体接受一个加密后的字符串、加密密钥和算法编号为入参,返回值为原有的Objective-C或C字符串。
在图1所示的实施例中,步骤S4为将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译;其中,将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于解密函数替换所述常量字符串形成不规则码以完成编译的步骤,包括:
S41:为该常量字符串随机生成加密密钥;
S42:通过预设的加密算法,将该加密密钥与该常量字符串进行加密处理,生成密文;
S43:将该加密密钥、该密文以及该加密算法的标识符作为该加密函数的参数共同输入到该加密函数中以形成解密函数;
S44:通过该解密函数对加密函数进行解密,以使该函数体替换该常量字符串以形成不规则码完成编译,其中,该函数体通过调用与所述属性值相对应的加密函数生成。
具体的,在步骤S41中,为该常量字符串随机生成加密密钥的步骤,包括:
S411:通过随机算法生成随机长度的随机数;在本实施例中,该随机算法为RNGSeed算法;
S412:基于该随机数根据md5算法为该常量字符串随机生成加密密钥。
步骤S42中,基于加密算法根据该加密密钥与该常量字符串生成密文的步骤,包括:
S421:在预设的AES、ChaCha、rc4算法中随机选择一种作为加密算法,并记录该加密算法的编号;
S422:将该加密密钥和该常量字符串共同输入该加密算法中以生成密文;
步骤S43为将加密密钥、密文以及加密算法的编号共同输入加密函数中以作为加密函数的参数形成解密函数,即将上一步生成的密文、加密密钥、以及随机选择的加密算法的编号填入加密函数的参数中,如此在代码运行过程中,加密函数会根据这些填入的参数将原来的常量字符串解密出来再使用,换句话说对外看起来似乎是不规则码,但加密函数能够将该不规则码解密形成原来的常量字符串,以进行APP编写;
步骤S44为使函数体替换常量字符串以生成不规则码完成编译,函数体为在步骤S34右加密函数生成的,以函数体替代常量字符串,对于外界任何组件看来均为不规则码、无序码的形式,但是只有基于步骤S43中提到的解密函数方能够根据该不规则码完成APP的编译,如此,当将打包完成后的APP包发布到应用市场(App Store)之后,被攻击者下载脱壳后,通过现有的反编译工具(IDA、Hopper)并不能够查看这些字符串或者加密密钥,也并不能够结合逆向过程中的一些其他信息(抓包数据、反编译伪代码)破解出现有的业务逻辑,开展攻击(虚拟登陆、爬虫、自动化脚本),如此防止黑客攻击,减少业务损失。
此外,后续还需将上述过程中的原字符串-加密算法-加密密钥-加密后的字符串整理位一个列表(对应关系为行对应即每行都包含了加密过程的关键信息),将该列表作为加密报告进行输出,以用作后续App指标分析。
本发明提供的防解密客户端开发编译方法,首先通过对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于字符串生成抽象语法树,再根据该抽象语法树生成关键代码,并根据该关键代码调用加密符,从而根据加密符在关键代码中查找待加密的常量字符串,并根据常量字符串的类型调用加密函数,而后将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译,从而优化代码的保护强度,使得攻击者无法轻易拿到表征代码逻辑信息的字符串,同时为每一个常量字符串随机生成加密密钥使得攻击者破解的难度大大增加,防止攻击者拿到App业务逻辑的原始信息,并且破坏逆向过程的闭环,即使攻击者拿到了其他的信息,也无法继续进行破解。
如上所述,在图1所示的实施例中,本发明提供的防解密客户端开发编译方法:①检查组合在一起的tokens是否符合它们排版在一起的意义,即是否是一个完整的表达式、语句或者函数,如果不符合意义,代表源文件内的代码语法等错误,那么整个流程会报错终止,如果符合意义,该阶段会根据tokens数据最终生成抽象语法树提高编译逻辑性;②通过遍历AST抽象语法树并从符号表中收集有关类型的信息,从而执行解析生成关键代码,该关键代码为IR,该IR为LLVM优化和进行代码生成的关键,是一种代码和机器码的中间格式,可以被后面的加密符进行直接PASS处理,减少环节上的损耗,至此整个编译前端完成输出;③编译过程必定会经过一系列的Pass处理,可以通过插入自定义的Pass,实现编译过程特定功能,并且通过加密符中的加密PASS在优化码中查找待加密的关键代码以对常量字符串进行加密处理,提高安全性;④将加密密钥、密文以及加密算法的编号共同输入加密函数中以作为加密函数的参数形成解密函数,基于解密函数使函数体替换常量字符串以生成不规则码完成编译,如此将打包完成后的APP包发布到应用市场之后,被攻击者下载脱壳后,通过现有的反编译工具并不能够查看这些字符串或者加密密钥,也并不能够结合逆向过程中的一些其他信息破解出现有的业务逻辑,开展攻击。
如图2所示,本发明提供一种防解密客户端开发编译装置100,本发明可以安装于电子设备中。根据实现的功能,该防解密客户端开发编译装置100可以包括抽象语法单元101、加密调用单元102、加密函数单元103、密文编译单元104。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
抽象语法单元101,用于对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于该字符串生成抽象语法树;
加密调用单元102,用于遍历该抽象语法树以生成关键代码,并根据该关键代码调用加密符;
加密函数单元103,用于通过该加密符在该关键代码中查找待加密的常量字符串,并根据该常量字符串的类型调用加密函数;
密文编译单元104,用于将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译。
其中,抽象语法单元101对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于该字符串生成抽象语法树的步骤包括:
按照预设命令对代码进行编译操作以形成包含编译代码的源文件;
对该编译代码进行关于词法分析的顺序扫描以对该编译代码进行分割生成字符;
对该字符进行语义分析以生成与该字符相对应的结构体,并将该字符的类型与字面值记录在该结构体的字段中以生成字符串;即每生成一个字符,则新建一个结构体;
将该字符串内的结构体进行组合以形成完整语义;其中,该完整语义至少包括表达式、语句;
判断该完整语义的排版是否存在代码语法错误,若存在代码语法错误,则对该源文件进行报错终止处理,若不存在语法错误,则根据该完整语义生成抽象语法树。
加密调用单元102遍历该抽象语法树以生成关键代码,并根据该关键代码调用加密符的步骤,包括:
通过遍历该抽象语法树对该抽象语法树进行解析处理以生成关于该抽象语法树中字符串的类型信息;
根据该类型信息生成关键代码;其中,该关键代码为内存格式;
根据该关键代码依次调用各个类别的加密符;其中,该加密符至少包括加密PASS。
加密函数单元103通过该加密符在该关键代码中查找待加密的常量字符串,并根据该常量字符串的类型调用加密函数,包括:
使用加密符依次对关键代码进行优化处理以形成优化码;
通过该加密符中的加密PASS在该优化码中查找待加密的关键代码;
查找与该关键代码相对应的常量字符串;
对该常量字符串进行类型分析以判断该常量字符串的属性值;其中,该属性值包括cstring和cfstring;
若该常量字符串为C字符串,则该属性值为cstring;若该常量字符串为Objective-C字符串,则该属性值为cfstring;
调用与该属性值相对应的加密函数。
密文编译单元104将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译的步骤,包括:
为该常量字符串随机生成加密密钥;
通过预设的加密算法,将该加密密钥与该常量字符串进行加密处理,生成密文;
将该加密密钥、该密文以及该加密算法的标识符作为该加密函数的参数共同输入该到加密函数中以形成解密函数;
通过该解密函数对加密函数进行解密,以使该函数体替换该常量字符串以形成不规则码完成编译,其中,函数体通过调用与所述属性值相对应的加密函数生成。
其中,为该常量字符串随机生成加密密钥的步骤,包括:
通过随机算法生成随机长度的随机数;在本实施例中,该随机算法为RNGSeed算法;
基于该随机数根据md5算法为该常量字符串随机生成加密密钥;
基于加密算法根据该加密密钥与该常量字符串生成密文的步骤,包括:
在预设的的AES、ChaCha、rc4算法中随机选择一种作为加密算法,并记录该加密算法的编号;
将该加密密钥和该常量字符串共同输入该加密算法中以生成密文。
如上所述,本发明提供的防解密客户端开发编译装置,首先通过抽象语法单元101对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于字符串生成抽象语法树,再通过加密调用单元102根据该抽象语法树生成关键代码,并根据该关键代码调用加密符,从而使加密函数单元103根据加密符在关键代码中查找待加密的常量字符串,并根据常量字符串的类型调用加密函数,而后通过密文编译单元104将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译,从而优化代码的保护强度,使得攻击者无法轻易拿到表征代码逻辑信息的字符串,同时为每一个常量字符串随机生成加密密钥使得攻击者破解的难度大大增加,防止攻击者拿到App业务逻辑的原始信息,并且破坏逆向过程的闭环,即使攻击者拿到了其他的信息,也无法继续进行破解。
如上所述,本发明提供的防解密客户端开发编译装置:①检查组合在一起的tokens是否符合它们排版在一起的意义,即是否是一个完整的表达式、语句或者函数,如果不符合意义,代表源文件内的代码语法等错误,那么整个流程会报错终止,如果符合意义,该阶段会根据tokens数据最终生成抽象语法树提高编译逻辑性;②通过遍历AST抽象语法树并从符号表中收集有关类型的信息,从而执行解析生成关键代码,该关键代码为IR,该IR为LLVM优化和进行代码生成的关键,是一种代码和机器码的中间格式,可以被后面的加密符进行直接PASS处理,减少环节上的损耗,至此整个编译前端完成输出;③编译过程必定会经过一系列的Pass处理,可以通过插入自定义的Pass,实现编译过程特定功能,并且通过加密符中的加密PASS在优化码中查找待加密的关键代码以对常量字符串进行加密处理,提高安全性;④将加密密钥、密文以及加密算法的编号共同输入加密函数中以作为加密函数的参数形成解密函数,基于解密函数使函数体替换常量字符串以生成不规则码完成编译,如此将打包完成后的APP包发布到应用市场之后,被攻击者下载脱壳后,通过现有的反编译工具并不能够查看这些字符串或者加密密钥,也并不能够结合逆向过程中的一些其他信息破解出现有的业务逻辑,开展攻击。
如图3所示,本发明提供一种防解密客户端开发编译的电子设备1。
该电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在存储器11中并可在所述处理器10上运行的计算机程序,如防解密客户端开发编译程序12。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如防解密客户端开发编译程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如防解密客户端开发编译程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的防解密客户端开发编译程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于该字符串生成抽象语法树;
遍历该抽象语法树以生成关键代码,并根据该关键代码调用加密符;
通过该加密符在该关键代码中查找待加密的常量字符串,并根据该常量字符串的类型调用加密函数;
将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译。
如此,以优化代码的保护强度,使得攻击者无法轻易拿到表征代码逻辑信息的字符串,同时针对每一个字符串,都有对应的密钥和加密模式,也使得攻击者破解的难度大大增加,防止攻击者拿到App业务逻辑的原始信息,并且破坏逆向过程的闭环,即使攻击者拿到了其他的信息,也无法继续进行破解。
具体地,所述处理器10对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。需要强调的是,为进一步保证上述防解密客户端开发编译的私密和安全性,上述防解密客户端开发编译的数据存储于本服务器集群所处区块链的节点中。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明实施例还提供一种计算机可读存储介质,所述存储介质可以是非易失性的,也可以是易失性的,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现:
对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于该字符串生成抽象语法树;
遍历该抽象语法树以生成关键代码,并根据该关键代码调用加密符;
通过该加密符在该关键代码中查找待加密的常量字符串,并根据该常量字符串的类型调用加密函数;
将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译。
具体地,所述计算机程序被处理器执行时具体实现方法可参考实施例防解密客户端开发编译方法中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (9)

1.一种防解密客户端开发编译方法,其特征在于,包括:
对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于所述字符串生成抽象语法树;
遍历所述抽象语法树以生成关键代码,并根据所述关键代码调用加密符;
通过所述加密符在所述关键代码中查找待加密的常量字符串,并根据所述常量字符串的类型调用加密函数;
将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译;
其中,所述将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译,包括:为所述常量字符串随机生成加密密钥;
通过预设的加密算法,将所述加密密钥与所述常量字符串进行加密处理,生成密文;
将所述加密密钥、所述密文以及所述加密算法的标识符作为所述加密函数的参数共同输入到所述加密函数中以形成解密函数;
通过所述解密函数对所述加密函数进行解密,以使函数体替换所述常量字符串形成不规则码完成编译,其中,所述函数体通过调用与常量字符串的属性值相对应的加密函数生成。
2.如权利要求 1 所述的防解密客户端开发编译方法,其特征在于,所述对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于所述字符串生成抽象语法树,包括:
按照预设命令对代码进行编译操作以形成包含编译代码的源文件;
对所述编译代码进行关于词法分析的顺序扫描以对所述编译代码进行分割生成字符;对所述字符进行语义分析以生成与所述字符相对应的结构体,并将所述字符的类型与字面值记录在所述结构体的字段中以生成字符串;将所述字符串内的结构体进行组合以形成完整语义;其中,所述完整语义至少包括表达式、语句;判断所述完整语义的排版是否存在代码语法错误,若存在代码语法错误,则对所述源文件进行报错终止处理,若不存在语法错误,则根据所述完整语义生成抽象语法树。
3.如权利要求 1 所述的防解密客户端开发编译方法,其特征在于,所述遍历所述抽象语法树以生成关键代码,并根据所述关键代码调用加密符,包括:
通过遍历所述抽象语法树对所述抽象语法树进行解析处理以生成关于所述抽象语法树中字符串的类型信息;根据所述类型信息生成关键代码;其中,所述关键代码为内存格式;
根据所述关键代码依次调用加密符。
4.如权利要求 3 所述的防解密客户端开发编译方法,其特征在于,所述通过所述加密符在所述关键代码中查找待加密的常量字符串,并根据所述常量字符串的类型调用加密函数,包括:
使用所述加密符依次对所述关键代码进行优化处理以形成优化码;
通过所述加密符中的加密 PASS 在所述优化码中查找待加密的关键代码;
查找与所述关键代码相对应的常量字符串;
对所述常量字符串进行类型分析以判断所述常量字符串的属性值调用与所述属性值相对应的加密函数。
5.如权利要求 4 所述的防解密客户端开发编译方法,其特征在于,所述属性值包括cstring 和 cfstring;
若所述常量字符串为 C 字符串,则所述属性值为 cstring;若所述常量字符串为Objective- C 字符串,则所述属性值为 cfstring。
6.如权利要求 1 所述的防解密客户端开发编译方法,其特征在于,所述 为所述常量字符串随机生成加密密钥,包括:
通过随机算法生成随机长度的随机数;
基于所述随机数根据 md5 算法为所述常量字符串随机生成加密密钥。
7.一种防解密客户端开发编译装置,其特征在于,所述装置包括:
抽象语法单元,用于对预形成的编译代码进行词法分析与语义分析以生成字符串,并基于所述字符串生成抽象语法树;
加密调用单元,用于遍历所述抽象语法树以生成关键代码,并根据所述关键代码调用加密符;
加密函数单元,用于通过所述加密符在所述关键代码中查找待加密的常量字符串,并根据所述常量字符串的类型调用加密函数;
密文编译单元,用于将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译;其中,所述将基于预设加密算法生成的密文输入所述加密函数以生成解密函数,并基于所述解密函数替换所述常量字符串形成不规则码以完成编译,包括:为所述常量字符串随机生成加密密钥;
通过预设的加密算法,将所述加密密钥与所述常量字符串进行加密处理,生成密文;
将所述加密密钥、所述密文以及所述加密算法的标识符作为所述加密函数的参数共同输入到所述加密函数中以形成解密函数;
通过所述解密函数对所述加密函数进行解密,以使函数体替换所述常量字符串形成不规则码完成编译,其中,所述函数体通过调用与常量字符串的属性值相对应的加密函数生成。
8.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求 1 至 6 中任一所述的防解密客户端开发编译方法中的步骤。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求 1 至 6中任一所述的防解密客户端开发编译方法。
CN202110738031.7A 2021-06-30 2021-06-30 防解密客户端开发编译方法、装置、电子设备及存储介质 Active CN113434148B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110738031.7A CN113434148B (zh) 2021-06-30 2021-06-30 防解密客户端开发编译方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110738031.7A CN113434148B (zh) 2021-06-30 2021-06-30 防解密客户端开发编译方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113434148A CN113434148A (zh) 2021-09-24
CN113434148B true CN113434148B (zh) 2024-03-22

Family

ID=77758124

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110738031.7A Active CN113434148B (zh) 2021-06-30 2021-06-30 防解密客户端开发编译方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113434148B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003932A (zh) * 2021-11-02 2022-02-01 北京奇艺世纪科技有限公司 字符串字面量的处理方法、装置、电子设备和存储介质
CN114340113B (zh) * 2021-12-30 2023-10-13 浙江智马达智能科技有限公司 基于车辆灯光的信息处理方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102176709A (zh) * 2010-12-13 2011-09-07 北京交通大学 一种带隐私保护的数据共享与发布的方法和装置
CN105354449A (zh) * 2015-11-04 2016-02-24 北京鼎源科技有限公司 一种面向Lua语言的加扰混淆方法和解密方法
CN106548049A (zh) * 2016-12-09 2017-03-29 武汉斗鱼网络科技有限公司 一种代码处理方法和装置
CN107908933A (zh) * 2017-11-08 2018-04-13 北京顶象技术有限公司 一种基于中间语言的字符串加密方法
CN109241484A (zh) * 2018-09-06 2019-01-18 平安科技(深圳)有限公司 一种基于加密技术的网页数据的发送方法及设备
CN109740315A (zh) * 2018-12-28 2019-05-10 深圳前海微众银行股份有限公司 基于安卓平台的常量保护方法、装置、设备及存储介质
CN110059455A (zh) * 2019-04-09 2019-07-26 北京迈格威科技有限公司 代码加密方法、装置、电子设备和计算机可读存储介质
CN110119601A (zh) * 2019-03-28 2019-08-13 江苏通付盾信息安全技术有限公司 基于应用程序安装包的程序加固方法及装置
CN110598379A (zh) * 2019-09-23 2019-12-20 北京智游网安科技有限公司 一种实现字符串混淆的方法、系统、设备及存储介质
CN112256275A (zh) * 2020-10-22 2021-01-22 北京字节跳动网络技术有限公司 代码混淆方法、装置、电子设备及介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10554390B2 (en) * 2017-06-12 2020-02-04 Microsoft Technology Licensing, Llc Homomorphic factorization encryption

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102176709A (zh) * 2010-12-13 2011-09-07 北京交通大学 一种带隐私保护的数据共享与发布的方法和装置
CN105354449A (zh) * 2015-11-04 2016-02-24 北京鼎源科技有限公司 一种面向Lua语言的加扰混淆方法和解密方法
CN106548049A (zh) * 2016-12-09 2017-03-29 武汉斗鱼网络科技有限公司 一种代码处理方法和装置
CN107908933A (zh) * 2017-11-08 2018-04-13 北京顶象技术有限公司 一种基于中间语言的字符串加密方法
CN109241484A (zh) * 2018-09-06 2019-01-18 平安科技(深圳)有限公司 一种基于加密技术的网页数据的发送方法及设备
CN109740315A (zh) * 2018-12-28 2019-05-10 深圳前海微众银行股份有限公司 基于安卓平台的常量保护方法、装置、设备及存储介质
CN110119601A (zh) * 2019-03-28 2019-08-13 江苏通付盾信息安全技术有限公司 基于应用程序安装包的程序加固方法及装置
CN110059455A (zh) * 2019-04-09 2019-07-26 北京迈格威科技有限公司 代码加密方法、装置、电子设备和计算机可读存储介质
CN110598379A (zh) * 2019-09-23 2019-12-20 北京智游网安科技有限公司 一种实现字符串混淆的方法、系统、设备及存储介质
CN112256275A (zh) * 2020-10-22 2021-01-22 北京字节跳动网络技术有限公司 代码混淆方法、装置、电子设备及介质

Also Published As

Publication number Publication date
CN113434148A (zh) 2021-09-24

Similar Documents

Publication Publication Date Title
Krüger et al. Crysl: An extensible approach to validating the correct usage of cryptographic apis
JP6257754B2 (ja) データの保護
US7549147B2 (en) Security framework for protecting rights in computer software
EP2656266B1 (en) Improvements relating to cryptography using polymorphic code
EP3038004A1 (en) Method for providing security for common intermediate language-based program
CN113434148B (zh) 防解密客户端开发编译方法、装置、电子设备及存储介质
CN103413073B (zh) 一种保护java可执行程序的方法及设备
CN106599628A (zh) 一种基于模块钩子的Python字节码文件保护方法
CN106650341A (zh) 基于smali流程混淆技术的Android应用加固方法
Wang et al. Mitigating power side channels during compilation
CN105022936A (zh) 一种类class文件加密解密方法和装置
CN111639306A (zh) 离线软件授权方法、装置、设备及存储介质
CN114547558B (zh) 授权方法、授权控制方法及装置、设备和介质
CN104462990A (zh) 字符串加解密方法和装置
Manikyam Program protection using software based hardware abstraction
CN105184119B (zh) 一种软件的安全保护方法
CN114553532A (zh) 数据安全传输方法、装置、电子设备及存储介质
CN117313046A (zh) 一种代码加固方法、代码加载方法、设备及介质
JP2017509942A (ja) 暗号アルゴリズムで使用されるときに秘密データを保護する方法
CN116910712A (zh) 代码保护方法、系统、电子设备及存储介质
CN106650329A (zh) 一种数据导出设备的个体授权方法
CN114547653B (zh) 开发环境的加密方法、解密方法及装置、设备和介质
CN114357391A (zh) 数据加、解密方法及计算机存储介质
Gautam et al. A novel software protection approach for code obfuscation to enhance software security
CN115001768A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240128

Address after: 510000 Room 601, No.17 Sicheng Road, Tianhe District, Guangzhou City, Guangdong Province (office use only)

Applicant after: Guangdong XunWei Information Industry Co.,Ltd.

Country or region after: China

Address before: 518000 Room 202, block B, aerospace micromotor building, No.7, Langshan No.2 Road, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Applicant before: Shenzhen LIAN intellectual property service center

Country or region before: China

Effective date of registration: 20240128

Address after: 518000 Room 202, block B, aerospace micromotor building, No.7, Langshan No.2 Road, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen LIAN intellectual property service center

Country or region after: China

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant before: PING AN PUHUI ENTERPRISE MANAGEMENT Co.,Ltd.

Country or region before: China

GR01 Patent grant
GR01 Patent grant