Cài đặt python:
cài python 2.7
$sudo add-apt-repository ppa:fkrull/deadsnakes
$sudo apt-get update
$sudo apt-get install python2.7
Cài pip
$ sudo pip install ipython_genutils
Sau đó ta cài ipython và pygments:
$sudo easy_install ipython
$sudo easy_install pygments
Vào terminal và chạy lệnh sau:
sử dụng git để lấy Androguard:
$git clone https://github.com/androguard/androguard.git
Cài đặt Androguard
$sudo python setup.py install
Nếu chạy gặp lỗi:
Traceback (most recent call last):
File "./androaxml.py", line 84, in <module>
main(options, arguments)
File "./androaxml.py", line 54, in main
a = apk.APK(options.input)
File "/home/manh/androguard/androguard/core/bytecodes/apk.py", line 194, in __init__
self.zip = zipfile.ZipFile(StringIO.StringIO(self.__raw), mode=mode)
File "/usr/lib/python2.7/zipfile.py", line 770, in __init__
self._RealGetContents()
File "/usr/lib/python2.7/zipfile.py", line 857, in _RealGetContents
x._decodeExtra()
File "/usr/lib/python2.7/zipfile.py", line 388, in _decodeExtra
tp, ln = unpack('<HH', extra[:4])
struct.error: unpack requires a string argument of length 4
$sudo nano /usr/lib/python2.7/zipfile.py
Sửa giá trị sau:
while extra:
thanh:
while len(extra) > 4:
cài đặt networkx:
$sudo apt-get update
$sudo apt-get install python-networkx
http://www.technotalkative.com/part-1-reverse-engineering-using-androguard/
http://www.technotalkative.com/part-2-deep-analysis-using-androguard-tools-2/
Các chức năng chính
Androaxml
Sử dụng để view file AndroidManifest.xml.
cú pháp:
./androaxml.py -i <path_of_apk> -o <name_of_output_file> </code>
ví dụ:
./androaxml.py -i demo.apk -o output.xml
-i: đường dẫn cho giá trị đầu vào.
-o: đường dẫn xuất ra file kết quả.
Androsim
Sử dụng để dịch ngược 2 ứng dụng và so sánh các thành phần đã bị sửa đổi.
Windows:
androsim.exe -i <path_of_first_apk> <path_of_second_apk> -c ZLIB -n
ví dụ:
androsim.exe -i demo.apk demo1.apk -c ZLIB -n
Linux:
python androsim.py -i circle.apk circle1.apk -c ZLIB -n
ví dụ:
python androsim.py -i circle.apk circle1.apk -c ZLIB -n -d
-c: quy định các loại định dạng nén.
-d: sử dụng hiển thị các giá trị đầu ra.
Androdd
Sử dụng để lấy ra toàn bộ các file class trong Andoid package
cú pháp:
./androdd.py -i <path_of_apk> -o <path_of_output_directory>
ví dụ:
python androdd.py -i circle2.apk -o ./dd
ngoài ra có thể đưa ra ở dạng graph:
cú pháp:
python androdd.py -i circle2.apk -o ./dd -f png
thêm thông số: -f png.
Apkviewer
Chỉ có trên các version nhỏ hơn 2.0.
Sử dụng đưa ra dạng graph của apk và các method.
Dạng xuất ra là .graphml nên cần sử dụng các chương trình đọc file này: Gephi or yED.
trước hết cần cài đặt NetworkX.
$pip install networkx
cú pháp:
python apkviewer -i <path_of_first_apk> -o <path_to_output_folder>
Androapkinfo
Hiển thị thông tin file APK.
cú pháp:
python androapkinfo.py -i <path_of_first_apk>
or:
./androapkinfo.py -i <path_of_first_apk>
Đăng nhận xét