字符串字面量的处理方法、装置、电子设备和存储介质制造方法及图纸

技术编号:32186421 阅读:31 留言:0更新日期:2022-02-08 15:50
本发明专利技术公开了一种字符串字面量的处理方法、装置、电子设备和存储介质,对基于LLVM的原始中间表示中的每个字符串字面量采用预设加密算法生成加密字符串字面量,并连同对应的加密信息一起记录,将原始中间表示中的各个字符串字面量替换成对应的加密字符串字面量得到目标中间表示,在目标中间表示中所有的加密字符串字面量即将被访问时,调用解密函数对每个加密字符串字面量进行解密得到对应的字符串字面量,直至全部解密完成。本发明专利技术在LLVM的中间表示层对字符串字面量进行加密,并在所有的加密字符串字面量即将被访问时进行解密,使得放置加密字符串字面量的文件中无法搜索到原始的字符串字面量,提高字符串字面量存储的安全性。全性。全性。

【技术实现步骤摘要】
字符串字面量的处理方法、装置、电子设备和存储介质


[0001]本专利技术涉及计算机
,更具体的说,涉及一种字符串字面量的处理方法、装置、电子设备和存储介质。

技术介绍

[0002]在源代码中内嵌的字符串(即两个双引号之间的字符序列)称为字符串字面量,比如,“string”、“literal”。LLVM是一个完整的编译器框架,可以解析源代码中的字符串字面量并将解析结果放置在编译结果中合适的位置。在C/C++编程语言国际标准中,字符串字面量需要拥有静态存储区,所谓静态存储区指存储在其中的对象在程序执行期间一直存在不会被丢弃,因此,LLVM通常将字符串字面量放置在文件的只读存储区域中,任何人仅需要对只读存储区域进行简单的扫描和解析就能提取出程序中所有的字符串字面量。
[0003]由于字符串字面量中可能包含敏感信息,如客户的电话号码、文件的存储路径、合同的签订日期等,因此,若字符串字面量被攻击者获取,不仅程序逻辑容易被攻破,甚至还会造成较大的经济损失。
[0004]因此,如何提高字符串字面量存储的安全性成为本领域技术人员亟需解决的本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种字符串字面量的处理方法,其特征在于,包括:对基于LLVM的原始中间表示中的每个字符串字面量采用预设加密算法进行加密生成加密字符串字面量,并在缓存区记录每个所述加密字符串字面量和对应的加密信息,其中,每个所述加密字符串字面量的字节长度不小于对应的所述字符串字面量的字节长度;将所述原始中间表示中的各个所述字符串字面量替换成对应的所述加密字符串字面量得到目标中间表示;在所述目标中间表示中所有的所述加密字符串字面量即将被访问时,调用与所述预设加密算法对应的解密函数,由所述解密函数基于所述加密信息对每个所述加密字符串字面量进行解密得到对应的所述字符串字面量,直至所有的所述加密字符串字面量全部解密完成。2.根据权利要求1所述的处理方法,其特征在于,所述对每个所述字符串字面量采用预设加密算法进行加密生成加密字符串字面量,并在缓存区记录每个所述加密字符串字面量和对应的加密信息,具体包括:调用LLVM优化模块对所述原始中间表示进行优化,得到优化中间表示;对所述优化中间表示中的每个所述字符串字面量采用所述预设加密算法进行加密生成所述加密字符串字面量;记录每个所述加密字符串字面量和对应的加密信息。3.根据权利要求1所述的处理方法,其特征在于,在所述目标中间表示中所有的所述加密字符串字面量即将被访问时,调用与所述预设加密算法对应的解密函数,具体包括:在main函数调用之前,调用与所述预设加密算法对应的所述解密函数;或者,在动态库被装载进程序之前,调用与所述预设加密算法对应的所述解密函数。4.根据权利要求1所述的处理方法,其特征在于,所述预设加密算法为AES加密算法、SM3算法和SM4算法中的任意一种。5.根据权利要求1所述的处理方法,其特征在于,当所述预设加密算法为AES加密算法时,所述加密信息包括:所述字符串字面量对应的密钥和初始向量。6.一种...

【专利技术属性】
技术研发人员:周亚桥
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1