前言
Android逆向是一個各方面能力的應用。它需要逆向人員需要有一定的Android開發能力,能理解Android程序的結構和運行流程,並熟悉Android的API。
開發語言需要了解Java、C++,這兩門語言逆向出來的對應的語言是Smali和Arm,這是一種挑戰,也是它的樂趣所在。
Android簡介
Android應用程序採用Java語言開發,當然最近幾年Google也開始推Kotlin語言。傳統的Java語言運行是通過JVM將源語言編譯成Java字節碼運行的,但是Android雖是Java開發,但字節碼並不是最終的運行格式,並且由於版本和移動設備電量問題,Google自己開發了一個虛擬機來運行Android程序,這個虛擬機稱爲Dalvik
。
Android程序開發完成後,首先將Java編譯成字節碼,然後通過DX工具,將字節碼轉換成.dex
文件,最後.dex
格式的文件在Dalvik
虛擬機中運行。
常用工具
https://www.androiddevtools.cn/ 這個網址有很多的Android開發和逆向工具可供下載使用。
在網盤的/Secure/Android/Tools目錄下收集放置了一些工具
Android Studio
作爲Google官方提供的Android開發利器,Android Studio比Eclipse有着明顯的優勢,同時它也是動態調試Android的神器。目前,Android Studio可以在國內下載,各版本地址是:https://developer.android.google.cn/studio/archive.html
Android Killer
Android逆向的神器,這篇文章有具體的介紹,也有一些採坑和優化方案:https://www.52pojie.cn/thread-726176-1-1.html
Android逆向助手
集Apk反編譯、Apk打包、Apk簽名,編碼互轉,ADB通信(應用安裝-卸載-運行-設備文件管理)等特色功能於一身,支持logcat日誌輸出,語法高亮,基於關鍵字(支持單行代碼或多行代碼段)項目內搜索,可自定義外部工具;吸收融匯多種工具功能與特點,打造一站 式逆向工具操作體驗,大大簡化了用戶在安卓應用/遊戲修改過程中的各類繁瑣工作。
windows系統上的逆向工具套裝
版本必須下對了,不要問爲什麼。參考地址:https://www.52pojie.cn/thread-844248-1-1.html
工具名稱 | 版本號 | 下載地址 |
---|---|---|
JDK | 1.7 | http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html |
Android Studio | 2.2.3 | http://www.android-studio.org/index.php/download/hisversion 直達:https://dl.google.com/dl/android/studio/install/2.2.3.0/android-studio-bundle-145.3537739-windows.exe |
SDK | 25.2.2 | https://pan.baidu.com/s/1dEEoALN |
AndroidKiller | 1.3.1 | https://down.52pojie.cn/Tools/Android_Tools/AndroidKiller_v1.3.1.zip |
ApkTool | 2.3.4 | https://ibotpeaches.github.io/Apktool/install/ 直達:https://bitbucket.org/iBotPeaches/apktool/downloads/ |
rtl230.bpl | 大牛提供 | https://www.52pojie.cn/thread-658341-1-1.html |
雷電模擬器 | 大牛推薦 | http://www.ldmnq.com/ |
新手接觸逆向時,很容易在反編譯和回編譯時出現各種各樣的錯誤,導致流程走不下去,非常打擊信心。有一套穩定可用的逆向工具,可以節省很多的摸索時間,直接學習和練習最核心的東西。