专利汇可以提供利用白盒密码术的联锁二进制保护专利检索,专利查询,专利分析的服务。并且一种将包括二进制代码和任选关联数据的 软件 应用从原形式转换为更安全形式的系统和方法。该方法包括对该应用执行二进制转化的组合,并且通过在所述转化之间生成并设置依存性来联 锁 转化,其中转化是对应用的不可逆变化。不同类型的转化可应用于应用的各种粒度。转化还被应用到应用代码和被植入的代码上。结果是被转换的软件应用语义等同于原软件应用但是抵抗静态和/或动态攻击。,下面是利用白盒密码术的联锁二进制保护专利的具体信息内容。
1.一种将包括二进制应用代码的二进制软件应用从原形式转换为安全形式的方法,所述安全形式抵抗试图篡改、逆向改造或提升所述应用的全部或部分应用的静态和/或动态攻击,所述方法包括:
A)在构建时阶段中通过对所述二进制应用代码产生一系列变化来对所述二进制软件应用执行多种二进制转化的组合,以产生被改变的二进制应用代码,所述变化包括在构建时植入与所述被改变的二进制应用代码紧密相关的新代码;以及
B)通过在所述转化之间生成并设置依存性来联锁所述转化;
C)在执行期间,应用所述转化的组合并且将其与待保护的二进制应用代码和被植入的代码联锁;以及
D)产生语义等同于原应用的受保护应用,所述受保护应用包括所述已联锁的转化,以使得所述二进制保护不再与所述受保护应用分离。
2.如权利要求2所述的方法,其中所述多种二进制转化的组合包括被应用到所述二进制应用代码的相继嵌套层上的至少一种层间转化。
3.如权利要求2所述的方法,其中步骤(B)包括添加联锁数据,并且其中步骤(D)包括产生受保护应用,所述受保护应用在有效的联锁数据不存在的情况下不能正确执行。
4.如权利要求3所述的方法,其中步骤(B)包括使一种转化需要先前的转化存在来适当执行。
5.如权利要求4所述的方法,其中步骤(B)包括使一种转化产生用作第二转化输入的输出。
6.如权利要求1-5中任一项所述的方法,其中步骤(B)包括利用具有补充性能的转化。
7.如权利要求2-6中任一项所述的方法,其中所述相继嵌套层包括:包括所述应用的模块、包括模块的函数、包括所述函数的指令基本块、以及各机器指令。
8.如权利要求2-7中任一项所述的方法,其中所述二进制转化的组合还包括被应用到所述二进制应用代码的层上的至少一种层内转化。
9.如权利要求8所述的方法,其中所述至少一种层内转化包括在构建时和运行时都被应用于至少一层的完整性验证(IV)转化。
10.如权利要求8或9中的任一项所述的方法,其中所述至少一种层内转化包括被应用于至少一层的反调试转化。
11.如权利要求2-10中的任一项所述的方法,其中二进制转化包括静态构建时过程,所述静态构建时过程包括:
i)将转化执行代码插入所述待保护的应用的源代码中,以产生被改变的源代码,然后编译所述被改变的源代码以产生所述二进制应用代码;
ii)将补充的变化插入所述待保护的二进制应用中,以使得除非所述二进制应用存在所述补充的变化,否则所述应用源代码的所述变化不能正常工作;以及
iii)在二进制形式的待保护应用上执行二进制转化特定操作,并且产生执行时所需的关联的静态联锁数据,
其中二进制转化还包括运行时过程,所述运行时过程包括:
a.以如果所述转化被除去或修改就不保存所述应用的原语义的方式来执行被插入所述应用中的所述转化执行代码;
b.动态生成执行所述转化执行代码时进一步需要的运行时联锁数据;
c.利用所述关联的静态和动态联锁数据以检验所需的联锁依存性;
d.以指定顺序执行一系列的多种转化,以使得需要一种转化来生成所述受保护应用执行时适合于执行第二转化的应用状态。
12.如权利要求1-11中的任一项所述的方法,其中二进制转化应用白盒转换过程,所述白盒转换过程包括:
在构建时:
i)利用白盒转换构建时设备以生成并集合白盒转换密钥和操作代码;以及ii)通过执行具有白盒转换构建时密钥的白盒转换操作来将所述二进制代码及相关的重要信息从输入形式转换为输出形式,以及
iii)在运行时,利用白盒转换运行时设备、通过执行具有白盒转换运行时密钥的白盒转换逆操作将所述二进制代码及相关的重要信息从输出形式转换回输入形式。
13.如权利要求12所述的方法,其中所述白盒转换构建时设备包括:
a.白盒转换生成器;
b.白盒转换构建时密钥主机;
c.白盒转换操作主机;以及
d.白盒转换构建时管理器,
并且其中所述白盒转换运行时设备包括:
e.白盒转换运行时密钥主机;
f.白盒转换逆操作主机;以及
g.白盒转换运行时管理器。
14.如权利要求13所述的方法,其中所述白盒转换生成器接受由用户提供的原密钥数据和转换算法选择,并且生成与相应的白盒转换运行时密钥数据(连同逆操作代码)耦接的成对的白盒转换构建时密钥数据对(连同语义的操作代码)。
15.如权利要求14所述的方法,还包括:在白盒转换运行时密钥数据和操作代码生成之后隐藏所述原密钥数据和重要转换信息,从而当所述相应的白盒转换逆操作代码执行时阻止不慎的泄露。
16.如权利要求13或14所述的方法,其中多种转换被应用,并且其中所述白盒转换操作主机储存有多个白盒转换操作,所述白盒转换构建时密钥主机储存有多个白盒转换密钥,并且其中所述白盒转换运行时密钥主机储存有多个白盒转换运行时密钥,以及所述白盒转换逆操作主机储存有多个白盒转换逆操作。
17.如权利要求13所述的方法,其中:
-所述白盒转换构建时密钥主机通过所述白盒转换构建时管理器接入;
-所述白盒转换操作主机安全且有效地组织并定位多个白盒转换语义操作代码;
-所述白盒转换操作主机仅通过所述白盒转换构建时管理器接入;
-所述白盒转换构建时管理器将储存、重新取回、匹配的各种白盒转换构建时密钥与其相应的白盒转换语义操作代码协调;
-以使得每个白盒转换过程利用白盒转换构建时管理器来在运行时利用相应的白盒转换构建时密钥调用适当的白盒转换语义操作;
-所述白盒转换运行时密钥主机安全且有效地组织、储存并定位多个白盒转换运行时密钥;
-所述白盒转换运行时密钥主机通过所述白盒转换运行时管理器接入;
-所述白盒转换逆操作主机安全且有效地组织并定位多个白盒转换逆操作代码;
-所述白盒转换逆操作主机通过所述白盒转换运行时管理器接入;
-所述白盒转换运行时管理器将储存、重新取回、匹配的各种白盒转换运行时密钥与其相应的白盒转换逆操作代码协调;以及
-以使得每个白盒转换过程利用白盒转换运行时管理器来在运行时利用相应的白盒转换运行时密钥调用适当的白盒转换逆操作。
18.如权利要求13所述的方法,还包括:为通过所述白盒转换生成器实现的白盒转换算法来选择包括最流行的密码算法的大范围的计算算法。
19.如权利要求14所述的方法,其中如果用户选定密码算法并且提供加密密钥,所述白盒转换生成器生成:
b.作为白盒转换操作代码的白盒加密操作代码
c.作为白盒转换逆操作代码的白盒解密操作代码
d.作为白盒转换构建时密钥数据的白盒加密密钥数据
e.作为白盒转换运行时密钥数据的白盒解密密钥数据
20.如权利要求12-19中的任一项所述的方法,其中为不同的相继嵌套层中的不同转化生成并集合不同的白盒转换构建时和运行时密钥以及操作代码。
21.如权利要求2-20中的任一项所述的方法,其中所述方法增加联锁保护,所述联锁保护包括对所述源代码进行变化,所述源代码变化和所述二进制代码变化以其都需要存在从而使所述受保护应用正确运行的方式共同作用,并且其中所述联锁包括层间转化和层内转化,以使得所述转化中的任何一个或者所有转化难以除去,并且其中通过嵌套转化来联锁所述转化,每个被嵌套的转化对其封装的层提供进一步保护,同时接受来自封装层的进一步保护,并且每个被嵌套的转化附加地包括至少一个层内转化,每个层内转化提供所述受保护应用的一层内的交叠保护,或者为作为整体的所述受保护应用提供保护。
22.如权利要求9-21中的任一项所述的方法,其中所述IV转化包括在构建时的IV处理,所述IV处理包括:
a.生成并集合IV特定的白盒转换密钥和操作代码;
b.计算代表构建时所述应用二进制代码的散列信息的静态IV凭单数据;
c.通过使用所述特定白盒转换密钥和操作代码来应用IV特定白盒转换以转换所述应用的所述凭单数据,从而阻止对所述凭单数据未授权的访问和攻击;
d.集合与所述特定白盒转换密钥和操作代码对应的、隐藏的白盒转换运行时密钥数据;
并且其中所述IV转化还包括在执行所述受保护应用开始时和执行所述受保护应用的过程中的运行时行动,所述运行时行动包括:
e.在IV库被调用时,IV初始化器与所述白盒转换运行时设备交互,通过在所述白盒转换运行时密钥数据上执行所述IV特定白盒转换逆操作,从而将所述白盒转换IV数据逆转换成普通的IV数据并且将所述普通的数据加载受保护数据结构中;
f.通过OS对加载存储器中的所述二进制代码的动态IV凭单数据进行计算,所述动态IV凭单数据代表运行时中所述应用二进制代码的散列信息,并且将所述动态IV凭单数据储存至受保护的数据结构中;
g.通过将以被保护形式存在的所述静态IV凭单数据与所述动态IV凭单数据作比较,来检查所述待保护的应用代码的完整性。
23.如权利要求22所述的方法,其中所述应用的所述IV转化包括通过在所述构建时阶段中允许用户将IV API调用插入所述应用的源代码的选定位置中来检查由用户规则的制定部分确定的完整性,以及随后在构建时将自动的完整性验证引擎自动添加到所述应用中,所述完整性验证引擎在运行时执行。
24.如权利要求22或23所述的方法,其中所述IV转化检查所述二进制应用代码自身的完整性,而且还检查被应用到所述代码的任何其它二进制转化的代码的完整性。
25.如权利要求21-24中的任一项所述的方法,其中所述IV转化执行通过调用回叫函数被联锁至所述应用。
26.如权利要求25所述的方法,其中在所述构建时阶段中添加所述回叫函数,并且在所述IV转化准备期间通过将具有作为参数的回叫函数的IV API调用插入,使所述回叫函数与IV转化执行联锁。
27.如权利要求12-26中的任一项所述的方法,其中所述二进制转化中的一个二进制转化包括在构建时和运行时通过MT处理来保护应用模块的模块转化(MT)以便阻止对所述应用模块的静态攻击,所述应用模块能够为应用可执行模块和/或动态共享库模块,其中在构建时的所述MT处理包括:
a.与所述白盒转换构建时设备交互以生成并集合MT特定白盒转换密钥和操作,其中所述被集合的MT特定白盒转换密钥和操作包括:MT特定白盒转换构建时密钥数据和白盒转换操作,以及相应的白盒转换运行时密钥数据和白盒逆操作;
b.将待保护的应用模块的所述二进制代码压缩以形成被压缩的二进制代码;
c.应用所述MT特定白盒转换操作,以通过利用所述MT特定白盒转换构建时密钥数据和白盒转换操作(来自步骤a)来转换所述被压缩的二进制代码以形成白盒转换的模块;
d.通过将所述白盒转换的模块(来自步骤c)与常驻安全模块(RSM)合并,为所述应用模块生成安全封包的应用模块,所述常驻安全模块(RSM)包含处于隐藏形式的所述白盒转换运行时密钥数据和逆操作(在步骤a中集合);以及
其中所述模块转化(MT)还包括运行时处理,所述运行时处理包括:
e.当OS加载所述安全封包的应用模块并且触发所述RSM中的代码的执行时,所述RSM与所述白盒转换运行时设备交互,以利用所述白盒转换运行时密钥数据通过执行所述IV特定白盒转换逆操作将所述白盒转换的模块逆转换为所述被压缩的应用模块;
f.对所述被压缩的应用模块应用非压缩操作以获得所述应用模块的二进制代码;
g.将所述应用模块映入并加载存储器中,并将控制传送至所述应用的进入点。
28.如权利要求27所述的方法,其中所述RSM是通过将ADD和IV二进制转化中的一种或两种应用到所述RSM上来保护的。
29.如权利要求12-28中的任一项所述的方法,其中所述二进制转化之一包括至少一种函数转化(FT),所述至少一种函数转化(FT)通过在构建时和运行时的FT处理保护应用模块内的个别函数,以便阻止对所述函数的静态和动态攻击,其中函数转化包括在构建时的FT处理,其中在构建时的所述FT处理包括:
a.与所述白盒转换构建时设备交互以生成并集合待保护的函数中的每一个待保护的函数特有的FT特定白盒转换密钥和操作代码;
b.通过应用FT特定的白盒转换来产生已转换的函数,从而通过利用函数中的每一个函数特有的白盒转换构建时密钥数据和白盒转换操作(来自步骤a)对包括所述函数中的每一个函数的所述二进制代码进行转换;
c.安装用于所述已转换的函数中的每一个函数的进入和退出函数处理器,以使得对每个已转换的函数的所有调用都通过其进入函数处理器来执行,而通过其退出函数处理器从所述函数返回;
d.通过将所述白盒转换的函数与对应于在步骤(b)中使用的白盒转换构建时密钥数据和白盒转换操作的、步骤(a)中集合的隐藏的白盒转换运行时密钥数据和逆操作,以及为所有受保护函数在步骤(c)中安装的所有进入和退出函数处理器进行组合,为包括常驻安全模块(RSM)和所有受保护的函数的所述应用模块准备安全封装的应用模块;以及其中所述函数转化(FT)还包括用于每一个FT保护的函数的运行时行动,所述运行时行动包括:
e.在应用模块执行期间,当受保护函数被调用时,所述受保护函数的进入函数处理器首先被执行并且与所述白盒转换运行时设备交互,以通过利用所述函数特有的白盒转换运行时密钥数据和操作代码执行所述白盒转换逆操作来对所述白盒转换的函数代码进行逆转换;
f.将所述逆转换的函数加载执行存储器内;以及
g.将所述执行控制传送至所述函数,并且通过从所述函数退出来调用所述函数的退出处理器。
30.如权利要求29所述的方法,其中用于每个函数的所述RSM在返回之前将所述函数的存储器占用空间清除或搅乱。
31.如权利要求29或30所述的方法,其中层内保护被调用,以使得通过将IV转化、ADB转化或者两种转化隐含应用到所述进入和退出函数处理器上,所述IV或ADB转化中的一种或两种与被保护的函数所应用的所述FT联锁。
32.如权利要求29-31中的任一项所述的方法,其中另外的层间转化,即块转化(BT)通过构建时和运行时的BT处理来保护应用模块内个别函数中的代码基础块,以便为所述函数提供抵御静态、动态和自动攻击的更强保护,并且在具体的实施方式中,其中所述块转化包括构建时的所述BT处理,构建时的所述BT处理包括:
a.分析所述函数的控制流和数据流,以识别并确定所述函数的块信息和结构;
b.通过为每一个块安装进入和退出块处理器来扩大每一个块,以使得到达每一个被保护块的所有执行路径首先调用其进入块处理器,然后到达所述块代码,最后相应地经由其退出块处理器从所述块离开;
c.与所述白盒转换构建时设备交互以生成并集合待保护的函数中的每一个待保护的函数特有的BT特定白盒转换密钥和操作代码;
d.通过应用BT特定白盒转换以转换所述基础块中的每一个的已扩大的二进制代码(步骤b中处理的)、通过利用块中的每一个特有的白盒转换构建时密钥数据和白盒转换操作(步骤c中生成并集合)来产生已转换的块;
e.为包括常驻安全模块(RSM)的所述应用模块准备安全封装的应用模块,所述常驻安全模块包含具有所述进入和退出块处理器的所述已转换的块、以及已集合的所述隐藏的白盒转换运行时密钥数据和逆操作;
其中所述块转化(BT)还包括用于一个特殊FT保护的函数的所有受保护块的运行时行动,所述运行时行动包括:
f.在所述应用模块执行期间,每当包含受保护块的受保护函数被调用时,在存储器中属于相同函数的所有块被随机排列;
g.每当受保护块执行时,所述受保护块的进入块处理器被调用,然后与所述白盒转换运行时设备交互,以通过利用所述块特定的白盒转换运行时密钥数据和操作代码、执行所述白盒转换逆操作来对所述白盒转换的块进行逆转换;
h.将所述逆转换的块加载指定的执行存储器中;
i.将执行控制传送至已加载的块,并且经从所述块的退出,所述退出块处理器(任选地)清除或搅乱存储器占用空间并且将执行传送至下一个块。重复步骤B、C以及D直至受保护函数退出。
33.如权利要求32所述的方法,其中所述块转化(BT)还包括基于由用户通过输入安全选项所指定的块排列的频率的存储器中动态逆转换的块的随机代码位置排列。
34.如权利要求32所述的方法,其中所述块转化(BT)还包括所述退出块处理器,所述退出块处理器能够与所述白盒转换运行时设备交互,以通过利用所述块特定的白盒转换运行时密钥数据和操作代码、执行所述白盒转换操作来对所述白盒逆转换的块进行逆转换。
35.如权利要求33或34所述的方法,其中所述块转化通过将IV和/或ADB转化中的一种或两种应用到每一个块的进入和退出块处理器上来得到进一步保护。
36.如权利要求27-35中的任一项所述的方法,其中所述指令转化(IT)通过构建时和运行时的IT处理对应用模块内个别函数中的代码的单个指令进行保护,以便为所述函数提供抵御静态、动态以及自动攻击的更强保护。
37.一种保护包括二进制代码和任选关联数据的软件应用从原形式至更安全形式的系统,所述更安全形式抵抗试图篡改、逆向改造或提升所述应用的全部或部分应用的静态和/或动态攻击,所述系统包括:
a.提供用于软件应用的安全二进制库,以调用在用户想保护的代码位置处的指定转化执行行为;
b.为用户提供选项从而在例如包括所述应用的模块、函数、块以及指令的各种粒度下应用不同类型的转化;
c.提供构建时工具组以对所述应用执行二进制转化准备,并且通过利用所述工具组将所述应用的原执行转换成安全的执行;
d.产生语义等同于原应用、包括联锁的转化执行的受保护应用,所述联锁的转化执行还与转化准备联锁,以使得所述二进制保护不再与所述受保护的应用分离;
e.在受保护应用执行期间,包括联锁的转化执行的所述受保护的应用保护所述执行,以阻止受到静态和动态攻击,并且在执行的任何时间过程中,存在于执行存储器中的二进制代码中的非常少的部分处于清除形式。
38.如权利要求37所述的系统,其中c、d、以及e还包括:
通过在转化准备与执行之间联锁来生成、排列并且增加联锁数据和代码,并且产生若有效联锁数据和代码不存在就不能正确执行的受保护应用;
通过在不同转化的执行之间联锁来生成、排列并且增加联锁数据和代码,并且产生若有效的联锁数据和代码不存在就不能正确执行的受保护应用;
使得多种转化对所述应用产生多个保护层;以及
其中(b)还包括使至少一个粒度的多于一种的转化交叠。
39.如权利要求38所述的系统,还包括嵌套的补充转化产生每个均由IV、ADB或者IV和ADB保护的、具有补充性能的多个嵌套保护层。
40.如权利要求39所述的系统,还包括将粒度分拆成几个部分,并且仅当IV检查结果被确定在当前粒度的当前转化上成功时,为所述粒度的下一部分调用转化执行。
41.如权利要求37-40中的任一项所述的系统,还包括在所述转化之间提供失败和成功回叫功能,其中给定粒度的一个转化的白盒转换逆操作仅当另一转化的白盒转换逆操作成功时才能进行。
42.如以上任一权利要求所述的方法/系统,其中所述转化被应用到所述代码和相关数据上。
43.一种计算机程序产品,包括有形地储存机器可读指令和可执行指令的机器可读介质,当由处理器执行时,所述机器可读介质使得所述处理器实现在本文中公开和/或权利要求保护的方法中的任何方法。
44.如权利要求37所述的系统,其中所述白盒转换允许将白盒运行时密钥数据分拆成两个或更多部分,其中至少一个部分是内部的并且被嵌入所述受保护应用内,而其它部分是外部的并且以一个或多个单独的储存形式储存。
45.如权利要求44所述的系统和方法,还包括:允许外部白盒转换运行时密钥部分单独被供应至所述受保护应用的装置上,而在装置供应时期间,部分安装所述内部白盒转换运行时密钥。
46.如权利要求44所述的系统和方法,还包括:提供通过白盒转换运行时密钥主机调用的特定白盒运行时操作,以将不同且分开的白盒运行时密钥数据部分重新组成为可用形式。
47.如权利要求44所述的系统和方法,还包括:在所述受保护应用与这些单独供应的所述白盒转换运行时密钥的外部部分之间产生联锁依存性,以增加如下安全性:
a.在分配并供应受保护应用和外部密钥信息的任何时期中,攻击者必须打破白盒密钥的多个部分以便得到整个密钥,因此将使得这种攻击更困难并且降低安全风险;
b.由于所述受保护应用和白盒转换运行时密钥的不同示例能具有不同百分比的密钥数据分拆,实施者能通过改变密钥的多个不同部分的比率来引进多样性;
c.将受保护应用的示例与一个装置联锁或者将受保护的示例与共享相同的密钥数据格式的一组装置联锁,以使得受保护应用的示例联锁至单个装置,而来自所述装置的语义等同应用的全部或部分的代码提升不能在任何未授权和匹配的装置上运行。
48.如权利要求47所述的系统和方法,其中供应表现为以下形式:
d.通过制造者在制造时或者服务提供者在供应时,将所述白盒转换运行时密钥的所述外部部分安装在装置上;
e.当所述应用第一次或者每次被调用时,通过网络下载所述白盒转换运行时密钥的所述外部部分;
f.当所述应用被调用时,从用户供给装置获得所述白盒转换运行时密钥的所述外部部分,所述用户供给装置例如为与所述装置连接的智能卡;
g.当所述应用被调用时,通过所述用户手动地进入所述白盒转换运行时密钥的所述外部部分。
49.一种将包括二进制应用代码的二进制软件应用从原形式转换为安全形式的方法,所述安全形式抵抗试图篡改、逆向改造或提升所述应用的全部或部分的静态和/或动态攻击,所述方法包括:
分析所述二进制应用以确定至少一种二进制转化能被应用于其上的、所述应用的至少一个组件,所述组件包括组件代码;
对所述组件代码执行一系列变化以产生改变的组件代码,所述变化包括将至少一种WB转换应用到所述组件代码上以及将与所述变化紧密相关的新代码植入所述二进制应用代码;
通过在所述变化之间生成并放置依存性来联锁所述变化;以及
应用所述变化的组合并将其联锁至待保护的二进制应用代码和被植入的代码,以产生语义等同于所述原应用但包括所述已联锁转换的已转化应用,从而使得所述二进制保护不再与所述受保护应用分离。
50.一种保护包括二进制代码和任选关联数据的软件应用从原形式至更安全形式的方法,所述更安全形式抵抗试图篡改、逆向改造或提升所述应用的全部或部分的静态和/或动态攻击,所述方法包括:
c.提供构建时工作组以对所述应用执行二进制转化准备,并且通过利用所述工具组将所述应用的原执行转换成安全的执行;以及
d.产生语义等同于原应用、包括联锁的转化执行的受保护应用,所述联锁的转化执行还与转化准备联锁,以使得所述二进制保护不再与所述受保护的应用分离;
其中
所述受保护应用的所述安全执行包括被配置使得在其执行的任何时间过程中仅一小部分的二进制代码处于清除形式的联锁的转化执行。
51.如权利要求50所述的方法,其中包括以下步骤:
通过在转化准备和转化执行之间联锁来生成、排列和增加联锁数据和代码,并且产生若有效的联锁数据和代码不存在就不能正确执行的受保护应用;
52.如权利要求51所述的方法,其中所述生成、排列和增加联锁数据和代码包括在不同粒度的不同转化的执行之间联锁,并且产生若有效的联锁数据和代码不存在就不能正确执行的受保护应用;以及
使得多种转化对所述应用产生多个保护层。
53.如权利要求52所述的方法,其中所述不同粒度的不同转化包括使得嵌套的补充转化产生每个均由IV、ADB或者IV和ADB保护的、具有补充性能的多个嵌套保护层。
54.如权利要求50-53中的任一项所述的方法,还包括:
a.为软件应用提供安全二进制库以在用户想要保护的代码位置处调用指定的转化执行行为;以及
b.为用户提供选项以在例如包括所述应用的模块、函数、块以及指令的各种粒度下应用不同类型的转化。
55.一种将包括二进制应用代码的二进制软件应用从原形式转换为安全形式的方法,所述安全形式抵抗试图篡改、逆向改造或提升所述应用的全部或部分的静态和/或动态攻击,所述方法包括:
A)在构建时阶段中通过对所述二进制应用代码进行一系列变化来对所述二进制软件应用执行多种二进制转换的组合,以产生被改变的二进制应用代码,所述变化包括在构建时植入与所述被改变的二进制应用代码紧密相关的新代码;
B)通过在所述转换之间生成并设置依存性来联锁所述转换;以及
C)对待保护的二进制应用代码和被植入的代码应用所述转换的组合并联锁,以产生语义等同于原应用但包括所述联锁转换的已转化应用,以使得所述二进制保护不再与所述受保护应用分离。
56.如权利要求55所述的方法,其中步骤A和B包括:在二进制形式的所述受保护二进制应用上执行二进制转化特定操作,并且生成执行时需要的关联静态联锁数据,其中二进制转化还包括运行时过程,所述运行时过程包括:
a.以如果所述转化被除去或修改就不保存所述应用的原语义的方式来执行被插入所述应用中的所述转化执行代码;
b.动态生成进一步需要的运行时联锁数据并执行所述转化执行代码;
c.利用所述关联的静态联锁数据和动态联锁数据以检验所需的联锁依存性;
d.以指定顺序执行一系列多种转化,以使得需要一种转化来生成执行所述受保护应用时适于执行第二转化的应用状态。
57.如权利要求56所述的方法,任何给定的转化包括插入具有其所附联锁设备的IV和ADB例程,并且将程序分解成接下来被WB技术转换的函数、块和指令需要在其中运行的特定环境(其包括实体和退出处理器、RSM等),并因此实际不可逆地产生。
58.一种将包括二进制应用代码的二进制软件应用从原形式转换为安全形式的方法,所述安全形式抵抗试图篡改、逆向改造或提升所述应用的全部或部分的静态和/或动态攻击,所述方法包括:
分析所述二进制应用以确定所述应用的组件,所述二进制转化能被应用于所述组件上,其中每种二进制转化包括:
通过对所述组件代码应用转换来对所述代码进行变化并且附加地植入与所述被转换的组件代码紧密相关的转化执行代码;
通过在所述变化和所述应用代码的其它方面<其能够包括主应用或者其它组件>之间生成并设置依存性来联锁所述变化;以及
应用所述变化并联锁至待保护的二进制应用代码和被植入的代码,以产生语义等同于所述原应用但包括所述联锁转换的已转化应用,以使得所述二进制保护不再与所述受保护应用分离。
59.如权利要求58所述的方法,其中二进制转化包括生成执行时所需的关联的静态联锁数据;
并且其中二进制转化还包括运行时过程,所述运行时过程包括:
a.以如果所述转化被除去或修改就不保存所述应用的原语义的方式来执行被插入所述应用中的所述转化执行代码;
b.动态生成进一步需要的运行时联锁数据并执行所述转化执行代码;
c.利用所述关联的静态和动态联锁数据以检验所需的联锁依存性;
d.以指定顺序执行一系列多种转化,从而需要一种转化来生成所述受保护应用执行时适合于执行第二转化的应用状态。
60.一种如前述权利要求中的任何一项所述的方法,还包括动态函数加载。
61.一种如所述的动态函数加载的方法。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
利用无线LAN无线电波环境图来估计AP位置的方法和装置 | 2020-05-13 | 616 |
偶联生物分子及其制备 | 2020-05-11 | 106 |
用于预防或治疗由eNOS表达而引起的疾病的药物 | 2020-05-13 | 406 |
应用含杂原子的并环戊二烯抗微生物的方法 | 2020-05-12 | 319 |
新的法呢基转移酶抑制剂、其制法及其药物组合物 | 2020-05-13 | 212 |
新的法呢基转移酶抑制剂、其制法及其药物组合物 | 2020-05-13 | 661 |
含杂原子的并环戊二烯的制备方法 | 2020-05-12 | 338 |
M2M群组及其通告资源创建和信息交互方法 | 2020-05-11 | 755 |
会议音频系统、用于分发音频信号的方法以及计算机程序 | 2020-05-12 | 465 |
新的嘧啶并[1′,6′:1,2]吡啶并[3,4-b]吲哚衍生物,含有它们的药物组合物及其制备方法 | 2020-05-12 | 99 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。