基于嵌套复杂度的控制流混淆算法研究

来源 :合肥工业大学 | 被引量 : 0次 | 上传用户:jingkaiqq
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
计算机软件的广泛运用,大大提高了社会生产力,同时也带来了诸多安全问题。特别是近年来移动互联网的飞速发展,安卓智能手机和Java语言的使用越来越多,安卓系统的开放性导致大量应用程序被破解甚至植入木马和病毒,不仅给软件开发者的知识产权和合法权益造成了严重损害,而且严重威胁手机用户的个人隐私和数据安全。因此,研究更加有效的软件保护技术具有十分重要的意义。代码混淆是软件保护的关键技术,它对程序的外形、数据流、控制流等进行语义保留的变换,生成功能相同却更加难以理解和分析的程序,能有效防止程序被恶意破解。本文介绍了代码混淆的国内外研究现状和几种代码混淆算法,重点分析了基于随机插入策略的控制流混淆算法,探讨了代码混淆的评估方法,研究了JVM指令集和Java字节码文件格式。基于随机插入策略的控制流混淆算法存在混淆强度和额外开销的不确定性,针对这一问题,提出一种基于嵌套复杂度的控制流混淆算法OB_NC,通过计算指令开销和循环嵌套深度来对混淆操作所引入的开销进行量化,采用嵌套复杂度对控制流复杂度进行度量,基于分组背包思想构造背包决策表,综合考虑混淆强度和开销来选择垃圾代码插入点,在开销阈值内尽可能提升混淆强度。分析和实验结果表明,与基于随机插入策略的控制流混淆算法相比,OB_NC算法混淆后的控制流更加复杂,具有更高的混淆强度,且时间开销较低。最后介绍了安卓应用程序结构,分析了目前主流DEX加壳技术的原理和不足。在此基础上,将OB NC算法运用到安卓APP的安全加固中,并验证了其可行性。
其他文献
随着软件行业的飞速发展,设计模式已经成为软件工程领域研究的一大热点。设计模式可以用来解决软件设计过程中重复出现的问题,使用设计模式可以有效提供软件的可复用性,可靠性和
近年来,校园“一卡通”逐渐成为校园内信息交互的重要载体,它在身份识别、电子钱包、考勤等方面得到了广泛应用。东华大学教职员工可凭校园“一卡通”刷卡搭乘校区间班车,学
说话人识别是生物认证技术的一种,是根据语音波形中反映的说话人生理和行为特征的语音参数自动鉴别说话人身份的技术,有着广阔的市场应用前景。本文研究的是基于矢量量化方法
随着汽车持有量的不断增加,城市交通系统的负荷日益加重,导致汽车倒车引起的交通事故也越来越多,这些事故常常给驾驶员带来很大的经济损失。因此,研究高性能的辅助泊车装置是
随着互联网技术的改革和发展,网络拥塞问题也随之而来。AQM就是缓解这一问题的关键技术。其中,作为AQM算法中应用最为广泛的RED算法备受关注。但是,大量的研究结果表明,RED算
数控技术的发展是制造业发展的推动力,传统的数控系统通常采用封闭式的系统结构,系统的软硬件不易扩展,兼容性比较差,并且专用系统的技术垄断也阻碍了技术的交流和进步,针对这些问
互联网汇聚了极其丰富的数据资源,促使越来越多的最终用户对网络资源的集成需求,以构建满足个性化需求的增值型互联网情景应用。互联网情景应用是一种新型的互联网信息集成应
信息技术的飞速发展和互联网的普及使得网上信息呈现出几何级数的增长。检索和利用网络信息变得越来越困难。如何有效的对海量信息进行组织、压缩和检索,提高信息访问的效率
由于GPS定位精度的影响,当GPS位置数据显示到电子地图上时,会出现车辆轨迹曲线偏离实际行驶道路的现象。如果不对其进行修正,基于位置服务的应用将受到很大的影响。为了消除
图像超分辨率重建是指利用一幅或多幅低分辨率图像来获取对应高分辨率图像的一个过程,作为一种后处理技术,其通过恢复图像在采集过程中所丢失的细节信息,来达到提升图像质量