二 小試牛刀 APK檔案分析

2021-10-01 07:24:40 字數 1787 閱讀 2865

1、analyzeapk(filename)載入檔案開始分析

$ androguard analyze

androguard version 3.1.1 started

# depending on the size of the apk, this might take a while...

in [2]:

1) a 表示apk物件,通過apk物件,我們獲取到apk包的資訊。比如,包名、許可權、androidmanifest.xml、resources

2) d 表示dalvikvmformat物件陣列。dalvikvmformat對應apk檔案中的dex檔案,從dex檔案中我們可以獲取類、方法和字串

3)dx 表示analysis物件,包含特殊的類,這些類鏈結了關於classes.dex的資訊,甚至可以一次處理許多dex檔案

(dex檔案:dalvik位元組碼檔案,是一種能夠被dalvik虛擬機器(dvm:dalvik virtual machine)或者art虛擬機器執行並且載入的檔案格式。)

注:dex 與 class

2、根據返回物件獲取apk資訊

a> apk 物件

1)a.get_permissions()    //apk 許可權獲取

2)a.get_activities() //獲取定義在androidmanifest.xml中的活動列表

3)a.get_package() //獲取包名

5)a.get_androidversion_code() //numeric version

6)a.get_androidversion_name() //字串version

//the minimal, maximal, target and effective sdk version

7)a.get_min_sdk_version()

8)a.get_max_sdk_version()

9)a.get_target_sdk_version()

10)a.get_effective_target_sdk_version()

11) a.get_android_manifest_axml().get_xml()

12) a.get_android_manifest_xml() 的 elementtree 物件

b>analysis物件analysisobject 包含在dex檔案中classes, methods, fields and strings中的所有資訊,同時還可以獲取graphs和 crossreferences (xrefs) 為每乙個 method, class, field和 string.(可以研究特定api呼叫的應用程式或者建立圖形來檢視不同類的依賴關係)

1)analysis.classanalysis    //返回a list of classanalysis objects

注:有些版本返回的是dict_value 型別,通過下標訪問時需通過list()強轉

2)dx.get_classes()[2].get_vm_class() //classanalysis不包含實際的**,但classdefitem可以使用get_vm_class()來載入

//如果類是external, 則返回a externalclass.

boost graph lib 小試牛刀

最近要做社會網路的社群發現,發現用bgl能減少不少 量。經過一番調研發現bgl封裝的很牛叉,dijkstra等演算法統統具備,奈何自己對泛型程式設計不太熟,遇到問題還是很糾結。primer泛型程式設計 演算法部分和stl原始碼分析接下來有時間一定要讀下。下面僅以鄰接鍊錶和自定義節點為例 typede...

Anti Debug 小試牛刀

本文整理了日常生活中遇到的一些anti debug技術,除非特殊說明,均適用於mac ios開發 作為第一篇正式博文,會不定期更新,謝謝大家.123 4567 89 define pt deny attach 31 include intmain 程式正常執行,會輸出hello 但是程式載入到gdb...

tsung小試牛刀

linux環境 centos5.5 1 tsung安裝 tar zxvf tsung 1.4.2.tar.gz configure make sudo make install 安裝後執行 which tsung,如果顯示 usr bin tsung 表明安裝成功 2 設定 如果沒有 tsung 目...