在python中直接调用androguard
来源:互联网 发布:网上宿迁网络问政 编辑:程序博客网 时间:2024/04/29 23:22
androguard是Android恶意软件分析工具,主要用于APK的静态分析。相比于IDA/VTS之类的工具,androguard的扩展性更强,开发者可以将其作为自己项目中的一个模块。本文详细讲解怎么在自己的py代码中调用androguard。
androguard目前最新的2.0版本还不兼容python3。所以下面的过程都在python2.7上进行。python3的用户可以参考这篇文章配置一个virtualenv的pythong2环境。
安装androguard
本文的环境为:Windows 10 + python 2.7.11 + androguard 2.0
安装androguard的步骤为:
- (1) 下载androguard2.0
- (2) 安装androguard2.0
python setup.py install
- (3) 安装其他依赖
python中导入androguard
从androguard源码中可以看出,其androguard/就是一个包(从目录下含有init.py可以看出)。而包是可以在python导入,并使用其方法的。
从androguard的源码androlyze.py中也可以看到,这个包是可以被导入的。
所以我们只要在代码中声明androguard的位置,并将需要的androguard模块导入,即可使用androguard的函数。
import osimport sys# 根据自己py代码的位置,确定Androguard-2.0的路径androguard_module_path = os.path.join( os.path.dirname(os.path.abspath(__file__)), 'Androguard-2.0/androguard' )if not androguard_module_path in sys.path: sys.path.append(androguard_module_path)# 导入核心的三个模块from androguard.core.bytecodes import apkfrom androguard.core.bytecodes import dvmfrom androguard.core.analysis import analysis
使用androguard
def get_androguard_obj(apkfile): a = apk.APK(apkfile, False, "r", None, 2)#获取APK文件对象 d = dvm.DalvikVMFormat(a.get_dex())#获取DEX文件对象 x = analysis.VMAnalysis(d)#获取分析结果对象 return (a,d,x)sp = '1.apk'if __name__=='__main__': ao = get_androguard_obj(sp) x = ao[2] pkgs = x.get_tainted_packages() for pkg in pkgs.get_packages(): print(pkg)#打印package name
2 0
- 在python中直接调用androguard
- 在python中直接调用androguard
- QT C++中直接调用python接口
- 在VC中直接调用系统对话框
- 在C#中能否直接调用WIN32API
- 在peoplecode中直接调用SQR
- 在C#中直接调用相关程序
- 在Java中直接调用js代码
- 在handelc中直接调用verilog模块
- 在Java中直接调用js代码
- 在Java中直接调用js代码
- 在Java中直接调用js代码
- 在Java中直接调用js代码
- 在Java中直接调用js代码
- 在Java中直接调用js代码
- 在Java中直接调用js代码
- 在Java中直接调用js代码
- 如何在QII中直接调用ModelSim
- MyEclipse提示过期
- SDUT OJ 2123 查找练习 hash——出现过的数字
- 数据结构实验之排序七:选课名单
- 机器学习实战笔记——微软小冰的读心术与决策树
- 程序包org.apache.http不存在的解决方法
- 在python中直接调用androguard
- Internet Service Providers
- Android .9图的问题
- CF660A -- Co-prime Array
- jsp post和get区别
- 一些例题的技巧
- LeetCode #132: Palindrome Partitioning II
- Joint Cascade Detection and Alignment & Local Binary Features 阅读笔记
- JavaScript 学习笔记---------(二)