360團隊封神之作《安卓逆向與安全防護學習手冊》,首次開源分享,下載量破10W+!
隨著移動網際網路的興起,“APP”成了99%的網際網路企業主要運營的產品,知名的例如“支付寶”、“美團”、“滴滴”、“抖音”等。使用者基數的不斷變大,安全性也經歷著巨大的挑戰。
app越來越多,也離不開我們的生活,而安卓逆向也是近幾年才興起的一個行業,市場飽和度不高,發展前景廣闊。
隨著app的增加安全是一個很大問題,想要解決安全問題就得用到逆向知識,由此逆向崗位會隨著app得的增加會越來越多。
就我自己從事安卓逆向這幾年的經驗來說,對沒有程式設計基礎的朋友如何學習安卓逆向最好制定以下學習路線:
一. 安卓逆向基礎(建議1周)
-
學習安卓逆向第一步必須先把環境搭建好,這是你學習安卓逆向的開始,環境搭建好後表示正式邁入安卓逆向。在環境安裝的工程中會遇到很多細節上的問題,針對這些坑可以去看看使用教程,或者看看網課老師的教程操作都可以。
-
第二步就是要了解我們要分析的是什麼檔案,很多0基礎的都不知道安卓逆向分析的什麼檔案。我們要分析的是應用程式或者安裝包(就是.apk檔案),瞭解apk是怎麼生成的以及如何安裝到我們的手機裡面,apk是怎麼執行的,也是我們探討的內容。
-
第三步如何逆向分析.apk檔案,掌握apk反編譯及回編譯,完成這個操作使用的工具是apktool。
二. Java層逆向(建議3周)
-
掌握Java語法基礎,達到能看懂Java程式碼。
-
瞭解smali語法,能看懂smali程式碼。
-
掌握逆向分析apk中常用的方法和技巧。
三. Native層逆向(建議4周)
-
瞭解安卓作業系統和四大元件。
-
瞭解NDK開發流程,自己編寫案例練習。
-
掌握常用ARM彙編指令,達到能看懂ARM彙編指令。
-
掌握IDA工具的使用,熟練使用IDA進行各種操作。
四. APK保護策略(建議1周)
-
瞭解Java程式碼混淆、資源混淆。
-
掌握簽名驗證、檔案校驗、模擬器檢測。
-
本地驗證、網路驗證。
-
案例練習。
五. 反除錯與反-反除錯(建議1周)
-
掌握常用反除錯方法及過反除錯技巧,比如關鍵檔案檢測、除錯埠檢測、程序名稱檢測、防附加、輪訓檢測TracerPid值、時間檢測、訊號檢測等反除錯。
-
掌握IDA過反除錯思路。
-
案例練習。
六. HOOK框架(建議2周)
-
掌握HOOK外掛開發。
-
掌握Xposed、Substrate、Fridad等框架。
-
案例練習。
七. 常見加密演算法(建議2周)
-
掌握編碼演算法、訊息摘要演算法、對稱加密演算法(Java加密與解密的藝術)。
-
掌握非對稱加密演算法、數字簽名演算法。
八. 協議加解密分析(建議4周)
-
瞭解客戶端與伺服器如何進行互動的(OSI模型、TCP/IP模型)。
-
掌握常用的抓包工具及環境配置,HTTP協議與HTTPS安全協議,數字證書、SSL證書檢測(計算機網路與通訊、資訊保安工程師)。
-
案例練習。
九. 檔案結構(建議2周)
-
掌握DEX、ELF、XML、ARSC等檔案結構。
-
自編寫檔案解析工具。
十. 系統原始碼分析(建議2周)
-
瞭解安卓作業系統啟動流程、Zygote啟動流程。
-
掌握Dalvik虛擬機器、ART虛擬機器、SO載入流程。
十一. 加固與脫殼(建議4周)
-
瞭解Dex檔案整體加密、Dex程式碼抽取加密。
-
瞭解SO檔案整體加密、函式加密、區段加密、加殼、混淆。
-
分析通用脫殼機的實現原理及應用場景。
-
瞭解主流加固特點及對應的脫殼技巧。
十二. 學習方法
-
看一遍教程後自己實戰操作,養成做筆記的習慣。
-
注重基礎,一定要把Java層和Native層搞懂。
-
學習中不要糾結細節,要學會抓大放小。
-
學完後自己畫腦圖,回顧學習的過程中那些不理解在花時間去看,此過程就是查漏補缺。
最後,如果大家對安卓逆向的學習感興趣而又缺少學習資料,我最近正好薅到一份360團隊成員分享在GitHub,標星7.5k的《安卓App逆向與安全防護學習手冊》,通俗易懂,例項豐富,既有基礎知識,也有操作技能,能夠幫助讀者快速入門進階。
第一章 基礎篇
-
Android中鎖屏密碼加密演算法分析
-
Android 中NDK開發
-
Android中開發與逆向常用命令總結
-
so檔案格式解析
-
AndroidManifest.xml檔案格式解析
-
resource . arsc檔案格式解析
-
dex檔案格式解析
第二章 防護篇
-
Android應用安全防護的基本策略
-
Android中常用許可權分析
-
Android中的run-as命令
-
Android中的allowBackup屬性
-
Android中的簽名機制
-
Android應用加固原理
-
Android中的so加固原理
第三章 工具篇
-
Android逆向分析基礎
-
反編譯神器apktool和Jadx
-
Hook神器Xposed
-
脫殼神器ZjDroid
-
Native層Hook神器Cydia Substrate
第四章 操作篇
-
靜態方式逆向應用
-
動態除錯smali原始碼
-
IDA工具除錯so原始碼
-
逆向加固應用軟體技術分析
-
逆向應用經典案例分析
-
Android中常見漏洞分析
-
檔案加密病毒Wannacry樣本分析