[发明专利]一种实现程序代码混淆的方法和系统有效

专利信息
申请号: 201610149574.4 申请日: 2016-03-16
公开(公告)号: CN107203707B 公开(公告)日: 2020-05-12
发明(设计)人: 刘欢;屠寅海;刘文荣 申请(专利权)人: 阿里巴巴集团控股有限公司
主分类号: G06F21/14 分类号: G06F21/14
代理公司: 北京国昊天诚知识产权代理有限公司 11315 代理人: 黄熊
地址: 英属开曼群岛大开*** 国省代码: 暂无信息
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 实现 程序代码 混淆 方法 系统
【说明书】:

本申请实施例公开了实现程序代码混淆的方法和系统。所述方法包括:读入不同模块的程序代码和与模块对应的keep规则,所述模块具有全局唯一标识;将不同模块的程序代码中的类/类成员添加到类池中,并将添加的类/类成员用对应模块的标识标记;将不同模块对应的keep规则添加到规则列表中,并将添加的keep规则用对应模块的标识标记;遍历规则列表中的每一Keep规则;在遍历到每一Keep规则时,将该Keep的标识及规则逐条匹配类池中的每个类或类成员,将标识相同且规则匹配成功的类/类成员移出所述类池;混淆类池中的类/类成员,输出混淆结果。利用本申请实施例,可以对多模块程序代码提供更好的支持。

技术领域

本申请涉及计算机软件技术领域,尤其涉及一种实现程序代码混淆的方法和系统。

背景技术

对一些解释型计算机语言,其发布出去的程序包往往是中间代码(如java的jar包)。中间代码中可能包含大量源代码信息,如java的jar中的.class文件,包含了源码中的类名、字段名和方法名。通过这些信息,结合一些成熟的分析工具,可以快速反编译出还原度很高的java源代码。

为了解决这一问题,提升程序的安全性,混淆技术应运而生。混淆技术主要包含命名混淆和流程混淆两大类。命名混淆和流程混淆都以不改变程序本身功能为基础,即混淆后的程序依然能正常运行。流程混淆则是修改程序的运行流程,如将递归改为循环、替换方法入口等。命名混淆主要是将程序代码中的各种元素,如包名、类名、成员名改写成无意义的名字。混淆的作用主要有两方面:首先是增加程序的安全性,通常代码中的命名都是有实际意义的词汇,混淆后变成无规则的短字符串,大大增加了通过反编译推导代码功能的难度;另一方面是精简程序大小,混淆后程序中的字符串更短,从而程序的体积更小,也能一定程度提升程序的加载和运行速度。

现有技术一种实现程序代码命令混淆的方法包括如下:

A1、读入程序的所有代码(如java的所有.class文件),并添加到类池(classpool);

A2、读入所有的Keep规则;

A3、将Keep规则逐条匹配类池中的每个类或类成员,若匹配成功,标记该类或类成员,向混淆结果集合中添加一项(原名和混淆名相同);

A4、混淆类池的所有类和类成员;

A5、输出混淆结果(mapping)。

之后,可以根据混淆结果重写被混淆程序的代码。

类池(class pool)是一种包含被混淆程序的所有类的容器,通常以Map实现。混淆初始化的时候可以将被混淆程序代码的所有类读入到该容器,以便后续进行Keep和混淆处理。另外,由于一些限制(如java的反射调用、第三方库接口等),程序中的某些字符串不能被混淆(混淆后会导致程序运行异常),因此需要配置Keep规则,确定哪些名字在混淆过程中保持不变。Keep规则通常以文本形式输入到混淆工具。Keep规则标明了混淆的处理过程中一些不能被混淆(如通过反射调用的类名)的类或成员的名字。通过配置keep规则,可以指定哪些类名或成员名需要保留不变。keep规则可以包含一些通配符,以匹配符合特定规则的类名或成员名。

上述现有技术的过程中,A1步骤中读入程序的所有代码,后续统一处理,而没有考虑程序代码中存在的模块结构。对于实际研发过程中,当程序规模达到一定程度,通常需要进行模块化解耦,即将程序按功能或依赖关系进行分块。还可以将不同的模块交由不同的团队进行开发维护。不同模块的混淆Keep规则可能会产生冲突,比如模块A需要Keep以“com.aaa”为前缀的类名,而模块B又希望混淆以“com.aaa”为前缀的类名,从而模块A的混淆影响到了模块B,要解决这样的冲突耗时费力,且不符合模块间解耦的原则。

可见,现有技术对多模块程序代码的混淆还不提供较好的支持。

发明内容

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201610149574.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top