[发明专利]用于使用返回导向编程的代码混淆的方法有效
申请号: | 201680009011.3 | 申请日: | 2016-02-02 |
公开(公告)号: | CN107209815B | 公开(公告)日: | 2020-08-14 |
发明(设计)人: | 高德斌 | 申请(专利权)人: | 华为国际有限公司;新加坡管理大学 |
主分类号: | G06F21/14 | 分类号: | G06F21/14;G06F21/54 |
代理公司: | 北京龙双利达知识产权代理有限公司 11329 | 代理人: | 魏雪娇;毛威 |
地址: | 新加坡市15A*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 使用 返回 导向 编程 代码 混淆 方法 | ||
1.一种执行混淆代码的方法,其特征在于,所述方法包括:
在具有返回导向编程ROP嵌入式主机程序的移动设备中,响应于调用与从所述ROP嵌入式主机程序省略的客户代码相关联的指定功能,检索ROP有效负载,所述ROP嵌入式主机程序包含用于实行所述指定功能的ROP代码;以及
使用所述ROP有效负载重新设置所述移动设备的存储器寄存器,从而执行用于实行与所述客户代码相关联的调用功能的所述ROP代码。
2.根据权利要求1所述的方法,其特征在于,检索ROP有效负载包含从移动设备将获得与所述调用功能相关联的数据的请求发送到远程服务器,并且从所述服务器接收所述所请求的数据和所述ROP有效负载这两者。
3.根据权利要求1所述的方法,其特征在于,检索ROP有效负载包含从所述移动设备中的存储器设备检索所述ROP有效负载。
4.根据权利要求3所述的方法,其特征在于,进一步包括:
在从所述移动设备中的所述存储器设备检索所述ROP有效负载之前,通过验证外部输入来实行对检索所述ROP有效负载的授权。
5.根据权利要求1所述的方法,其特征在于,所述ROP嵌入式主机程序是安卓应用。
6.根据权利要求1所述的方法,其特征在于,所述ROP有效负载包含所述客户代码所需的参数数据、形成所述ROP代码的多个片段的返回地址,以及用于重新设置所述存储器寄存器以执行所述ROP代码的数据段。
7.根据权利要求1到5中任一权利要求所述的方法,其特征在于,通过以下步骤准备所述ROP嵌入式程序:
从具有所述客户代码的非ROP主机程序代码中识别与所述客户代码相关的多个片段并且确定对应于所述片段的多个返回地址;
通过修改将存储于存储器寄存器中的所述返回地址创建连接所述片段的所述ROP代码;
构造所述ROP有效负载,所述ROP有效负载包含所述客户代码所需的参数数据、所述片段的所述返回地址,以及用于重新设置所述存储器寄存器以执行所述ROP代码的数据段;
用杂散代码替代所述主机程序代码中的所述客户代码;
提供用于用所述ROP有效负载重新设置所述存储器寄存器的命令码;以及
存储所述ROP有效负载。
8.一种代码混淆方法,其特征在于,包括:
从具有客户代码的主机程序代码中识别与所述客户代码相关的多个片段并且确定对应于所述片段的多个返回地址;
通过修改将存储于存储器寄存器中的所述返回地址创建连接所述片段的返回导向编程ROP代码,其中所述ROP代码将实行所述客户代码的指定功能;
构造ROP有效负载,所述ROP有效负载包含所述客户代码所需的参数数据、所述片段的所述返回地址,以及用于重新设置所述存储器寄存器以执行所述ROP代码的数据段;
用杂散代码替代所述主机程序代码中的所述客户代码;
提供用于用所述ROP有效负载重新设置所述存储器寄存器的命令码;以及
将所述ROP有效负载存储在存储器设备处,其中所述ROP有效负载用于在运行时被调用从而执行用于实行与所述客户代码相关联的所述指定功能的所述ROP代码。
9.根据权利要求8所述的方法,其特征在于,所述存储器设备位于服务器计算机处,所述服务器计算机远离将安装有包含所述ROP代码的ROP嵌入式主机程序的移动设备。
10.根据权利要求8所述的方法,其特征在于,所述存储器设备位于将安装有包含所述ROP代码的ROP嵌入式主机程序的移动设备处。
11.根据权利要求8所述的方法,其特征在于,所述主机程序是安卓应用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为国际有限公司;新加坡管理大学,未经华为国际有限公司;新加坡管理大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680009011.3/1.html,转载请声明来源钻瓜专利网。