[发明专利]用于基于编译器的混淆的方法和计算设备有效
申请号: | 201480011267.9 | 申请日: | 2014-02-26 |
公开(公告)号: | CN105103127B | 公开(公告)日: | 2018-05-04 |
发明(设计)人: | O.A.米勒;T.岑;H.T.波斯坦奇;M.T.帕什尼亚克;K.S.佩特尔 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F21/14 |
代理公司: | 北京市金杜律师事务所11256 | 代理人: | 王茂华 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 编译器 混淆 | ||
1.一种用于基于编译器的混淆的方法,所述方法包括:
作为代码编译的一部分在编译器内修改用于开发项目的代码以产生一个或多个修改以使代码的一部分混淆,包括:
获得具有定义所述修改的命令的混淆描述,所述修改被设计成使得能够实现以下各项中的一个或多个:代码的堆执行、验证或加密;以及
通过对将用于开发项目的代码与用以实现所述命令的代码进行组合的中间代码应用所述混淆描述以产生所述修改,所述混淆描述被配置成指定要混淆的各代码部分和要对一个或多个部分进行的修改;以及
由编译器生成代码的已编译版本,该已编译版本具有在编译器内产生以使所述代码部分混淆的修改。
2.如权利要求1所述的方法,进一步包括作为编译过程的一部分即时地生成一个或多个混淆算法以产生所述修改。
3.如权利要求2所述的方法,其中,针对代码的至少两个不同部分而生成不同的混淆算法并将其应用于所述代码的至少两个不同部分。
4.如权利要求1所述的方法,进一步包括:
作为代码编译的一部分修改代码的多个部分包括:如所述混淆描述中的命令所命令的单独地向所述多个部分应用不同的混淆特征和修改以使所述多个部分的保护单独化。
5.如权利要求1所述的方法,其中,所述修改包括以下各项中的至少一个:
代码块的重排、调用重定向、克隆函数的创建、对符号属性和行为的改变、代码块的分段、替换调用、设定代码的不同部分之间的绝对引用、或者到代码中的入口点的修改。
6.如权利要求1所述的方法,其中,所述修改包括以下各项中的至少一个:插入校验和、验证器模块或验证代码。
7.如权利要求1所述的方法,其中,所述修改包括代码部分的加密和解密/重新加密代码的添加。
8.如权利要求1所述的方法,其中,所述修改包括将在运行时间以已混淆形式运行的至少一个函数的虚拟化。
9.如权利要求1所述的方法,其中,所述修改包括:
对代码进行预处理以产生中间语言代码,该中间语言代码将用于开发项目的源代码与指示要对源代码进行的修改的源混淆代码进行组合;以及
通过在代码的编译期间在编译器内对中间语言代码应用所述修改来使代码混淆。
10.存储指令的一个或多个计算机可读存储介质,所述指令在被计算设备执行时实现编译器模块,该编译器模块被配置成执行包括以下各项的操作:
获得指示要保护的用于开发项目的源代码部分和要进行的以使所指示部分混淆的修改的命令,所述修改被设计成使得能够实现源代码的堆执行、验证或加密中的一个或多个;
生成中间语言代码,该中间语言代码将源代码与用以实现所述命令的代码进行组合;以及
对中间语言代码应用所述命令以在由编译器模块在中间语言代码的编译期间根据所述命令来修改所指示部分,包括:经由虚拟执行环境修改在运行时间以已混淆形式执行的一个或多个函数,所述虚拟执行环境模仿用于所述一个或多个函数的已混淆指令的操作。
11.如权利要求10所述的一个或多个计算机可读存储介质,其中,所述编译器模块被进一步配置成执行操作,所述操作包括:
编译通过对中间语言代码应用所述命令而产生的已混淆代码;以及
输出用于开发项目的受保护已编译代码,该受保护已编译代码具有由编译器模块在中间语言代码的编译期间产生的混淆。
12.一种计算设备,包括:
处理系统;
一个或多个模块,可至少部分地经由处理系统的硬件操作以实现集成开发环境(IDE),该集成开发环境包括:
开发模块,用于使开发接口暴露以使得能够创建用于软件开发项目的源代码;
混淆模块,用于:
产生通过开发接口产生的混淆描述以指定用于编译器在源代码的编译期间进行的以使源代码的一个或多个所选部分混淆的修改,所述修改包括:如所述混淆描述所命令的单独地向所选部分应用不同的混淆特征和修改以使所选部分的保护单独化;
将所述混淆描述与源代码相关联;以及
供应所述混淆描述以用于由编译器模块消耗;以及
编译器模块,用于通过解释和应用由所述混淆模块供应的所述混淆描述来使用混淆描述编译源代码以产生用于开发项目的受保护已编译代码,以实现所指定的修改以在编译期间使所述一个或多个所选部分混淆。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480011267.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:消息传递计算的动态可视化
- 下一篇:一种托架级进模具装置