Android ***測試學習手冊(二)準備實驗環境

在上一章中,我們瞭解了 Android 安全性及其體系結構的基礎知識。 在本章中,我們將瞭解如何建立 Android ***測試實驗環境,其中包括下載和配置 Android SDK 和 Eclipse。 我們將深入瞭解 ADB,並瞭解如何創建和配置 Android 虛擬設備( AVD) 。

2.1 建 立 開 發 環 境

爲了構建 Android 應用程序或創建 Android 虛擬設備,我們需要配置開發環境,以便運行這些應用程序。 因此,我們需要做的第一件事是下載 Java 開發工具包(JDK),其中包括Java 運行時環境( JRE) :

1. 爲了下載 JDK,我們需要訪問 Java SE | Oracle Technology Network | Oracle/downloads/index.html ,並根據我們所在的平臺下載 JDK 7。

就像下載它並運行下載的可執行文件一樣簡單。 在以下屏幕截圖中,你可以看到我的系統上安裝了 Java:


2. 一旦我們下載並安裝了 JDK,我們需要在我們的系統上設置環境變量,以便可以從任何路徑執行 Java。

對於 Windows 用戶,我們需要右鍵單擊 My Computer( 我的電腦) 圖標,然後選擇 Properties( 屬性) 選項。

3. 接下來,我們需要從頂部選項卡列表中選擇 Advanced system settings ( 高級系統設置)選項:


4. 一旦我們進入了 System Properties ( 系統屬性) 對話框,在右下角,我們可以看到 Environment Variables... ( 環境變量) 選項。 當我們點擊它,我們可以看到另一個窗口,包含系統變量及其值,在 System variables ( 系統變量) 部分下:


5. 在新的彈出對話框中,我們需要單擊 Variables ( 變量) 下的 PATH 文本框,並鍵入Java 安裝文件夾的路徑:


對於 Mac OS X,我們需要編輯 /.bash_profile 文件,並將 Java 的路徑追加到 PATH 變量。

在 Linux 機器中,我們需要編輯 ./bashrc 文件並附加環境變量行。 這裏是命令:

$ nano ~/.bashrc

$ export JAVA_HOME=`/usr/libexec/java_home -v 1.6` or export JAVA_HOME=`/usr/libex

ec/java_home -v 1.7`


你還可以通過從終端運行以下命令來檢查 Java 是否已正確安裝和配置:

$ java --version


6. 一旦我們下載並配置了 Java 的環境變量,我們需要執行的下一步是下載 developer.android.com/s 中提供的 Android ADT 包。

ADT 包是由 Android 團隊準備的一個完整的包,包括配置了 ADT 插件,Android SDK 工具,Android 平臺工具,最新的 Android 平臺和模擬器的 Android 系統映像的 Eclipse。

這大大簡化了早期下載和使用 Android SDK 配置 Eclipse 的整個過程,因爲現在的一切都已預先配置好了。

7. 一旦我們下載了 ADT 包,我們可以解壓它,並打開 Eclipse 文件夾。

8. 啓動時,ADT 包將要求我們配置 Eclipse 的工作區。 workspace ( 工作空間) 是所有Android 應用程序開發項目及其文件將被存儲的位置。在這種情況下,我已將所有內容保留默認,並選中 Use this as the default and do not ask me again ( 使用此爲默認值,不再詢問我) 複選框:



9. 一旦完全啓動,我們可以繼續創建 Android 虛擬設備。 Android 虛擬設備是配置用於特定版本的 Android 的模擬器配置。 模擬器是與 Android SDK 軟件包一起提供的虛擬設備,通過它,開發人員可以運行正常設備的應用程序,並與他們在實際設備上進行交互。 這對於沒有 Android 設備但仍然想創建 Android 應用程序的開發者也很有用。

注 

這裏要注意的一個有趣的特性是,在 Android 中,模擬器運行在 ARM 上,模擬的所有的事情與真實設備完全相同。 然而,在 iOS 中,我們的模擬器只是模擬環境,並不擁有所有相同組件和平臺。

2.2 創 建 Android 虛 擬 設 備


爲了創建 Android 虛擬設備,我們需要執行以下操作:

1. 訪問 Eclipse 的頂部欄,然後點擊 Android 圖標旁邊的設備圖標。 這將打開一個新的 Android Virtual Device Manager ( Android 虛擬設備管理器) 窗口,其中包含所有虛擬設備的列表。 這是一個很好的選擇,通過點擊 New ( 新建) 按鈕,創建一個新的虛擬設備。

2. 我們還可以通過從終端運行 android 命令並訪問工具,然後管理 AVD 來啓動 Android 虛擬設備。 或者,我們可以簡單指定 AVD 名稱,並使用模擬器 -avd [avd-name] 命令來啓動特定的虛擬設備。

這會打開一個新窗口,其中包含需要爲 Android 虛擬設備配置的所有屬性( 尚未創建) 。 我們將配置所有選項,如下面的截圖所示:


3. 一旦我們點擊 OK 並返回到 AVD 管理器窗口,我們將看到我們新創建的 AVD。

4. 現在,只需選擇新的 AVD,然後單擊 Start... ( 開始) 來啓動我們創建的虛擬設備。它可能需要很長時間,來爲你的第一次使用加載,因爲它正在配置所有的硬件和軟件配置,來給我們真正的電話般的體驗。

5. 在以前的配置中,爲了節省虛擬設備的啓動時間,選中 Snapshot 複選框也是一個不錯的選擇。

6. 一旦設備加載,我們現在可以訪問我們的命令提示符,並使用 android 命令檢查設備配置。 此二進制文件位於安裝中的 /sdk/tools 文件夾下的 adt-bundle 文件夾中。

7. 我們還要設置位於 sdk 文件夾中的 tools 和 platform-tools 文件夾的位置,就像我們之前使用環境變量一樣。

8. 爲了獲取我們系統中已連接( 或加載) 的設備的詳細配置信息,可以運行以下命令:

android list avd


我們在下面的屏幕截圖中可以看到,上面的命令的輸出顯示了我們系統中所有現有 Android 虛擬設備的列表:


9. 我們現在將繼續,使用 ADB 或 Android Debug Bridge 開始使用設備,我們在上一章中已經看到。 我們還可以通過在終端中執行 emulator -avd [avdname] 命令來運行模擬器。

2.3 滲 透 測 試 實 用 工 具


現在,讓我們詳細瞭解一些有用的 Android ***測試實用工具,如 Android Debug Bridge,Burp Suite 和 APKTool。

Android Debug Bridge

Android Debug Bridge 是一個客戶端 - 服務器程序,允許用戶與模擬器器或連接的 Android設備交互。 它包括客戶端( 在系統上運行) ,處理通信的服務器( 也在系統上運行) 以及作爲後臺進程在模擬器和設備上上運行的守護程序。 客戶端用於 ADB 通信的默認端口始終是5037,設備使用從 5555 到 5585 的端口。

讓我們繼續,通過運行 adb devices 命令開始與啓動的模擬器交互。 它將顯示模擬器已啓動並運行以及連接到 ADB:

C:\Users\adi0x90\Downloads\adt-bundle\sdk\platform-tools>adb devices

List of devices attached 

emulator-5554 device


在某些情況下,即使模擬器正在運行或設備已連接,你也不會在輸出中看到設備。 在這些情況下,我們需要重新啓動 ADB 服務器,殺死服務器,然後再次啓動它:

C:\Users\adi0x90\Downloads\adt-bundle\sdk\platform-tools>adb kill-server

C:\Users\adi0x90\Downloads\adt-bundle\sdk\platform-tools>adb start-server

* daemon not running. starting it now on port 5037 *

* daemon started successfully *


我們還可以使用 pm ( 包管理器) 工具獲取所有已安裝的軟件包的列表,這可以在 ADB 中使用:

adb shell pm list packages


如下面的屏幕截圖所示,我們將獲得設備上安裝的所有軟件包的列表,這在以後的階段可能會有用:


此外,我們可以使用 dumpsys meminfo 然後是 adb shell 命令,獲取所有應用程序及其當前內存佔用的列表


我們還可以獲取 logcat ( 這是一個讀取 Android 設備事件日誌的工具) ,並將其保存到特定文件,而不是在終端上打印:

adb logcat -d -f /data/local/logcats.log


此處的 -d 標誌指定轉儲完整日誌文件的並退出, -f 標誌指定寫入文件而不是在終端上打印。 這裏我們使用 /data/local 位置,而不是任何其他位置,因爲這個位置在大多數設備中是可寫的。

我們還可以使用 df 命令檢查文件系統以及可用空間和大小:


在 Android SDK 中還有另一個很棒的工具,稱爲 MonkeyRunner。 此工具用於自動化和測試 Android 應用程序,甚至與應用程序交互。 例如,爲了使用 10 個自動化觸摸,敲擊和事件來測試應用程序,我們可以在 adb shell中使用 monkey 10 命令:

root@generic:/ # monkey 10

monkey 10

Events injected: 10

## Network stats: elapsed time=9043ms (0ms mobile, 0ms wifi, 9043ms not connected)


這些是一些有用的工具和命令,我們可以在 ADB 中使用它們。 我們現在將繼續下載一些我們將來使用的其他工具。

Burp Suite

我們將在接下來的章節中使用的最重要的工具之一是 Burp 代理。 我們將使用它來攔截和分析網絡流量。 應用程序中的許多安全漏洞可以通過攔截流量數據來評估和發現。 在以下步驟中執行此操作:

1. 我們現在從官方網站 Burp Suite editions and features 下載 burp 代理。 下載並安裝後,你需要打開 Burp 窗口,它如以下屏幕截圖所示。 你還可以使用以下命令安裝 Burp:

java –jar burp-suite.jar


我們在下面的截圖中可以看到,我們運行了 Burp 並顯示了默認界面:


2. 在 Burp Suite 工具中,我們需要通過單擊 Proxy ( 代理) 選項卡並訪問 Options ( 選項) 選項卡來配置代理設置。

3. 在 Options 選項卡中,我們可以看到默認選項被選中,這是 127.0.0.1:8080 。 這意味着從我們的系統端口 8080 發送的所有流量將由 Burp Suite 攔截並且在它的窗口顯示。

4. 我們還需要通過選擇默認代理 127.0.0.1:8080 並單擊 Edit ( 編輯) 來檢查隱藏的代理選項。

5. 接下來,我們需要訪問 Request handling ( 請求處理) 選項卡,並中 Support invisible proxying (enable only if needed) ( 支持不可見代理( 僅在需要時啓用) ) 複選框:


6. 最後,我們使用 invisible 選項運行代理:



7. 一旦設置了代理,我們將啓動我們的模擬器與我們剛剛設置的代理。 我們將使用以下模擬器命令來使用 http-proxy 選項:

emulator -avd [name of the avd] -http-proxy 127.0.0.1:8080


我們可以在下面的截圖中看到命令如何使用:


因此,我們已經配置了 Burp 代理和模擬器,導致所有的模擬器流量現在會通過Burp。 在這裏,你在訪問使用 SSL 的網站時可能會遇到問題,我們將在後面的章節中涉及這些問題。

APKTool

Android 逆向工程中最重要的工具之一是 APKTool。 它爲逆向第三方和封閉的二進制 Android 應用程序而設計。 這個工具將是我們在未來章節中的逆向主題和惡意軟件分析的重點之一。

爲了開始使用 APKTool,請執行以下步驟:

1. 爲了下載 APKTool,我們需要訪問 code.google.com/p/andro 。

在這裏,我們需要下載兩個文件: apktool1.5.3.tar.bz2 ,其中包含 apktool 主二進制文件,另一個文件取決於平臺 - 無論是 Windows,Mac OS X 還是 Linux。

2. 一旦下載和配置完成,出於便利,我們還需要將 APKTool 添加到我們的環境變量。 此外,最好將 APKTool 設置爲環境變量,或者首先將其安裝在 /usr/bin 中。 然後我們可以從我們的終端運行 APKTool,像下面的截圖這樣:



總 結

在本章中,我們使用 Android SDK,ADB,APKTool 和 Burp Suite 建立了 Android ***測試環境。 這些是 Android ***測試者應該熟悉的最重要的工具。

在下一章中,我們將學習如何逆向和審計 Android 應用程序。 我們還將使用一些工具,如 APKTool,dex2jar,jd-gui 和一些我們自己的命令行必殺技。

轉自:

https://zhuanlan.zhihu.com/p/25375962

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章