基于代碼混淆的軟件保護方案研究與設計
發(fā)布時間:2024-12-24 21:55
隨著科技的飛速發(fā)展,“萬物皆可連”的物聯網時代已經到來,可預見會有越來越多的物聯網應用出現。由于是新興行業(yè),很多制度尚不完善,類比傳統(tǒng)軟件行業(yè)受到的軟件盜版等問題的困擾,物聯網應用同樣面臨軟件資產被盜的威脅。軟件資產的安全性迫切需要得到保障,而代碼混淆技術是實現軟件保護的有效手段。由于物聯網應用場景復雜,平臺繁多,設備體系架構、軟件編程語言未得到統(tǒng)一化的規(guī)定,導致針對特定編程語言或者特定平臺架構的傳統(tǒng)代碼混淆方案應用受限,因此本文提出基于LLVM這款優(yōu)秀的編譯系統(tǒng)來克服上述的問題。LLVM框架擁有設計優(yōu)良的中間語言格式,具有平臺無關性,同時支持多種編程語言并可以生成不同體系架構的機器碼,這些特點使得基于LLVM設計面向物聯網應用的代碼混淆保護方案變得可能。本文基于LLVM框架,面向物聯網應用研究設計基于代碼混淆的軟件保護方案。在分析現有代碼混淆技術的基礎上,針對物聯網應用的特點,提出三種較為輕量級的代碼混淆算法。對字符串數據進行混淆,防止攻擊者通過靜態(tài)字符串掃描的方式獲取程序內部敏感信息。設計密鑰變換,并在使用字符串前執(zhí)行動態(tài)解密操作,使用完之后進行重新加密操作,對抗動態(tài)內存掃描字符串攻...
【文章頁數】:78 頁
【學位級別】:碩士
【文章目錄】:
摘要
abstract
第一章 緒論
1.1 研究背景與意義
1.2 代碼混淆國內外研究現狀
1.3 本文主要研究內容
1.4 本文組織結構
1.5 本章小結
第二章 代碼混淆相關技術研究
2.1 代碼混淆定義
2.1.1 混淆變換
2.1.2 可以實用的混淆變換
2.2 代碼混淆方案分類
2.2.1 Collberg理論分類
2.2.1.1 布局混淆
2.2.1.2 數據混淆
2.2.1.3 控制流混淆
2.2.1.4 預防性混淆
2.2.2 按混淆對象分類
2.2.3 按靜態(tài)與動態(tài)分類
2.2.4 按應用場景分類
2.3 程序分析方法
2.4 本章小結
第三章 基于LLVM的混淆算法設計研究
3.1 LLVM和 OLLVM
3.1.1 LLVM概述
3.1.2 OLLVM概述
3.1.3 基于LLVM框架的優(yōu)勢
3.2 基于LLVM的字符串混淆算法設計
3.2.1 混淆對象
3.2.2 字符串混淆算法設計
3.2.3 算法流程
3.3 基于LLVM的一種受限的控制流平坦化混淆算法設計
3.3.1 混淆對象
3.3.2 一種實用的控制流混淆算法思路概述
3.3.3 算法流程
3.4 基于LLVM的函數調用隱藏算法設計
3.4.1 混淆對象
3.4.2 函數調用隱藏算法設計
3.4.3 算法流程
3.5 本章小結
第四章 代碼混淆系統(tǒng)設計及代碼混淆有效性評估研究
4.1 代碼混淆原型系統(tǒng)設計
4.1.1 設計目標
4.1.2 混淆系統(tǒng)框架設計
4.2 混淆模塊
4.2.1 字符串混淆模塊
4.2.2 控制流平坦化混淆模塊
4.2.3 函數調用隱藏混淆模塊
4.3 其他模塊
4.4 代碼混淆有效性評估研究
4.4.1 研究概述
4.4.2 代碼混淆有效性評估
4.5 本章小結
第五章 實驗設計與結果分析
5.1 實驗環(huán)境選取
5.2 實驗設計及結果分析
5.2.1 混淆效果展示及分析
5.2.2 功能性測試及結果分析
5.2.3 開銷測試
5.3 本章小結
第六章 總結與展望
6.1 論文工作總結
6.2 后續(xù)研究工作
致謝
參考文獻
攻讀碩士學位期間取得的成果
本文編號:4019981
【文章頁數】:78 頁
【學位級別】:碩士
【文章目錄】:
摘要
abstract
第一章 緒論
1.1 研究背景與意義
1.2 代碼混淆國內外研究現狀
1.3 本文主要研究內容
1.4 本文組織結構
1.5 本章小結
第二章 代碼混淆相關技術研究
2.1 代碼混淆定義
2.1.1 混淆變換
2.1.2 可以實用的混淆變換
2.2 代碼混淆方案分類
2.2.1 Collberg理論分類
2.2.1.1 布局混淆
2.2.1.2 數據混淆
2.2.1.3 控制流混淆
2.2.1.4 預防性混淆
2.2.2 按混淆對象分類
2.2.3 按靜態(tài)與動態(tài)分類
2.2.4 按應用場景分類
2.3 程序分析方法
2.4 本章小結
第三章 基于LLVM的混淆算法設計研究
3.1 LLVM和 OLLVM
3.1.1 LLVM概述
3.1.2 OLLVM概述
3.1.3 基于LLVM框架的優(yōu)勢
3.2 基于LLVM的字符串混淆算法設計
3.2.1 混淆對象
3.2.2 字符串混淆算法設計
3.2.3 算法流程
3.3 基于LLVM的一種受限的控制流平坦化混淆算法設計
3.3.1 混淆對象
3.3.2 一種實用的控制流混淆算法思路概述
3.3.3 算法流程
3.4 基于LLVM的函數調用隱藏算法設計
3.4.1 混淆對象
3.4.2 函數調用隱藏算法設計
3.4.3 算法流程
3.5 本章小結
第四章 代碼混淆系統(tǒng)設計及代碼混淆有效性評估研究
4.1 代碼混淆原型系統(tǒng)設計
4.1.1 設計目標
4.1.2 混淆系統(tǒng)框架設計
4.2 混淆模塊
4.2.1 字符串混淆模塊
4.2.2 控制流平坦化混淆模塊
4.2.3 函數調用隱藏混淆模塊
4.3 其他模塊
4.4 代碼混淆有效性評估研究
4.4.1 研究概述
4.4.2 代碼混淆有效性評估
4.5 本章小結
第五章 實驗設計與結果分析
5.1 實驗環(huán)境選取
5.2 實驗設計及結果分析
5.2.1 混淆效果展示及分析
5.2.2 功能性測試及結果分析
5.2.3 開銷測試
5.3 本章小結
第六章 總結與展望
6.1 論文工作總結
6.2 后續(xù)研究工作
致謝
參考文獻
攻讀碩士學位期間取得的成果
本文編號:4019981
本文鏈接:http://www.sikaile.net/kejilunwen/ruanjiangongchenglunwen/4019981.html