Android应用安全系列 part 4 – 了解你的军火库
Android Debug Bridge (Android调试桥)
接下来讲adb中必须了解的命令,我推荐阅读adb文档来更好去理解。
adb devices–打印所有可用的模拟器和设备列表
使用mumu模拟器,在appie中输入命令 adb devices,输出可用列表为空
因为adb和mumu模拟器还没有建立连接,使用命令 adb connect 127.0.0.1:7555 (mumu模拟器监听端口7555)
此时建立adb与模拟器之间的连接
adb install — 向模拟设备安装apk文件,下载好apk文件然后上传至设备
此时看到应用已经安装到设备中
adb pull — 将设备中的数据下载到本地
adb push — 将本地数据上传到远程设备,也可以上传文件
查看文件已经上传成功
adb forward — 在本地特定端口与远程设备特定端口之间建立socket连接
adb shell — adb提供unix命令行模式,你可以在远程设备中执行各种命令
尽管有许多其他应用,Activity Manager(am)和Package Manager(pm)也在adb shell中。我们通常使用drozer来完成同样的命令,因为drozer可以更简洁的完成任务。
Drozer
drozer可以让你在应用中通过枚举应用角色等来发现安全漏洞,并且可以与Dalvik虚拟机、其他应用进程通信终端以及底层操作系统交互。
drozer在android应用安全评估中非常重要,会另写一篇文章讲解。
Apktool
输入apktool会列举配置和命令帮助信息
输入命令 apk d filename.apk 对apk文件进行解码。
运行完成,在同一目录下建立解码文件。
在windows下也可以直观看到新解码内容
dex2jar
dex2jar用于将apk文件转化成包含重建源代码的jar文件, 通过dex2jar filename.apk命令实现。
jd-gui
- 以上步骤将apk转成jar文件
- 现在用jd-gui打开jar文件并查看重构后的源代码
- 首先输入jdgui,打开jd-gui界面
- 选择要打开的jar文件
打开文件查看源代码
PS:推荐使用国产android逆向神器 android killer
打开apk文件,自动进行解析
打开jd-gui工具,可以查看源代码