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物件
analysis
object 包含在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 目...