[发明专利]用于代码迷惑的方法及设备有效
申请号: | 200980132311.0 | 申请日: | 2009-08-17 |
公开(公告)号: | CN102132289A | 公开(公告)日: | 2011-07-20 |
发明(设计)人: | 安托万.蒙西夫罗特;费边.拉霍德雷 | 申请(专利权)人: | 汤姆森特许公司 |
主分类号: | G06F21/22 | 分类号: | G06F21/22;G06F21/00 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 吕晓章 |
地址: | 法国伊西*** | 国省代码: | 法国;FR |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 代码 迷惑 方法 设备 | ||
1.一种用于迷惑编译的计算机代码(300)的方法,所述编译的计算机代码(300)包括以多个基本块(310-370)组织的计算机代码指令,该方法包括如下步骤:
-以具有至少一个参数的函数调用来替换(410)第一基本块(360;370)中的跳转指令,其中所述函数调用在执行时依赖于所述参数来确定要执行的下一函数的地址;
-向所述编译的计算机代码(300)插入(440)向所述参数分配值的指令,所述值使得由所述函数调用确定的地址与被替换的跳转指令的目的地地址对应;
其特征在于,将分配指令插入至与所述第一基本块(360;370)不同的并意图要在第一基本块之前执行的第二基本块(320-350)中的计算机代码。
2.如权利要求1所述的方法,其中所述跳转函数为无条件跳转函数。
3.如权利要求1所述的方法,进一步包括如下步骤:在之前的包括有条件跳转指令的第三基本块(310-340)与所述第一基本块(360;370)之间的执行路径中选择(430)第二基本块(320-350)。
4.如权利要求3所述的方法,其中,使用用于编译的计算机代码的控制流程图中的信息来选择第二基本块(320-350)。
5.一种用于迷惑编译的计算机代码(300)的设备(500),所述编译的计算机代码(300)包括以多个基本块(310-370)组织的计算机代码指令,该设备(500)包括:
-替换单元(550),适配为以具有至少一个参数的函数调用来替换第一基本块(360;370)中的跳转指令,其中所述函数调用在执行时依赖于所述参数来确定要执行的下一函数的地址;
-插入单元(580),适配为向所述编译的计算机代码(300)插入向该参数分配值的指令,所述值使得由所述函数调用确定的地址与被替换的跳转指令的目的地地址对应;
所述设备特征在于,其进一步包括:发现单元(570),适配为发现该插入单元(580)向其中插入分配指令的、与第一基本块(360;370)不同的并且意图要在第一基本块之前执行的第二基本块(320-350)。
6.如权利要求5所述的设备,其中所述替换单元(550)适配为替换无条件跳转函数。
7.如权利要求5所述的设备,其中所述发现单元(570)适配为在之前的包括有条件跳转指令的第三基本块(310-340)与所述第一基本块(360;370)之间的执行路径中发现第二基本块(320-350)。
8.如权利要求7所述的设备,其中所述发现单元(570)适配为使用用于编译的计算机代码的控制流程图中的信息来发现第二基本块(320-350)
9.如权利要求5所述的设备,其中,在至少一个处理器(510)中实施所述替换单元(550),所述插入单元(580),以及所述发现单元(570)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汤姆森特许公司,未经汤姆森特许公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200980132311.0/1.html,转载请声明来源钻瓜专利网。