Android静态分析
本文最后更新于:2020年3月12日 晚上
IDA破解实例-定位关键代码
搜索特征字符串
1 |
|
搜索API
1 |
|
搜索方法名
1 |
|
if-eqz的opcode是0x38
if-nez的opcode是0x39
return的opcode是0x0f
修改dex,替换apk中的dex
1 |
|
终止程序
Context的finish()方法
android.os.Process的killProcess()方法
Androguard简单使用
- androapkinfo.py
查看apk信息。包、资源、权限、组件、方法。
androapkinfo -i filename - androaxml.py
解析AndroidManifest.xml文件。
androaxml -i filename - androcsign.py
收集签名到数据库中,使用前需要为apk编写sign文件。 - androdd.py
生成apk每个类的方法的调用流程图。
androdd -i filename -o dirname -d -f PNG
-d 是指定生成dot图形文件。 - androdiff.py
比较两个apk文件的差异。
androdiff -i filename1 filename2 - androdump.py
dump一个Linux进程。
androdump -i pid - androgexf.py
生成一个gexf图形文件。用Gephi查看。
androgexf -i filename1 -o filename2 - androlyze.py
提供交互环境静态分析android程序。 - andromercury.py
Mercury工具的框架。 - androrisk.py
评估apk文件中的潜在方法。
androrisk -m -i filename
m 表示需要分析每一个方法。 - androsign.py
检测签名是否存于数据库,与androcsign作用相反。 - androsim.py
计算两个apk文件的相似度。
androsim -i filename1 filename2 - androxgmml.py
生成jar/class/apk/dex文件的控制流程及功能调度图,输出格式为xgmml。
androxgmml -i filename -o *.xgmml - apkviewer.py
为每一个类生成一个独立的graphml图形文件。
apkviewer -i filename -o xxx
androlyze的简单使用
androlyze -s //获取交互命令行模式
- 获取apk文件对象
a = APK(“filename”) - 获取dex文件对象
d = DalvikVMFormat(a.get_dex()) - 获取分析结果对象
dx = VMAnalysis(d) - 三合一指令
a, d, dx = APK(“filename”, decompiler=”dad”)
decompiler指定反编译器名称。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!