[发明专利]一种代码的混淆方法以及装置、计算机设备、存储介质有效
| 申请号: | 201910864925.3 | 申请日: | 2019-09-09 |
| 公开(公告)号: | CN110569628B | 公开(公告)日: | 2021-09-21 |
| 发明(设计)人: | 方令;肖巍 | 申请(专利权)人: | 北京智游网安科技有限公司 |
| 主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F8/41 |
| 代理公司: | 深圳市君胜知识产权代理事务所(普通合伙) 44268 | 代理人: | 王永文;刘文求 |
| 地址: | 100000 北京市海淀区东北旺西路8*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 代码 混淆 方法 以及 装置 计算机 设备 存储 介质 | ||
1.一种代码的混淆方法,其特征在于,所述方法包括:
获取第一源文件对应的第一抽象语法树;
对所述第一抽象语法树进行修改,得到第二抽象语法树;
将所述第二抽象语法树转换为第二源文件;
所述对所述第一抽象语法树进行修改,得到第二抽象语法树,包括:
遍历所述第一抽象语法树中的节点;
判断所述节点是否为可替换类型;
判断结果为是,将所述第一抽象语法树中节点用等价表达式进行替换;
判断结果为否,则对下一节点进行判断,直至对抽象语法树中的节点均已遍历;所述遍历过程为:判断抽象语法树全部节点中每一个节点是否是算术运算表达式或者位运算表达式,如果是算术运算表达式,则用所述等价表达式进行替换;如果判断结果为否,则继续对下一节点进行判断;当判断的节点为最后一个节点的情况下,结束遍历。
2.根据权利要求1所述代码的混淆方法,其特征在于,获取第一源文件对应的第一抽象语法树,包括:
编译器前端分析处理所述第一源文件,得到与所述第一源文件对应的所述第一抽象语法树和所述第一源文件包含的头文件。
3.根据权利要求1所述代码的混淆方法,其特征在于,所述可替换类型包括:算术运算表达式、位运算表达式。
4.根据权利要求1所述代码的混淆方法,其特征在于,将所述第二抽象语法树转换为第二源文件,包括:
创建空白源文件,所述空白源文件与所述第一源文件类型相同;
将所述第一源文件中包含的头文件按照语法形式输出至所述空白源文件,将所述第二抽象语法树中的顶级声明按照语法形式输出至所述空白源文件,得到所述第二源文件。
5.根据权利要求2所述代码的混淆方法,其特征在于,编译器为LLVM。
6.一种代码的混淆装置,其特征在于,所述装置包括:
获取单元,用于获取第一源文件中的第一抽象语法树;
修改单元,用于对所述抽象语法树进行修改,得到第二抽象语法树;
转换单元,用于将所述第二抽象语法树转换为第二源文件;
所述修改单元,包括:
遍历模块,用于遍历所述第一抽象语法树中的节点;
判断模块,用于判断所述节点是否为可替换类型;
替换模块,用于判断结果为是,将所述第一抽象语法树中节点用等价表达式进行替换;判断结果为否,则对下一节点进行判断,直至对抽象语法树中的节点均已遍历;所述遍历过程为:判断抽象语法树全部节点中每一个节点是否是算术运算表达式或者位运算表达式,如果是算术运算表达式,则用所述等价表达式进行替换;如果判断结果为否,则继续对下一节点进行判断;当判断的节点为最后一个节点的情况下,结束遍历。
7.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智游网安科技有限公司,未经北京智游网安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910864925.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:图像处理方法、装置和电子设备
- 下一篇:二进制代码文件溯源方法





