自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何開始對Android應(yīng)用的逆向分析?

安全 終端安全
本文是我的關(guān)于如何開始Android逆向系列文章的第一部分。在文末提供了一個(gè)文檔,你可以根據(jù)該文檔說明部署同我一樣的實(shí)驗(yàn)環(huán)境。

本文是我的關(guān)于如何開始Android逆向系列文章的第一部分。在文末提供了一個(gè)文檔,你可以根據(jù)該文檔說明部署同我一樣的實(shí)驗(yàn)環(huán)境。

在了解android應(yīng)用的逆向之前,你必須對android平臺(tái)及其架構(gòu)和android應(yīng)用程序的構(gòu)建塊(組件)已有了一個(gè)較好的理解。如果你并不了解這些,那么我建議你先參閱以下鏈接,然后再繼續(xù)瀏覽本文。

我當(dāng)前的實(shí)驗(yàn)室環(huán)境如下:

  • 主機(jī)系統(tǒng)為windows,其中安裝了virtual box genymotion
  • virtual box 和 genymotion的設(shè)備都處于橋接模式
  • Android 4.4 (kitkat API version 19)
  • 在virtual box中,kali linux也同時(shí)運(yùn)行(與genymotion一起)

注:該設(shè)置并非固定,你可以根據(jù)自身需求環(huán)境進(jìn)行調(diào)整。例如,你也可以使用kali linux作為你的主機(jī)系統(tǒng),并在上面安裝genymotion。

在正式開始我們的逆向之旅前,我想先向大家介紹一下名為adb(android debugger bridge)的工具/服務(wù)器。它可以幫助我們連接,獲取數(shù)據(jù)并將指令傳遞給遠(yuǎn)程Android設(shè)備(調(diào)試模式可以通過設(shè)備設(shè)置中的開發(fā)者模式打開)。當(dāng)前情況下,我們將使用genymotion設(shè)備(虛擬設(shè)備)。

對于安卓應(yīng)用的逆向,這里有一個(gè)非常好的可供我們學(xué)習(xí)和練習(xí)的apk - DIVA ( Damn insecure and vulnerable mobile Application )。這是一個(gè)由Payatu的安全分析師開發(fā)的脆弱安卓應(yīng)用。下面我們也將以該應(yīng)用為例:

首先,讓我們來啟動(dòng)genymotion設(shè)備:

  • 在Windows/Linux中搜索Genymotion應(yīng)用
  • Start genymotion

選中你想要啟動(dòng)的設(shè)備,然后點(diǎn)擊Start按鈕。

如果你以上步驟正確執(zhí)行,則應(yīng)該能看到類似以下的界面:

可以看到Android設(shè)備已經(jīng)啟動(dòng),現(xiàn)在我們來啟動(dòng)虛擬機(jī)中的kali linux。步驟如下:

  • 啟動(dòng)virtual box
  • 從中啟動(dòng)kali虛擬機(jī)

注:這兩個(gè)虛擬機(jī)處于橋接模式。如果有DHCP服務(wù)器,則需要連接到路由器或網(wǎng)絡(luò)。

現(xiàn)在兩臺(tái)機(jī)器都已啟動(dòng),下面讓我們來檢查下kali和Android設(shè)備之間的連接情況。為此,我們需要獲取Android設(shè)備的IP地址。

  • 導(dǎo)航到設(shè)置菜單
  • 單擊WiFi選項(xiàng)
  • 你會(huì)在網(wǎng)絡(luò)中看到WiredSSID
  • 長按“WiredSSID”選項(xiàng)
  • 你會(huì)看到如下所示界面

獲取IP后我們回到kali終端,并鍵入以下命令檢查連接情況:

  1. adb connect 192.168.20.74 

如果命令正確執(zhí)行,你將會(huì)看到以下輸出。

現(xiàn)在讓我們通過執(zhí)行以下命令,來驗(yàn)證設(shè)備是否真正連接:

  1. adb devices 

 

通過確認(rèn)我們得知設(shè)備已連接到IP地址192.168.20.74和5555端口(adb默認(rèn)的連接端口為5555)。

現(xiàn)在,我們就可以在Android設(shè)備上執(zhí)行不同的adb命令了。通過-h選項(xiàng)查看可用參數(shù):

  1. adb -h 

 

在幫助信息中會(huì)為你列出所有可用的參數(shù)選項(xiàng)。下面是一些在逆向中時(shí)常會(huì)用到的命令:

ADB 調(diào)試

  1. adb devices – Lists all the connected devices  
  2. adb forward – used for forwarding socket connections  
  3. adb kill-serve 

無線

  1. adb connect – connects to the remote device 
  2. adb usb – connects to the USB attached device 

包管理器

  1. adb install – install a package adb uninstall – uninstall a package adb shell pm list packages – used for displaying lists of packages installed adb shell pm path – used for displaying package path on device adb shell pm clear 

文件管理器

  1. adb pull – used for pulling / downloading a file adb push – used for pushing / uploading a file adb shell ls – used for displaying list of files and directories in the current directory adb shell cd – used for changing the directory adb shell rm- used for removing a file adb shell mkdir – used for creating a directory adb shell touch – used for creating a file adb shell pwd – used for displaying the current path adb shell cp – used for copying a file adb shell mv – used for moving a file 

網(wǎng)絡(luò)

  1. adb shell netstat – used for displaying the statistics for network connection adb shell ping – used for pinging a host / IP adb shell netcfg adb shell ip 

Logcat

  1. adb logcat adb shell dumpsys adb shell dumpstate 

截圖

  1. adb shell screencap adb shell screenrecord 

系統(tǒng)

  1. adb root adb sideload adb shell ps adb shell top adb shell getprop adb shell setprop 

在了解adb命令后,下面我們來安裝DIVA(Android應(yīng)用程序)。

注:請將該應(yīng)用下載安裝至你的kali機(jī)器上,因?yàn)樗械腶db命令都將從kali中觸發(fā)。

執(zhí)行以下命令安裝該應(yīng)用:

  1. adb install diva-beta.apk 

 

現(xiàn)在,我們已經(jīng)完成了diva-beta.apk的安裝。讓我們來驗(yàn)證下該應(yīng)用是否已在我們的設(shè)備中成功安裝。

可以看到應(yīng)用程序已被正確安裝,并可在設(shè)備的菜單中使用。

讓我們通過單擊該應(yīng)用程的圖標(biāo)來啟動(dòng)它。你將看到如下啟動(dòng)界面:

當(dāng)前,DIVA為我們準(zhǔn)備了以下挑戰(zhàn):

不安全的日志記錄 硬編碼問題 – 第1部分 不安全的數(shù)據(jù)存儲(chǔ) – 第1部分 不安全的數(shù)據(jù)存儲(chǔ) – 第2部分 不安全的數(shù)據(jù)存儲(chǔ) – 第3部分 不安全的數(shù)據(jù)存儲(chǔ) – 第4部分 輸入驗(yàn)證問題 – 第1部分 輸入驗(yàn)證問題 – 第2部分 訪問控制問題 – 第1部分 訪問控制問題 – 第2部分 訪問控制問題 – 第3部分 硬編碼問題 – 第2部分 輸入驗(yàn)證問題 – 第3部分

我們將逐一解決上述挑戰(zhàn),讓你了解Android應(yīng)用中的不同漏洞。對于第一項(xiàng)挑戰(zhàn),即不安全日志記錄,我們可以通過adb命令來檢查diva應(yīng)用的日志記錄。命令如下:

  1. adb logcat 

如果命令正確執(zhí)行,你將會(huì)看到如下所示內(nèi)容:

可以看到這里的日志記錄非常的雜亂,因?yàn)樗@示了許多不同的日志記錄數(shù)據(jù)(整個(gè)設(shè)備)。為了讓我們看起來更加清晰,我將使用grep命令。但在此之前,我們需要首先獲取該應(yīng)用程序包的進(jìn)程ID。命令如下:

  1. adb shell ps | grep diva 

如果命令正確執(zhí)行,你將會(huì)看到如下所示內(nèi)容:

adb shell是用于通過adb發(fā)送任何shell指令的命令;ps作為shell指令發(fā)送,ps的輸出提供給grep命令。Grep是一個(gè)非常棒的用于搜索相關(guān)字符串的工具,在本例中我們搜索的字符串為“diva”。

從輸出結(jié)果中我們得知,diva的pid為1654,包名稱為“jakhar.aseem.diva”

現(xiàn)在,讓我們以組合的形式使用logcat和grep命令:

  1. adb logcat | grep 1654 

你將看到與該特定進(jìn)程(即diva)相關(guān)的所有日志。

實(shí)驗(yàn)環(huán)境設(shè)置文檔

責(zé)任編輯:趙寧寧 來源: FreeBuf
相關(guān)推薦

2015-01-09 16:32:25

2020-09-21 09:58:01

Frida

2012-05-18 09:54:05

2010-02-06 13:28:31

Android源碼

2022-10-20 10:37:44

2022-02-21 09:00:00

云原生應(yīng)用開發(fā)

2015-08-04 17:45:54

Docker應(yīng)用

2010-09-30 09:40:45

2016-08-23 09:21:33

SDR+inspect無線信號(hào)

2010-03-02 11:12:33

Android應(yīng)用開發(fā)

2015-08-21 17:52:52

逆向分析BinNavi

2011-05-07 13:08:11

亞馬遜應(yīng)用商店Android MarAT&T

2015-07-28 11:02:15

androidapp開發(fā)

2015-08-24 11:03:14

android建項(xiàng)目

2010-03-03 16:14:56

Android系統(tǒng)市場

2024-08-06 09:54:20

2010-01-27 18:19:13

Android畫圖

2021-04-18 10:24:35

WhatsAppAndroid惡意軟件

2023-09-11 08:40:34

AOTVMP代碼

2018-01-18 22:09:06

數(shù)據(jù)分析數(shù)據(jù)處理企業(yè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)