Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86380417

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

眾多開發者認為SO文件相對而言更加安全,並將許多核心算法、加密解密方法、協議等放在SO文件中。但是,黑客可以通過反編譯SO庫文件,竊取開發者花費大量人力物力財力的研發成果,進行創意竊取或二次打包,使得開發者和用戶利益受損。

image.png

作為知名移動信息安全綜合服務提供商,愛加密在SO加固方面擁有3大技術優勢。

一、愛加密so VMP技術,對so文件的源碼進行虛擬化保護,實現數據隱藏、防篡改、防Dump,增加逆向分析的難度。

二、愛加密so Linker技術,對so文件代碼段、導出表和字符串等進行加密壓縮,在函數運行時動態解密,防止so文件被靜態分析,通過內存DUMP源碼。

三、多重保護:多種so加固技術可以聯合使用,增大了代碼反彙編調試破解難度,提高so文件的安全性。愛加密可對Android及Linux 進行so加固,本次僅講述Android SO加固方面的6大核心技術,即so加殼、so源碼混淆、so源碼虛擬化保護、so防調用、so Linker、so融合。

so加殼利用自定義加密算法對C/C++源碼編譯出來的so文件進行加殼,將so文件的編碼進行改變,使加殼後的so文件無法通過ida反編譯工具查看導出符號,使so文件無法正確反編譯和反彙編。加固後效果如圖:

image.png

so源碼混淆愛加密通過對so文件的源碼進行混淆,降低黑客反編譯的可讀性,增加反編譯難度。可多種混淆方式聯用,可根據自己的實際需求選擇混淆強度,包含字符串加密、等效指令替換、基本塊調度、基本塊分裂、虛假控制流、控制流扁平化、控制流間接化,本次篇幅有限僅介紹前四種技術手段。

字符串加密:程序當中的字符串,往往會曝露一些關鍵的信息。如圖中所示字符串,表明此部分為用戶登錄的代碼。黑客分析之後,可攻擊用戶登錄頁面,獲取用戶賬號密碼等信息。

image.png

愛加密將對源代碼進行語法分析以及邏輯分析,解析出代碼中字符串的位置,採用隨機加密、運行時動態解密的方式對字符串進行混淆以及加密,增大表態分析難度,使破解者無法使用它來快速定位程序核心代碼的位置。

等效指令替換:對C/C++代碼中的函數所對應的原始代碼塊指令進行等效轉換,利用程序代碼的多樣性,增加破解者分析難度,有效的保護核心算法的原始邏輯。

image.png

本塊調度與分裂:基本塊指程序中一段按照順序執行的語句序列,只有一個出口一個入口。控制流只能從基本塊的第一條指令進入,最後一條指令離開。基本塊調度是將C/C++代碼中函數的所有基本塊交由調度塊進行分發,使其在反編譯工具中無法逆向出真實的代碼,有效保護源代碼,增加破解者分析代碼的難度。基本塊分裂方面可將一個基本塊隨機分裂成多個基本塊,使控制流更複雜。

image.png

so源碼虛擬化保護對SDK中so文件的源碼進行虛擬化保護,實現數據隱藏、防篡改、防Dump,增加逆向分析的難度。 so文件中經過虛擬化保護後的函數,其原有指令已被清空,而真正的代碼已經被編譯成了虛擬機字節碼隱藏起來。

image.png

so防調用so防調用可以支持綁定授權APP的包名或者簽名文件信息,可以在運行過程中對包名或者簽名信息進行動態的校驗,確保是正確的授權應用。

so Linker愛加密so Linker安全加固對整個so文件進行加密壓縮,包括代碼段、導出表和字符串等,運行時再解密解壓縮到內存,從而有效的防止so數據的洩露。使用so Linker,隱藏so的基地址,有效的防止so被DUMP。使用函數運行時動態加解密技術(FRAEP),在運行前進行解密,運行結束後進行加密,從而保證了so即使被DUMP,也無法反彙編出源碼(so函數指令不運行時,在內存中處於加密狀態)。 so Linker代碼使用愛加密自有的so VMP技術保護,大大增強了反調試代碼被跟踪的難度。

so Linker安全加固在技術方面擁有5大優勢:

1.對so進行了整體加密壓縮,對整個so進行了有效保護,包括代碼段、符號表和字符串等。 2.使用了函數運行時動態加解密技術(FRAEP),內存中so即使被DUMP,處於加密狀態的函數也無法被反彙編。

3.用so Linker方案後,so的基地址被隱藏,無法通過maps文件查看,提高了被DUMP難度。

4.使用了高強度的反調試技術,增大了被DUMP和被調試的難度。

5.so Linker代碼由愛加密VMP 技術保護,加大了代碼反彙編調試破解難度,效果如下圖:

image.png

so融合該技術對SO進行了整體加密壓縮,相對於傳統的加殼技術,有效的對整個SO進行了保護,包括代碼段、符號表和字符串等。 SO 融合代碼由愛加密VMP保護,加大了代碼反彙編調試破解難度。用SO 融合方案後,SO文件及SO的基地址也被隱藏,無法通過maps文件查看,且使用了更高強度的反調試技術,增強了被dump和被調試的難度。

image.png

愛加密移動應用安全加固平台為開發者提供全面的移動應用安全加固技術,不僅可進行SO文件加固,更包括Android應用加固、iOS應用加固、遊戲應用加固、H5文件加固、微信小程序加固、SDK加固和源對源混淆加固技術,從根本上解決移動應用的安全缺陷和風險,使加固後的移動應用具備防逆向分析、防二次打包、防動態調試、防進程注入、防數據篡改等安全保護能力,本文介紹的僅為愛加密移動應用安全加固平台中Android SO加固技術。

image.png

愛加密作為國內知名的移動信息安全綜合服務提供商,通過不斷探索與實踐,已覆蓋政企、運營商、金融、醫療、教育、能源等多個行業的安全業務場景。並參與了中央網信辦、工信部、公安部、市場監督管理總局等國家監管單位制定移動應用、移動支付相關的標準規範;未來將繼續憑藉自身技術優勢、業務資質優勢、產品方案優勢等,守護互聯世界。