【技术实现步骤摘要】
【国外来华专利技术】用于创建具有纠缠变换的安全计算机代码的系统、方法和存储介质
[0001]本公开涉及用于创建安全计算机代码的系统、方法和存储介质。
技术介绍
[0002]“模糊(obfuscation)”除其他事物之外尤其是一种对计算机软件代码应用变换(也称为“变换”)的方法,通过使软件代码的逆向工程变得复杂并且因此致使代码更抵抗攻击,从而致使代码更复杂(而不对意图功能产生实质性不利影响)。在许多实例中,延迟攻击者逆向工程软件代码的能力就足够了,尤其是如果代码是执行金融交易的应用,这通常仅花费几秒钟来完成。在受版权保护的材料的实例中,通过使篡改过程足够困难,使得当与软件的正版拷贝的成本相比时,篡改过程变得过分地昂贵,模糊得以成功。
[0003]存在多种类型的已知变换。数据变换可以(手动或自动)应用于全局和局部变量、函数参数和返回值的位置。通常,对于每个个体变换位置集合,随机地和局部地选择固有常量。诸如统一签名(统一签名,FST)和合并函数(MergeFunction)之类的函数变换也可以手动或自动应用,并且可以将函数参数混洗并返回到用作要传递到经变换的函数中的新自变量的数组中,并且然后在需要时合并经变换的函数。
[0004]代码转换器间接函数变换自动应用于函数调用,并创建用于替换所有原始函数调用的函数地址表。该表包括函数地址和一些固有常量(每个函数地址一个),它们是随机生成的,用于模糊函数。控制流平坦化变换自动将控制流转换成switch语句,其中为语句随机生成固有常量,从而模糊软件的控制流。
[0005]通常, ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种被配置用于呈现目标代码的系统,所述系统包括:由机器可读指令配置的一个或多个硬件处理器,用于:接收输入代码;将至少一个模糊变换应用于输入代码的多个代码函数,以创建包括经变换的代码函数的经变换的代码,经变换的代码函数包括由至少一个模糊变换产生的至少一个变换值,其中经变换的代码在被编译和执行时具有与输入代码在被编译和执行时基本上相同的功能性;接收共享常量;接收函数表达式,其中所述函数表达式是代码,并且接受共享常量和至少变换值作为自变量,从而确定至少一个纠缠参数;对于经变换的代码中的每个经变换的代码函数,用函数表达式和所述至少一个纠缠参数替换所述至少一个变换值,以创建目标代码,经变换的代码函数在所述目标代码中纠缠,从而致使目标代码针对静态分析攻击被保护。2.根据权利要求1所述的系统,其中,所述至少一个模糊变换包括代码转换器间接函数变换,并且所述变换值包括偏移值。3.根据权利要求1所述的系统,其中,所述至少一个模糊变换包括统一签名变换,并且所述变换值包括值的数组。4.根据权利要求1所述的系统,其中,确定共享常量包括确定多个共享常量,并且确定函数表达式包括确定多个函数表达式,每个函数表达式对应于共享常量,并且每个函数表达式和对应的共享常量被应用于至少两个经变换的代码函数。5.根据权利要求1所述的系统,其中,所述至少一个模糊变换包括至少两种不同类型的模糊变换。6.一种用于呈现目标代码的方法,包括:接收输入代码;将至少一个模糊变换应用于输入代码的多个代码函数,以创建包括经变换的代码函数的经变换的代码,经变换的代码函数包括由所述至少一个模糊变换产生的变换值,其中经变换的代码在被编译和执行时具有与输入代码在被编译和执行时基本上相同的功能性;确定共享常量;确定函数表达式,其中函数表达式是代码,并且接受共享常量和所述至少一个变换值作为自变量,从而确定至少一个纠缠参数;对于经变换的代码中的每个经变换的代码函数,用函数表达式和所述至少一个纠缠参数替换变换值,以创建目标代码,经变换的代码函数在所述目标代码中纠缠,从而致使目标代码针对静态分析攻击被保护。7.根据权利要求6所述的方法,其中,所述至少一个模糊变换包括代码转换器间接函数变换,并且所述变换值包括偏移值。8.根据权利要求6所述的方法,其中,所述至少一个模糊变换包括统一签名变换,并且所述变换值包括值的数组。9.根据权利要求6所述的方法,其中,确定共享常量包括确定多个共享常量,并且确定函数表达式包括确定多个函数表达式,每个函数表达式对应于共享常量,并且每个函数表
达式和对应的共享常量被应用于至少两个经变换的代码函数。10.根据权利要求6所述的方法,其中,所述至少一个模糊变换包括至少两种不同类型的模糊变换。11.一种其上体现有指令的非瞬态计算机可读存储介质,所述指令通过一个或多个处理器可执行以执行用于呈现目标代码的方法,所述方法包括:接收输入代码;将至少一个模糊变换应用于输入代码的多个代码函数,以创建包括经变换的代码函数的经变换的代码,经变换的代码函数包括由所述至少一个模糊变换产生的变换值,其中经变换的代码在被编译和执行时具有与输入代码在被编译和执行时基本上相同的功能性;确定共享常量;确定函数表达式,其中函数表达式是代码,并且接受共享常量和至少一个变换值作为自变量,从而确定至少一个纠缠参数;对于经变换的代码中的每个经变换的代码函数,用函数表达式和所述至少一个纠缠参数替换变换参数,以创建目标代码,经变换的代码函数在所述目标代码中纠缠,从而致使目标代码针对静态分析攻击被保护。1...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。