当前位置: 首页 > 专利查询>西北大学专利>正文

一种基于ARM指令虚拟化的软件防护能耗评估方法技术

技术编号:16873631 阅读:52 留言:0更新日期:2017-12-23 11:37
本发明专利技术公开了一种基于ARM指令虚拟化的软件防护能耗评估方法,该方法首先设计合适精确的测量智能手机电量的方案,搭建起实验平台。对比研究采用了ARM指令虚拟化保护方法之前和之后的程序,设计出合理的测试程序,在智能手机上运行测试程序并同时测量记录测试程序运行时手机的电量变化。分析测量到的数据,研究总结ARM指令虚拟化保护方法对能耗产生的影响,并利用线性回归模型生成线性回归方程,实现对采用了ARM指令虚拟化保护方法而产生的能耗进行预测评估。本发明专利技术便于软件开发者了解其采用的软件保护方法对智能手机能耗产生的影响,从而在软件保护强度和最终的能量的消耗之间维持一个很好的平衡。

A method for evaluating energy consumption of software protection based on ARM instruction virtualization

The invention discloses a software protection energy consumption evaluation method based on the ARM instruction virtualization. The method first designs an accurate and accurate scheme for measuring the power consumption of smart phones, and builds an experimental platform. The comparative study adopts the program before and after the ARM instruction virtualization protection method, designs a reasonable test program, runs the test program on the smart phone, and simultaneously records and records the power change of the mobile phone when the test program runs. Analyze the measured data, summarize the influence of the ARM directive virtualization protection method on the energy consumption, and use the linear regression model to generate the linear regression equation, and achieve the prediction and evaluation of the energy consumption generated by the ARM instruction virtualization protection method. The invention is easy for software developers to understand the influence of software protection methods adopted on the energy consumption of smart phones, so as to maintain a good balance between the strength of software protection and the consumption of final energy.

【技术实现步骤摘要】
一种基于ARM指令虚拟化的软件防护能耗评估方法
本专利技术属于智能手机能耗评估
,具体涉及一种基于ARM指令虚拟化的软件防护能耗评估方法。
技术介绍
智能手机市场一直在以惊人的速度增长,随着人们依靠智能手机的功能和娱乐,手机的电池续航能力就成了最大的问题。然而,智能手机发展到今天,许多方面都已经大幅改善,但是电池续航却仍然是一个影响数百万用户体验的重要因素。如何提高智能手机电池续航能力?一方面是研究更换更大容量的电池,这对于目前的技术很难有所突破;另一方面是能耗优化,这是目前研究人员关注的重点。然而,当智能手机的发展给社会带来了巨大的效益,给用户提供了巨大的便利的同时,应用软件的安全问题也越来越严重。面对越来越严峻的移动安全环境,就需要更高强度的保护方法,来保护应用程序不被攻击者攻击利用。但是,当软件保护方法的强度越来越大,复杂度也会越来越大,一味的追求软件保护强度,会造成软件保护方法过于复杂,软件运行时指令膨胀,能耗增加等问题。现有的对于智能手机能耗的研究主要有两大类,一类是对智能手机上的某一类应用软件或者某一类活动来进行能耗优化。例如,研究智能手机加载web页面时的能量和性能的平衡,以优化智能手机浏览器加载web页面时的能耗;通过动态缩放屏幕分辨率来优化智能手机屏幕的能耗,以达到最好的用户体验和节能;测量研究智能手机后台活动及其对能量消耗的影响,优化屏幕关闭期间智能手机的能耗。另一类是通过研究智能手机各组件的能耗,利用一些科学方法来进行整个智能手机的功率建模。例如,针对CPU、LCD、GPS、Wi-Fi、音频和cellular接口等组件,建立的功率模型PowerBooter和在线功率评估工具PowerTutor;基于系统调用的功率建模方法和能量分析器Eprof;基于利用率的模型和基于有限状态机的模型等等。现有的研究没有关于采用软件防护方法造成软件运行时能耗增加的问题的研究,因此现有的技术不能被直接利用解决此问题。
技术实现思路
本专利技术的目的在于,提供一种基于ARM指令虚拟化的软件防护能耗评估方法,用以评估ARM指令虚拟化的软件保护方法对智能手机能耗的影响,以便于软件开发者了解其采用的软件保护方法对智能手机能耗产生的影响,从而使开发者能够在软件保护强度和最终的能量的消耗之间维持一个很好的平衡。为了实现上述任务,本专利技术采用以下技术方案:一种基于ARM指令虚拟化的软件防护能耗评估方法,包括以下步骤:步骤一,搭建测量智能手机电流的实验平台将智能手机的主板与电池之间的正极线上串联一个极小电阻,然后在所述的极小电阻的两端并联一个具有记录功能的高精度数字万用表;步骤二,建立受保护的测试程序在Android平台中新建一个本地层函数,将待保护软件中的待保护指令写入所述的本地层函数中,对所述的本地层函数设置多次循环,并在循环开始和结束的时刻分别增加时间戳,用以记录本地层函数开始执行和结束执行的时间;然后进行编译打包,生成待保护的测试程序;利用ARM指令虚拟化保护方法对所述的待保护的测试程序进行保护,得到受保护的测试程序;步骤三,处理实验数据在智能手机上分别运行待保护的测试程序和受保护的测试程序,并在测试时,利用所述的万用表以固定的频率记录极小电阻两端的电压数据,并进行以下处理:步骤3.1,利用公式:电流=电压/电阻,对所述的电压数据进行处理,得到电流数据;利用MATLAB绘制出电流随时间的变化曲线图,并通过时间戳定位到本地层函数运行造成的电流变化部分;步骤3.2,计算所述的变化曲线与时间轴之间的面积,即本地层函数运行耗电量,用该耗电量减去本地层函数在运行时智能手机屏幕的耗电量,得到本地层函数运行时实际耗电量;步骤四,软件防护能耗的评估利用线性回归方法,对待保护指令的条数和所述的实际耗电量进行线性拟合,分别得到待保护的测试程序、受保护的测试程序的线性回归方程;利用线性回归方程,计算得到待保护指令在待保护的测试程序运行时的耗电量Y1和在受保护的测试程序运行时的耗电量Y2,计算能耗增量M=(Y2-Y1)/Y1,通过能耗增量的大小对软件防护能耗进行评估。进一步地,步骤二中,对所述的本地层函数采用延时调用的设计方法,以保证本地层函数在执行时的前后一段时间内没有其他程序执行。进一步地,步骤3.2中,本地层函数运行时智能手机屏幕耗电量的计算方法为:连接所述的变化曲线的两个端点,得到连接线,连接线两端向时间轴做垂线,两条垂线、时间轴以及连接线围成的面积即为屏幕耗电量。进一步地,所述的极小电阻的电阻值为100毫欧。本专利技术具有以下技术特点:1.本专利技术针对ARM指令来进行研究,ARM指令的特点是代码执行时间短,电量变化小,难以测量。通过研究和多次实验对比分析,总结得出通过隔离并延迟执行待保护指令,并合适次数循环运行待保护指令,解决了对指令级别的能耗进行测量的问题;2.针对现有设备和软件无法直接精确测量得到智能手机电量数据,从而导致不能精确计算出能耗的问题,通过直接在智能手机和其原装电池之间增加极小电阻,测量极小电阻两端电压变化进行了有效的解决;3.通过在测试程序中增加时间戳,解决了无法精确匹配程序运行活动和电量变化活动的问题;4.通过一对一设计测试程序,一个原始程序对应一个受保护程序,避免测试程序中微小的差异对实验结果造成影响,并且严格控制实验环境,有效的提高了测量的准确度。附图说明图1为本专利技术方法的整体流程图;图2为测量智能手机电流的实验电路图;图3为设计测试程序的代码示意图;图4为在智能手机上运行测试程序时测量得到的智能手机电流变化示意图;图5为待保护指令线性回归拟合结果示意图;图6为待保护指令被保护后线性回归拟合结果示意图;具体实施方式本专利技术选择Android平台中当前的研究热点—基于ARM指令虚拟化的软件保护方法作为研究对象,用以评估这类保护方法在软件保护过程中的能耗大小。ARM指令虚拟化保护方法的原理和传统计算机上的虚拟机保护方法原理基本相同,ARM指令虚拟化保护主要针对APP本地层代码进行保护,利用代码虚拟化技术,将软件程序的待保护指令(ARM指令)转换成一种自定义的虚拟指令,在程序执行时,这些虚拟指令被一个虚拟解释器逐条解释执行,从而实现待保护指令的原始功能。ARM指令虚拟化保护的优势在于它极大地增加了攻击者逆向分析的代价,能够有效的对软件进行保护。本专利技术的具体步骤如下:一种基于ARM指令虚拟化的软件防护能耗评估方法,包括以下步骤:步骤一,搭建测量智能手机电流的实验平台如图1所示,智能手机的电池上一共有四条线与手机的主板相连,其分别是,正极线、负极线和两条数据传输线。本方案中,将正极线先断开,然后在正极线上串联一个极小电阻,其他三条线不变动。然后在所述的极小电阻的两端并联一个具有记录功能的高精度数字万用表,选择万用表的电压表功能,在手机上的程序运行时,测量极小电阻两端的电压,并设置以0.006NPLC(工频周期数)的频率记录下电压数据(大约每秒记录65个数据)。本实施例中,采用的极小电阻的电阻值为100毫欧。通过测得极小电阻两端的电压变化,利用公式I=U/R计算得到手机电流变化。目前能够高精度测量手机电流的设备都是通过外接电源给手机供电,然后检测电流变化。但是这只适用于非智能手机和较老版本的智能手机,目前大部分的本文档来自技高网
...
一种基于ARM指令虚拟化的软件防护能耗评估方法

【技术保护点】
一种基于ARM指令虚拟化的软件防护能耗评估方法,其特征在于,包括以下步骤:步骤一,搭建测量智能手机电流的实验平台将智能手机的主板与电池之间的正极线上串联一个极小电阻,然后在所述的极小电阻的两端并联一个具有记录功能的高精度数字万用表;步骤二,建立受保护的测试程序在Android平台中新建一个本地层函数,将待保护软件中的待保护指令写入所述的本地层函数中,对所述的本地层函数设置多次循环,并在循环开始和结束的时刻分别增加时间戳,用以记录本地层函数开始执行和结束执行的时间;然后进行编译打包,生成待保护的测试程序;利用ARM指令虚拟化保护方法对所述的待保护的测试程序进行保护,得到受保护的测试程序;步骤三,处理实验数据在智能手机上分别运行待保护的测试程序和受保护的测试程序,并在测试时,利用所述的万用表以固定的频率记录极小电阻两端的电压数据,并进行以下处理:步骤3.1,利用公式:电流=电压/电阻,对所述的电压数据进行处理,得到电流数据;利用MATLAB绘制出电流随时间的变化曲线图,并通过时间戳定位到本地层函数运行造成的电流变化部分;步骤3.2,计算所述的变化曲线与时间轴之间的面积,即本地层函数运行耗电量,用该耗电量减去本地层函数在运行时智能手机屏幕的耗电量,得到本地层函数运行时实际耗电量;步骤四,软件防护能耗的评估利用线性回归方法,对待保护指令的条数和所述的实际耗电量进行线性拟合,分别得到待保护的测试程序、受保护的测试程序的线性回归方程;利用线性回归方程,计算得到待保护指令在待保护的测试程序运行时的耗电量Y1和在受保护的测试程序运行时的耗电量Y2,计算能耗增量M=(Y2‑Y1)/Y1,通过能耗增量的大小对软件防护能耗进行评估。...

【技术特征摘要】
1.一种基于ARM指令虚拟化的软件防护能耗评估方法,其特征在于,包括以下步骤:步骤一,搭建测量智能手机电流的实验平台将智能手机的主板与电池之间的正极线上串联一个极小电阻,然后在所述的极小电阻的两端并联一个具有记录功能的高精度数字万用表;步骤二,建立受保护的测试程序在Android平台中新建一个本地层函数,将待保护软件中的待保护指令写入所述的本地层函数中,对所述的本地层函数设置多次循环,并在循环开始和结束的时刻分别增加时间戳,用以记录本地层函数开始执行和结束执行的时间;然后进行编译打包,生成待保护的测试程序;利用ARM指令虚拟化保护方法对所述的待保护的测试程序进行保护,得到受保护的测试程序;步骤三,处理实验数据在智能手机上分别运行待保护的测试程序和受保护的测试程序,并在测试时,利用所述的万用表以固定的频率记录极小电阻两端的电压数据,并进行以下处理:步骤3.1,利用公式:电流=电压/电阻,对所述的电压数据进行处理,得到电流数据;利用MATLAB绘制出电流随时间的变化曲线图,并通过时间戳定位到本地层函数运行造成的电流变化部分;步骤3.2,计算所述的变化曲线与时间轴之间的面积,即本地层函数运行耗...

【专利技术属性】
技术研发人员:房鼎益陈美玲汤战勇李振赵贝贝陈晓江龚晓庆陈锋
申请(专利权)人:西北大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1