Android 概念补充
动静态分析区别:
静态分析是指破解者利用反汇编工具将二进制的可执行文件翻译成汇编代码,通过对代码的分析来破解软件,而动态调试是指破解者利用调试器跟踪软件的运行,寻求破解的路径。计算机必须真正运行被调试的程序,通过输入测试用例,对运行情况进行分析。
加密和未加密数据包的app渗透的区别:
未加密测试和web相似,抓包,分析数据包,挖掘漏洞
加密APP的测试,会多一个逆向破解APP加解密的步骤。
APP常用工具简介:
jadx-gui:
将apk文件的文件结构,代码逻辑都罗列出来
jeb:
gui反编译工具,将apk文件的文件结构,代码逻辑都罗列出来。2.0版本的jeb具备动态调试功能。
apktool:
对应用进行打包和解包
apktool d [app.apk] 对apk安装包文件进行解包
apktool b [app解包后的文件夹]
signapk:
可以对apk进行签名,没有签名的apk是无法安装的
java -jar signapk-jar testkey.x509.pem testkey.pk8 旧apk 新apk
IDA:
多功能工具箱,静态反编译,反汇编工具,也可用来静态调试等功能,将二进制文件或apk包使用ida打开即可查看到代码逻辑
drozer:
Android安全测试框架。是目前最好的Android安全测试工具之一。drozer提供了命令行交互式界面,使用drozer进行安全测试,用户在自己的console端输入命令,drozer会将命令发送到Android设备上的drozer agent代理程序执行。
静态分析:是指在不运行代码的方式下,通过词法分析,语法分析,控制流数据流分析等技术对程序代码进行扫描,验证代码是否满足规范性,安全性,可靠性,可维护性等指标的一种代码分析技术。
静态分析步骤:
1.反编译APK文件
2.获取软件基本信息
3.分析应用权限
4.分析四大组件
5.分析敏感函数
反编译:
安卓可执行代码在dex文件中,我们需要将dex文件反编译成java源代码或者smali文件,然后静态分析代码。