[发明专利]一种实现字符串混淆的方法、设备及存储介质有效
申请号: | 201910897726.2 | 申请日: | 2019-09-23 |
公开(公告)号: | CN110598379B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 方令;肖巍 | 申请(专利权)人: | 北京智游网安科技有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/60;G06F8/41 |
代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 王永文 |
地址: | 100000 北京市海淀区东北旺西路8*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 字符串 混淆 方法 设备 存储 介质 | ||
1.一种实现字符串混淆的方法,应用于编译器前端,其特征在于,包括步骤:
分析处理源文件得到源文件对应的语法树及其包含的头文件;
对语法树进行加密修改,使字符串常量进行加密;
所述对语法树进行加密修改,使字符串常量进行加密的步骤具体包括:在语法树中插入第一字符数组和第二字符数组;
所述在语法树中插入第一字符数组和第二字符数组的具体步骤包括:遍历语法树,收集语法树中所有字符串常量并记录其顺序;利用密钥对收集的字符串常量进行加密;插入第一字符数组,第一字符数组中存储有加密后的字符串常量;插入第二字符数组,第二字符数组中存储有密钥;
对语法树进行运行解密修改,使程序运行时字符串常量解密还原;所述对语法树进行运行解密修改,使程序运行时字符串常量解密还原步骤具体包括:
在语法树中插入静态的全局指针数组;
插入解密函数,所述解密函数在程序运行时对第一字符数组进行解密还原,将解密后的第一字符数组中各字符串常量的首个字符的地址存放在静态的全局指针数组中;
插入GetString函数;
遍历修改后的语法树,将语法树中字符串常量替换成GetString函数的调用,所述GetString函数用于根据替换的字符串常量的次序返回所述静态的全局指针数组中对应的字符串指针,字符串指针指向解密后的第一字符数组中的字符串,使GetString函数调用得到相应的原始字符串;
由编译器前端根据修改后的语法树输出混淆后的源代码。
2.根据权利要求1所述的实现字符串混淆的方法,其特征在于,所述由编译器前端修改后的语法树输出混淆后的源代码的步骤具体包括:创建一个空白文件,所述空白文件类型与源文件一致;
将源文件包含的头文件按正确语法形式输出到所述空白文件;
将语法树中的顶级声明按正确语法形式输出到所述空白文件。
3.一种实现字符串混淆的设备,其特征在于:包括有处理器,以及与所述处理器连接的存储器;
所述存储器存储有实现字符串混淆的程序,所述实现字符串混淆的程序被所述处理器执行时实现如权利要求1-2任一所述的实现字符串混淆的方法。
4.一种存储介质,其特征在于,存储有用于实现如权利要求1-2任一所述的实现字符串混淆的方法的程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智游网安科技有限公司,未经北京智游网安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910897726.2/1.html,转载请声明来源钻瓜专利网。