文章插圖

文章插圖
為了更好地了解編程中混淆的工作原理 , 以下是蠻犀安全整理的世界各地開發人員使用的一些最常見的混淆安全技術 。
七種常見的源代碼混淆技術
1.數據轉換
源代碼混淆的一個重要元素是將程序處理的數據轉換為另一種形式 , 這對代碼的性能影響最小 , 但使黑客更難以分解或逆向工程 。
如何以這種方式混淆代碼的示例包括使用數字的二進制形式使源代碼更復雜 , 更改存儲數據的形式或用表達式替換值 。
2.代碼流混淆
通過改變代碼的控制流程 , 改變了代碼的方向 。這意味著盡管最終結果是相同的 , 但要弄清楚代碼為什么朝著某個方向或前進的方向要花費更多的時間 。
可以通過更改程序執行語句的順序 , 通過插入任意跳轉指令來更改控制圖以及將樹狀條件構造轉換為平面切換語句來執行編程中的控制流混淆 。
某些源代碼混淆安全工具使用的這項技術會更改程序數據和代碼的地址 , 從而導致不可預測性并使其難以利用 。構建應用程序時 , 混淆算法會將內存中某些代碼和數據的絕對位置以及不同數據項之間的相對距離隨機化 。這不僅減少了成功攻擊的可能性 , 還意味著即使黑客在一個應用程序或設備上成功 , 他們也將無法在其他應用程序或設備上復制它 , 從而降低了對程序進行反向工程的好處 。
4.混淆代碼的定期更新
該技術通過定期發布經過混淆的軟件的更新來主動防止攻擊 , 從而阻止了黑客破解系統的企圖 。通過偶爾用新混淆的實例替換現有軟件 , 攻擊者被迫放棄其現有分析 。最后 , 突破混淆安全性的努力超過了所獲得的價值 。
5. Objective-C消息調用和元數據混淆
源代碼混淆工具(例如蠻犀安全的應用程序屏蔽解決方案)以兩種方式混淆Objective-C代碼 。首先 , 它們混淆了源代碼中包含的純文本消息調用 , 以確保它們不易于閱讀和編輯 。其次 , 它們對一些Objective-C元數據進行加密 , 以從靜態分析工具中隱藏敏感信息 , 例如類別 , 類 , 方法 , 協議 , 類屬性和實例變量的名稱 , 以及方法參數及其類型 。僅在加載混淆的應用程序時 , 才在運行時解密加密的數據 。
【前端代碼混淆壓縮 js代碼混淆原理】轉換和更改匯編代碼會使反向工程更加困難 。一種這樣的方法是使用重疊的匯編指令(也稱為“中間跳躍”方法) , 這些指令將代碼隱藏在其他代碼中 , 從而導致反匯編程序產生不正確的輸出 。還可以通過包含不必要的控制語句和垃圾代碼來增強匯編代碼 , 以防止滲透 。
7.混淆調試信息
調試信息可用于對程序進行逆向工程 , 以通過反編譯和重新編譯程序的代碼來發現其源代碼 。因此 , 阻止未經授權的訪問和調試很重要 。源代碼混淆工具通過更改調試數據中的行號和文件名或完全刪除調試信息來實現此目的 。
- 安卓短信發送 安卓讀取短信代碼
- matlab求最大值最小值 matlab求函數最大值代碼
- 怎么自己編寫游戲代碼 自己做游戲代碼
- C語言代碼示例 c++代碼示例
- 遺傳算法經典實例matlab代碼 遺傳算法matlab程序案例詳解
- mybatisplus 代碼生成 mybatisplus自動生成
- c盤清理垃圾代碼 電腦c盤清理垃圾
- 簡單的表白代碼vbs
- python正則表達式應用舉例 正則表達式測試工具代碼
- 決策樹分類算法代碼 決策樹CSDN
