【技术实现步骤摘要】
【国外来华专利技术】用于防护软件代码的方法
本专利技术涉及软件保护的领域,并且更具体地涉及防篡改技术的领域。它公开了一种基于完整性校验并且抗经编译的代码静态分析的防篡改方法。
技术介绍
现今,通过运行软件应用而向用户提供了许多服务。这样的应用可以运行在各种移动或否的设备上,所述设备诸如台式计算机、膝上型电脑、销售终端点、智能电话等等。它们可以在本地运行或跨网络、比如LAN或因特网而被实现。诸如智能卡或银行信用卡之类的一些设备甚至可以专用于运行一个或几个应用。这样的应用通常运行在不安全的环境中,其中攻击者可获得对运行应用的系统的操作的某种控制或甚至全部控制。因此,这些应用中的大多数需要实现某些安全机制以便保护应用所处置的数据免被这样的攻击者读取或修改。攻击者可尝试通过对系统所执行的经编译的代码的逆向工程来理解软件的操作。他然后可以访问通过软件所处置的安全信息和/或修改软件以便执行恶意操作。例如,攻击者可修改银行软件以便执行恶意金融交易或修改经许可保护的软件以便在不购买许可的情况下免费运行它。这样的逆向工程通常通过使用工具来被执行,所述工具 ...
【技术保护点】
1.一种用于防护包括被组织在多个基本块中的计算机代码指令的经编译的软件代码(SC)的方法,所述方法生成安全软件代码(SSC)并且包括如下步骤:/n·由处理器(21)确定(S1)待保护的软件代码的部分,/n·由处理器在软件代码的所选基本块中插入(S2)第一指令序列,所述第一指令序列当在运行时被执行的时候:/n
【技术特征摘要】
【国外来华专利技术】20170126 EP 17153409.21.一种用于防护包括被组织在多个基本块中的计算机代码指令的经编译的软件代码(SC)的方法,所述方法生成安全软件代码(SSC)并且包括如下步骤:
·由处理器(21)确定(S1)待保护的软件代码的部分,
·由处理器在软件代码的所选基本块中插入(S2)第一指令序列,所述第一指令序列当在运行时被执行的时候:
在待保护的软件代码的所述部分上计算(E1)完整性校验值,
基于所述所计算的完整性校验值来计算(E2)索引值,
·由处理器在软件代码的所选基本块中插入(S3)存储器地址的索引数组,其中在执行安全软件代码的时候将在所选基本块之后被执行的随后的基本块的地址由所述索引值索引,
·由处理器在软件代码的所选基本块的结束处插入(S4)向由在运行时所计算的所述索引值在数组中索引的地址的跳转指令。
2.根据权利要求1所述的方法,其中随机确定待保护的软件代码的所述部分。
3.根据权利要求1所述的方法,其中在待保护的软件代码的所述部分上以及在所选基本块的至少一部分上计算完整性校验值。
4.根据权利要求1所述的方法,其中第一指令序列包括第二指令序列,所述第二指令序列当在运行时被执行的时候通过如下来计算所述完整性校验值:执行校验和、掩码、散列函数、二进制移位和算术运算之中的一个或多个运算。
5.根据权利要求1所述的方法,其中在计算完整性校验函数的预定指令序列的集合中随机选择所述第二指令序列。
6.根据权利要求1所述的方法,其中第一指令序列包括第三指令序列,所述第三指令序列当在运行时被执行的时候将变换函数应用到所述所计算的完整性校验值以计算所述索引值,所述变换函数包括校验和、掩码、散列函数、二进制移位和算术运算之中的一个或多个运算。
7.根据权利要求6所述的方法,其中在预定变换函数的集合中随机选择所述变换函数。
8.根据权利要求1所述的方法,其中数组中的地址是当安全软件代码被执行的时候安全软件代码的基本块的地址。
9.根据权利要求1所述的方法,其中在起始地址与停止地址之间的安全软件代码的指令上计算所述完整性校验值,
并且包括第五防护步骤(S5),其在编译并且链接安全软件代码的时候或其之后被执行,并且包括:
·确定将在其上计算完整性校验值的软件代码的部分的开始和结束在软件代码中的开始和结束地址,
·计算所述完整性校验值并...
【专利技术属性】
技术研发人员:E加罗,S福尔佩,P加尔巴,
申请(专利权)人:泰雷兹数字安全法国股份有限公司,德国斯芬特有限责任公司,
类型:发明
国别省市:法国;FR
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。