[发明专利]面向返回的编程作为混淆技术有效
| 申请号: | 201510223322.7 | 申请日: | 2015-05-05 |
| 公开(公告)号: | CN105095697B | 公开(公告)日: | 2018-07-20 |
| 发明(设计)人: | 菲利普·特温;彼得·玛利亚·弗朗西斯科·罗姆伯茨;让·勒内·布兰茨;简·胡格布鲁格 | 申请(专利权)人: | 恩智浦有限公司 |
| 主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F9/38 |
| 代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 范芳茗 |
| 地址: | 荷兰艾*** | 国省代码: | 荷兰;NL |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 面向 返回 编程 作为 混淆 技术 | ||
1.一种用于混淆计算机软件的功能的方法,其特征在于,该方法包括:
确定需要用来执行目标操作的第一指令集;
确定用于至少一个或多个另外的操作的第二指令集;
调节第二指令集以包含指令,以致通过执行第二指令集能够实现第一指令集的功能;
创建代码库,该代码库包括来自第二指令集的代码片段,该代码片段与当被执行时需要用来实现第一指令集的功能的代码相对应;以及
向第二指令集中添加指令以修改堆栈,从而堆栈以将要实现目标操作的功能的顺序来执行指令;所述堆栈被计算机软件使用,以执行来自代码库的指令。
2.如权利要求1所述的方法,其特征在于,代码库中的代码片段包含跳转指令。
3.如权利要求1所述的方法,其特征在于,第二指令集被调节成包含假的小功能。
4.如权利要求1所述的方法,其特征在于,第二指令集被调节成包含虚设指令。
5.如权利要求1所述的方法,其特征在于,代码库还包括来自计算机软件的数据段的代码片段。
6.如权利要求1所述的方法,其特征在于,创建代码库包括:包括来自共享库的代码片段。
7.如权利要求1所述的方法,其特征在于,第二指令集被调节成包括缺陷,其中内部输入能够访问该缺陷以修改堆栈。
8.如权利要求7所述的方法,其特征在于,执行第二指令集包括,利用缺陷写入到数组的边界的外部,堆栈在数组中实现。
9.如权利要求7所述的方法,其特征在于,修改堆栈包括:
确定将要溢出堆栈的功能;
在计算机软件中的缺陷上实现该功能,其中实现该功能使得堆栈溢出并且在堆栈上重写地址。
10.如权利要求1所述的方法,其特征在于,被执行的代码片段还能够修改堆栈。
11.如权利要求1所述的方法,其特征在于,调节第二指令集还包括:基于第一指令集来给指令排序,以致第二指令集中的指令的地址与代码库中的代码片段编址的地址相对应。
12.如权利要求1所述的方法,其特征在于,在第二指令集执行期间执行目标操作产生被混淆的消息、图像或文件。
13.一种计算机系统,其特征在于,包括:
一个或多个处理器;以及
存储器,被配置成存储程序指令,当一个或多个处理器执行程序指令时,致使一个或多个处理器执行以下步骤:
确定需要用来执行目标操作的第一指令集;
确定用于至少一个或多个另外的操作的第二指令集;以及
调节第二指令集以包含指令,以致通过执行第二指令集能够实现第一指令集的功能;
创建代码库,该代码库包括来自第二指令集的代码片段,代码片段与需要用来实现第一指令集的功能的代码相对应;
向第二指令集中添加指令以修改堆栈,从而堆栈以将要实现目标操作的功能的顺序来执行指令;所述堆栈被计算机软件使用,以执行来自代码库的指令。
14.如权利要求13所述的计算机系统,其特征在于,代码库中的代码片段包含跳转指令。
15.如权利要求13所述的计算机系统,其特征在于,第二指令集被调节以包含以下至少一种:假的小功能、虚设指令、来自计算机软件的数据段的代码片段、来自共享库的代码片段、以及缺陷,内部输入能够访问该缺陷以修改堆栈。
16.如权利要求13所述的计算机系统,其特征在于,第二指令集包括利用缺陷写入到数组的边界的外部,堆栈在数组中实现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于恩智浦有限公司,未经恩智浦有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510223322.7/1.html,转载请声明来源钻瓜专利网。





