前言
最近在做一些安卓安全相关的事情,就看到了一个通过动态调试进行代码注入的一个概念,收益匪浅,原来好多东西还能这么玩的。闲言少絮,开始正式行动。
漏洞检查
由于我这边是做的关于安卓安全相关的事情,主要是想知道哪些问题可以被攻击到,因此我这边需要知道那些app可以被debug。所以我的第一步是用apktool对apk进行反编译,查看反编译出的文件夹下的AndroidManifest.xml,假如发现里边有android:debuggable=”true”,就意味着这个apk可以被反编译。(当然,此处加入你是调试自己写的apk的话,也就不用有这一步了,不过自己的apk为什么用JDB调试这个有待考虑。)这里我用自己写的一个apk进行操作。代码很简单,只有一个按钮和一个文本信息,点击按钮将文本信息替换。我可以附上链接,不过好像最近下载没有免费的,建议这个可以自己写一下,实在懒得下的,又是有积分任性的可以在这里直接下载。
对于用apk反编译的过程,不在赘述,直接附图,实在不知可以百度。
准备开始
- 先安装应用,命令:adb install [apkname].apk
- 再用debug模式启动应用,命令adb shell am start –D –n 包名/类名(包名和类名可以在反编译出的AndroidManifest.xml中找到,不详细介绍)上图