基于嵌套復雜度的控制流混淆算法研究
本文關(guān)鍵詞:基于嵌套復雜度的控制流混淆算法研究
更多相關(guān)文章: 代碼混淆 嵌套復雜度 控制流 安卓 Java
【摘要】:計算機軟件的廣泛運用,大大提高了社會生產(chǎn)力,同時也帶來了諸多安全問題。特別是近年來移動互聯(lián)網(wǎng)的飛速發(fā)展,安卓智能手機和Java語言的使用越來越多,安卓系統(tǒng)的開放性導致大量應(yīng)用程序被破解甚至植入木馬和病毒,不僅給軟件開發(fā)者的知識產(chǎn)權(quán)和合法權(quán)益造成了嚴重損害,而且嚴重威脅手機用戶的個人隱私和數(shù)據(jù)安全。因此,研究更加有效的軟件保護技術(shù)具有十分重要的意義。代碼混淆是軟件保護的關(guān)鍵技術(shù),它對程序的外形、數(shù)據(jù)流、控制流等進行語義保留的變換,生成功能相同卻更加難以理解和分析的程序,能有效防止程序被惡意破解。本文介紹了代碼混淆的國內(nèi)外研究現(xiàn)狀和幾種代碼混淆算法,重點分析了基于隨機插入策略的控制流混淆算法,探討了代碼混淆的評估方法,研究了JVM指令集和Java字節(jié)碼文件格式;陔S機插入策略的控制流混淆算法存在混淆強度和額外開銷的不確定性,針對這一問題,提出一種基于嵌套復雜度的控制流混淆算法OB_NC,通過計算指令開銷和循環(huán)嵌套深度來對混淆操作所引入的開銷進行量化,采用嵌套復雜度對控制流復雜度進行度量,基于分組背包思想構(gòu)造背包決策表,綜合考慮混淆強度和開銷來選擇垃圾代碼插入點,在開銷閾值內(nèi)盡可能提升混淆強度。分析和實驗結(jié)果表明,與基于隨機插入策略的控制流混淆算法相比,OB_NC算法混淆后的控制流更加復雜,具有更高的混淆強度,且時間開銷較低。最后介紹了安卓應(yīng)用程序結(jié)構(gòu),分析了目前主流DEX加殼技術(shù)的原理和不足。在此基礎(chǔ)上,將OB NC算法運用到安卓APP的安全加固中,并驗證了其可行性。
【關(guān)鍵詞】:代碼混淆 嵌套復雜度 控制流 安卓 Java
【學位授予單位】:合肥工業(yè)大學
【學位級別】:碩士
【學位授予年份】:2016
【分類號】:TP309
【目錄】:
- 致謝7-8
- 摘要8-9
- abstract9-15
- 第一章 緒論15-19
- 1.1 研究背景與意義15
- 1.2 國內(nèi)外研究現(xiàn)狀15-17
- 1.3 論文研究內(nèi)容17
- 1.4 論文組織架構(gòu)17-19
- 第二章 代碼混淆19-28
- 2.1 代碼混淆的概念19-20
- 2.2 代碼混淆的分類20
- 2.3 標識符重命名20-21
- 2.4 數(shù)據(jù)流混淆21-22
- 2.5 類結(jié)構(gòu)混淆22
- 2.6 控制流混淆22-26
- 2.6.1 基于不透明謂詞的控制流混淆22-24
- 2.6.2 基于垃圾代碼的控制流混淆24-26
- 2.7 代碼混淆的評估方法26-27
- 2.8 本章小結(jié)27-28
- 第三章 Java字節(jié)碼28-35
- 3.1 JVM指令集28-31
- 3.2 Java字節(jié)碼文件結(jié)構(gòu)31-33
- 3.3 BCEL和Sandmark33-34
- 3.4 本章小結(jié)34-35
- 第四章 基于嵌套復雜度的控制流混淆算法35-46
- 4.1 控制流35-36
- 4.1.1 Java字節(jié)碼控制流圖35-36
- 4.1.2 控制流復雜度36
- 4.2 OB NC算法基本思想36-37
- 4.3 算法步驟37-42
- 4.3.1 初始化37
- 4.3.2 計算插入點的循環(huán)嵌套深度37-40
- 4.3.3 計算混淆強度40
- 4.3.4 選擇插入點進行混淆40-42
- 4.4 算法分析42-44
- 4.5 本章小結(jié)44-46
- 第五章 OB_NC算法性能測試46-52
- 5.1 測試環(huán)境46
- 5.2 CFG對比46-48
- 5.3 混淆強度48-50
- 5.4 混淆開銷50-51
- 5.5 本章小結(jié)51-52
- 第六章 OB_NC算法在安卓APP安全加固中的應(yīng)用52-62
- 6.1 安卓APP安全加固52-56
- 6.1.1 安卓APP文件結(jié)構(gòu)52-53
- 6.1.2 DEX加殼53-55
- 6.1.3 破解DEX殼55-56
- 6.2 OB_NC算法在APP安全加固中的應(yīng)用56-58
- 6.2.1 不透明謂詞和垃圾代碼的構(gòu)造56
- 6.2.2 加固流程56-58
- 6.3 測試58-61
- 6.3.1 測試環(huán)境58
- 6.3.2 測試結(jié)果58-61
- 6.4 本章小結(jié)61-62
- 第七章 總結(jié)與展望62-63
- 7.1 總結(jié)62
- 7.2 展望62-63
- 參考文獻63-67
- 攻讀碩士學位期間的學術(shù)活動及成果情況67-68
【相似文獻】
中國期刊全文數(shù)據(jù)庫 前10條
1 陳衛(wèi)東,楊建軍,葉澄清,潘云鶴;基于塊的流圖模型及其控制流圖[J];浙江大學學報(工學版);2003年02期
2 蘆運照,張兆慶;控制流路徑敏感的深層代碼優(yōu)化技術(shù)[J];計算機工程;2004年10期
3 汪淼;趙榮彩;蔡國明;丁志芳;;軟件流水中隱式控制流恢復技術(shù)[J];計算機科學;2008年10期
4 龔銳;陳微;劉芳;戴葵;王志英;;一種軟硬件結(jié)合的控制流檢測與恢復方法[J];計算機研究與發(fā)展;2009年02期
5 張雁;林英;;程序控制流圖自動生成的算法[J];計算機與數(shù)字工程;2010年02期
6 杜子德;程序控制流圖:一種可觀化的程序設(shè)計工具[J];計算機研究與發(fā)展;1995年12期
7 李愛國;洪炳昒;王司;;軟件實現(xiàn)的程序控制流校驗方法研究進展[J];哈爾濱工業(yè)大學學報;2008年03期
8 胡剛;張平;李清寶;張翠艷;;基于靜態(tài)模擬的二進制控制流恢復算法[J];計算機工程;2011年05期
9 陳新;;基于程序控制流圖源代碼相似程度分析系統(tǒng)[J];計算機系統(tǒng)應(yīng)用;2013年03期
10 李金諾;;一種基于約束分析精簡控制流圖方法[J];計算機與現(xiàn)代化;2013年10期
中國重要會議論文全文數(shù)據(jù)庫 前1條
1 夏玉輝;張威;萬琳;王洪艷;;一種基于控制流圖的靜態(tài)測試方法[A];第三屆全國軟件測試會議與移動計算、柵格、智能化高級論壇論文集[C];2009年
中國博士學位論文全文數(shù)據(jù)庫 前1條
1 王偉;使用顯式控制流語言驗證匯編程序的方法[D];中國科學技術(shù)大學;2011年
中國碩士學位論文全文數(shù)據(jù)庫 前10條
1 楊克;基于代碼屬性圖的軟件安全漏洞挖掘方法研究[D];燕山大學;2015年
2 衛(wèi)彥伉;星載LTE上行同步處理抗輻照技術(shù)研究[D];解放軍信息工程大學;2014年
3 王磊;基于嵌套復雜度的控制流混淆算法研究[D];合肥工業(yè)大學;2016年
4 崔晨;固件代碼控制流圖恢復技術(shù)研究[D];解放軍信息工程大學;2012年
5 馮斌;靜態(tài)構(gòu)造面向方面程序的控制流圖[D];上海交通大學;2007年
6 楊廣;控制流提取模型及軟件可靠性評價應(yīng)用研究[D];大連理工大學;2013年
7 周希;基于靜態(tài)分析的程序控制流圖生成工具的設(shè)計與實現(xiàn)[D];中山大學;2013年
8 李劍明;面向星載計算機瞬時故障的軟件控制流錯誤檢測技術(shù)[D];國防科學技術(shù)大學;2009年
9 韓紅軍;基于控制流圖的Java語言動態(tài)例化的研究[D];北京工業(yè)大學;2002年
10 任浩;基于靜態(tài)分析的C程序控制流圖構(gòu)造方法研究[D];內(nèi)蒙古師范大學;2013年
,本文編號:917057
本文鏈接:http://sikaile.net/falvlunwen/zhishichanquanfa/917057.html