逆向學習是一個動手動腦的過程、在學習的過程中要多動腦、多動手,靈活運用學習的知識。
Java語言基礎
Android程式是用java語言開發的,所以學好Java基礎是非常必要的。
Android基礎
既然是安卓逆向分析,那麼一定學要學習好安卓知識。熟練使用安卓的開發語言如Java、C/C++、kotlin,dart等,同時還要掌握安卓虛擬機器原理執行機制、app打包過程、系統啟動流程、App啟動詳細過程。只有懂得正向過程,才能在逆向分析的時候進行還原分析。
C/C++
在很多公司不再是純粹的Java層開發,更多的會與C++結合,把一些重要的方法和行為以及一些私密性質的東西放在C++中。
ARM組合語言
安卓CPU主要是ARM。
能寫簡單的指令碼和爬蟲
1、工具的使用如apktool,IDA,dex2jar,JEB,Androidkiller,Androguard等。
1)、apktool主要用於逆向apk檔案。
2)、IDA非常好用的互動式反彙編的軟體。
3)、dex2jar用於將dex檔案轉為jar檔案。
4)、JEB安卓動態除錯工具。
5)、Androidkiller 強大的apk反編譯工具,支援修改檢視smail檔案及二次編譯打包。
2、Smali組合語言學習
smali語言是安卓虛擬機器的執行語言,apk編譯後的可執行dex檔案裡面就是smail語言。
3、熟練使用抓包工具進行抓包如burpsuit、Fiddler和Charles。
4、瞭解ARM,熟悉IPC原理,能夠熟練搭建IPC框架。
5、Android 基礎演算法和安全協議--如密碼學、數字簽名、服務端與客戶端通訊協議。
hook技術-xposed框架、frida、ADBI框架
Android NDK--快速開發C、 C++的動態庫,並自動將so和應用一起打包成 APK即可透過 NDK在 Android中 使用 JNI與原生代碼(如C、C++)互動。
JNI--是一種在Java虛擬機器控制下執行程式碼的標準機制。程式碼被編寫成彙編程式或者C/C++程式,並組裝為動態庫。也就允許了非靜態繫結用法。這提供了一個在Java平臺上呼叫C/C++的一種途徑。
Android 加固防護--”知己知彼,百戰百勝“,只有瞭解加殼的過程及原理才能更好進行脫殼,所以要掌握市面上的app加殼技術原理如梆梆加固原理、愛加密加固原理、百度加固DD大法、阿里加固原理、360加固原理等。
Android 脫殼技術--掌握安卓脫殼思路、勤加練習。
逆向學習是一個動手動腦的過程、在學習的過程中要多動腦、多動手,靈活運用學習的知識。
語言基礎知識Java語言基礎
Android程式是用java語言開發的,所以學好Java基礎是非常必要的。
Android基礎
既然是安卓逆向分析,那麼一定學要學習好安卓知識。熟練使用安卓的開發語言如Java、C/C++、kotlin,dart等,同時還要掌握安卓虛擬機器原理執行機制、app打包過程、系統啟動流程、App啟動詳細過程。只有懂得正向過程,才能在逆向分析的時候進行還原分析。
C/C++
在很多公司不再是純粹的Java層開發,更多的會與C++結合,把一些重要的方法和行為以及一些私密性質的東西放在C++中。
ARM組合語言
安卓CPU主要是ARM。
能寫簡單的指令碼和爬蟲
安卓逆向基礎知識1、工具的使用如apktool,IDA,dex2jar,JEB,Androidkiller,Androguard等。
1)、apktool主要用於逆向apk檔案。
2)、IDA非常好用的互動式反彙編的軟體。
3)、dex2jar用於將dex檔案轉為jar檔案。
4)、JEB安卓動態除錯工具。
5)、Androidkiller 強大的apk反編譯工具,支援修改檢視smail檔案及二次編譯打包。
2、Smali組合語言學習
smali語言是安卓虛擬機器的執行語言,apk編譯後的可執行dex檔案裡面就是smail語言。
3、熟練使用抓包工具進行抓包如burpsuit、Fiddler和Charles。
4、瞭解ARM,熟悉IPC原理,能夠熟練搭建IPC框架。
5、Android 基礎演算法和安全協議--如密碼學、數字簽名、服務端與客戶端通訊協議。
安卓逆向進階知識hook技術-xposed框架、frida、ADBI框架
Android NDK--快速開發C、 C++的動態庫,並自動將so和應用一起打包成 APK即可透過 NDK在 Android中 使用 JNI與原生代碼(如C、C++)互動。
JNI--是一種在Java虛擬機器控制下執行程式碼的標準機制。程式碼被編寫成彙編程式或者C/C++程式,並組裝為動態庫。也就允許了非靜態繫結用法。這提供了一個在Java平臺上呼叫C/C++的一種途徑。
Android 加固防護--”知己知彼,百戰百勝“,只有瞭解加殼的過程及原理才能更好進行脫殼,所以要掌握市面上的app加殼技術原理如梆梆加固原理、愛加密加固原理、百度加固DD大法、阿里加固原理、360加固原理等。
Android 脫殼技術--掌握安卓脫殼思路、勤加練習。