[发明专利]基于寄存器架构的Android应用完整性验证方法有效
申请号: | 201510009389.0 | 申请日: | 2015-01-08 |
公开(公告)号: | CN104598808B | 公开(公告)日: | 2018-02-16 |
发明(设计)人: | 王蕊;贾晓启;林子敏;张道娟 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F21/55 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙)11200 | 代理人: | 余长江 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于寄存器架构的Android应用完整性验证方法,其步骤包括将Android应用程序代码转化为Dalvik虚拟指令代码;针对需要保护的代码段进行胎记分析,得到可用于胎记提取的指令代码状态和寄存器状态信息,并据此生成相应的胎记提取代码;通过代码插桩过程将胎记提取代码植入Smali格式虚拟指令代码中,并重新进行编译生成新的应用;通过动态执行应用预计算出胎记信息,在应用使用过程中,用胎记信息对应用进行完整性验证。本发明通过提取的应用执行过程中的胎记信息,能够主动验证应用代码段的运行过程是否存在异常,从而实现核心代码段、执行过程的验证。 | ||
搜索关键词: | 基于 寄存器 架构 android 应用 完整性 验证 方法 | ||
【主权项】:
一种基于寄存器架构的Android应用完整性验证方法,其步骤包括:1)将Android应用程序的Dex格式代码转化为Dalvik Smali格式的虚拟指令代码;2)基于Android寄存器架构和指令结构特点,对需要保护的应用程序代码段进行胎记分析,得到可用于胎记提取的指令代码状态和寄存器状态信息,其方法为:2‑1)对应用代码执行过程进行分析,获取应用代码段中的类对象层次关系图和控制流程图,分析出应用代码可能的调用执行过程;2‑2)基于应用代码执行过程的分析结果,对代码进行代码中寄存器状态分析,通过寄存器状态恢复代码执行过程指令中缺失的寄存器类型信息;2‑3)基于应用代码执行过程的分析结果,对代码中寄存器的值进行不确定状态分析,通过不确定状态分析排除可能受到不确定因素影响的指令数据;3)根据步骤2)得到的可用于胎记提取的指令代码状态和寄存器状态信息,生成相应的胎记提取代码;胎记提取代码的生成过程针对单条Dalvik指令中的目的寄存器操作数,将其计算转换为合适的中间胎记状态,再将所有的中间胎记状态融合生成最终的胎记值,具体过程为:3‑1)将不同数据类型的寄存器数据转化为胎记中间值,用于进一步的胎记整合;3‑2)计算控制流状态,当应用代码不受不确定因素影响时,对于同样的初始化条件,保持相同的执行流程,提取出确定的胎记信息;当不确定因素引入时,通过生成确定的执行代码过程,得到确切的执行路径过程和路径之上的胎记信息;3‑3)胎记融合,针对代码指令中提取到的中间胎记信息值,利用随机运算与随机数值联合生成最终的胎记值;4)通过代码插桩过程将胎记提取代码植入步骤1)生成的虚拟指令代码中,并重新进行编译生成新的应用;5)通过动态执行应用预计算出胎记信息,在应用使用过程中,用胎记信息对应用进行完整性验证。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510009389.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种用于数控车床的双刀座刀架
- 下一篇:一种具有防工件安装偏心功能的机床尾座