[发明专利]一种实现程序代码混淆的方法和系统有效
申请号: | 201610149574.4 | 申请日: | 2016-03-16 |
公开(公告)号: | CN107203707B | 公开(公告)日: | 2020-05-12 |
发明(设计)人: | 刘欢;屠寅海;刘文荣 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F21/14 | 分类号: | G06F21/14 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 黄熊 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 程序代码 混淆 方法 系统 | ||
1.一种实现程序代码混淆的方法,其特征在于,包括:
读入不同模块的程序代码和与模块对应的keep规则,所述模块具有全局唯一标识;其中,Keep规则用于标明混淆处理过程中不能被混淆的类或成员的名字;通过配置keep规则以指定所述不能被混淆的类或成员的名字保留不变;
将不同模块的程序代码中的类/类成员添加到类池中,并将添加的类/类成员用对应模块的标识标记;将不同模块对应的keep规则添加到规则列表中,并将添加的keep规则用对应模块的标识标记;
遍历规则列表中的每一Keep规则;在遍历到每一Keep规则时,将该Keep的标识及规则逐条匹配类池中的每个类或类成员,将标识相同且规则匹配成功的类/类成员移出所述类池;
混淆类池中的类/类成员,输出混淆结果。
2.如权利要求1所述的方法,其特征在于,采用模块代码的文件全路径字符串作为所述标识。
3.如权利要求1所述的方法,其特征在于,所述将添加的keep规则用对应模块的标识标记,包括:
当添加的keep规则适用至少两个模块时,将添加的keep规则用对应的模块的标识标记。
4.如权利要求1所述的方法,其特征在于,所述将添加的keep规则用对应模块的标识标记,包括:
将添加的keep规则用Null标识标记,以匹配任一模块的keep规则。
5.如权利要求1所述的方法,其特征在于,所述keep规则包含通配符,用于匹配符合特定规则的类名或成员名。
6.如权利要求1所述的方法,其特征在于,将标识相同且规则匹配成功的类/类成员移出类池后,所述方法还包括:
将所述标识相同且规则匹配成功的类/类成员移动到混淆结果集合。
7.一种实现程序代码混淆的系统,其特征在于,包括:
读入单元,用于读入不同模块的程序代码和与模块对应的keep规则,所述模块具有全局唯一标识;其中,Keep规则用于标明混淆处理过程中不能被混淆的类或成员的名字;通过配置keep规则以指定所述不能被混淆的类或成员的名字保留不变;
添加单元,用于将不同模块的程序代码中的类/类成员添加到类池中,并将添加的类/类成员用对应模块的标识标记;还用于将不同模块对应的keep规则添加到规则列表中,并将添加的keep规则用对应模块的标识标记;
类池,用于存储添加单元添加的类/类成员;
规则列表,用于存储添加单元添加的Keep规则;
遍历单元,用于遍历规则列表中的每一Keep规则;并在遍历到每一Keep规则时,将该Keep的标识及规则逐条匹配类池中的每个类或类成员,将标识相同且规则匹配成功的类/类成员移出所述类池;
混淆单元,用于混淆类池中的类/类成员,并输出混淆结果。
8.如权利要求7所述的系统,其特征在于,采用模块代码的文件全路径字符串作为所述标识。
9.如权利要求7所述的系统,其特征在于,所述添加的keep规则标记有至少两个模块的标识。
10.如权利要求7所述的系统,其特征在于,所述添加的keep规则标记有Null标识,以匹配任一模块的keep规则。
11.如权利要求7所述的系统,其特征在于,所述keep规则包含通配符,用于匹配符合特定规则的类名或成员名。
12.如权利要求7所述的系统,其特征在于,所述遍历单元还用于将所述标识相同且规则匹配成功的类/类成员移动到混淆结果存储单元;
所述系统还包括混淆结果存储单元,用于存储混淆结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610149574.4/1.html,转载请声明来源钻瓜专利网。