[发明专利]生成软件应用程序的白盒实现的系统和方法有效
申请号: | 200980118647.1 | 申请日: | 2009-05-25 |
公开(公告)号: | CN102047220A | 公开(公告)日: | 2011-05-04 |
发明(设计)人: | 菲利普·阿兰·艾森;格兰特·斯图尔特·古德兹;丹尼尔·阿列·默多克 | 申请(专利权)人: | 爱迪德加拿大公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F21/00;G06F9/45 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 康泉;宋志强 |
地址: | 加拿大*** | 国省代码: | 加拿大;CA |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 生成 软件 应用程序 实现 系统 方法 | ||
1.一种计算机实现的利用白盒密码术生成受保护的软件应用程序的方法,包括:
接收包括应用程序源代码和抽象的白盒函数调用的至少一个输入源文件;
接收包含用于每个抽象的白盒函数调用的密码域参数的参数化文件;
根据每个抽象的白盒函数调用的密码域参数生成用于定义每个抽象的白盒函数调用的白盒调用定义数据;
将至少一个数据转换应用于所述输入源文件和所述白盒调用定义数据,以分别生成转换后的源文件和转换后的白盒调用定义数据;以及
根据所述白盒调用定义数据和所述转换后的白盒调用定义数据生成包含用于每个白盒函数调用的特定实例数据的数据初始化。
2.根据权利要求1所述的方法,进一步包括编译所述转换后的源文件、所述转换后的白盒定义数据以及所述数据初始化代码,并且将所得到的编译代码链接到白盒库以提供可执行软件应用程序。
3.根据权利要求1所述的方法,其中生成所述白盒调用定义数据包括生成白盒调用定义文件和指定为每个白盒函数调用选定的参数的白盒元数据。
4.根据权利要求3所述的方法,其中将所述至少一个数据转换应用于所述转换后的白盒调用定义数据生成转换后的白盒调用定义文件和指定为所选择的参数选定的数据转换的转换元数据。
5.根据权利要求4所述的方法,其中生成所述数据初始化包括根据所述白盒元数据和所述转换元数据生成数据初始化文件。
6.根据权利要求1所述的方法,其中生成所述白盒调用定义数据包括:
生成包括被数据转换引擎理解的转换修饰符的至少一个白盒调用定义文件;并且
生成用于描述所述密码域参数和所选定的转换的至少一个转换元数据文件。
7.根据权利要求1所述的方法,其中生成所述白盒调用定义数据以自动化方式生成将白盒实现应用程序接口(API)连接到所述应用程序源代码的代码以及当白盒实现API和另一白盒实现API必须通信时将所述白盒实现API连接到所述另一白盒实现API的代码。
8.根据权利要求1所述的方法,其中所述白盒函数调用对至少一个链式加密进行调用。
9.根据权利要求8所述的方法,其中所述至少一个链式加密作为单个运算被执行。
10.根据权利要求2所述的方法,进一步包括生成所述可执行软件应用程序的多样实例。
11.根据权利要求10所述的方法,其中生成所述多样实例包括将不同的固定密钥与所述可执行软件应用程序的每个实例相关联。
12.根据权利要求1所述的方法,其中所述至少一个数据转换包括块密码。
13.根据权利要求1所述的方法,其中所述至少一个数据转换包括非对称密码。
14.一种计算机实现的利用白盒密码术生成软件应用程序的方法,包括:
接收包括应用程序源代码和抽象的白盒函数调用的至少一个输入源文件;
接收包含用于每个抽象的白盒函数调用的密码域参数的参数化文件;
根据每个抽象的白盒函数调用的密码域参数生成用于定义每个抽象的白盒函数调用的白盒调用定义文件以及指定为每个白盒函数调用选定的参数的白盒元数据;
将至少一个数据转换应用于所述输入源文件以生成转换后的源文件;
将所述至少一个数据转换应用于所述白盒调用定义文件,以生成转换后的白盒调用定义文件和指定为所选择的参数选定的数据转换的转换元数据;
根据所述白盒元数据和所述转换元数据生成包含用于每个白盒函数调用的特定实例数据的数据初始化文件;以及
编译所述转换后的源文件、所述转换后的白盒定义文件以及所述数据初始化文件,并且将所得到的编译代码文件链接到白盒库以提供可执行软件应用程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于爱迪德加拿大公司,未经爱迪德加拿大公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200980118647.1/1.html,转载请声明来源钻瓜专利网。