发明名称 保护以软件为媒介的程序和装置性态的联锁系统和方法
摘要 一种用于使软件防逆向工程的方法。将计算表达式中的至少一个第一常量(数学表达式等)用第二数学和逐位布尔混合表达式替代,第一常量比第二表达式更简单,并且第二表达式基于在第一常量(或表达式)中得到的值或者变量。对第二数学和逐位布尔混合表达式的求值产生以下述两种方式之一保留了第一常量的值的值:或者,具有第一常量的原始值或者第一表达式的结果的原始值,在这种情况下第二数学和逐位布尔混合表达式是从第一常量通过用数学恒等式对第一常量进行转换而获得的;或者,以编码形式,作为新的值,该新的值可以通过应用信息保留解码函数转换回到第一常量的原始值,在这种情况下,第二数学和逐位布尔混合表达式是从第一常量通过用根据数学恒等式的转换和根据信息保留解码函数的变换的组合修改第一常量来获得的。
申请公布号 CN101627394B 申请公布日期 2013.07.17
申请号 CN200880005942.1 申请日期 2008.02.21
申请人 克劳克维尔公司 发明人 哈罗德·约瑟夫·约翰逊;顾元祥;周永新
分类号 G06F21/14(2013.01)I 主分类号 G06F21/14(2013.01)I
代理机构 北京三友知识产权代理有限公司 11127 代理人 李辉
主权项 一种用于防止篡改软件的方法,该方法包括以下步骤:A)接收所述软件的源代码;B)将所述源代码划分成逻辑的多个基本块,当所述软件运行时,至少一个第一基本块不依赖于来自至少一个第二基本块的结果;C)基于所述源代码的逻辑流确定哪些基本块要进行修改;D)通过应用布尔‑算术混合变换来修改至少一个第一基本块以便产生至少一个修改后的第一基本块;以及E)通过应用布尔‑算术混合变换来修改至少一个第二基本块以便产生至少一个修改后的第二基本块,以提供所述软件的修改后的源代码,其中,所述至少一个修改后的第一基本块依赖于来自所述至少一个修改后的第二基本块的结果;并且,通过编码后的计算来替代所述源代码中的至少一个计算,其中所述编码后的计算使用编码后的输入并且产生编码后的输出。
地址 加拿大安大略