一、aptool
apktool 下载
Apktool
运行
apk文件 F:\apktools\demo.apk
导出目录 F:\apktools\demo
解包执行
java -jar apktool.jar d -f F:\apktools\demo.apk -o F:\apktools\demo
结果
assets |
(未被编译) assets文件 |
res |
(未被编译) res文件 |
smali |
(被编译) smali格式文件 |
二次打包执行
java -jar apktool.jar b F:\apktools\demo
重新打包后的apk在要打包的文件夹里的dist目录下
这样打完的apk是没有签名的
jarsigner 签名apk
jarsigner -verbose -keystore signapk.keystore -signedjar signapk_new.apk signapk.apk keyAlias
注意:
signapk.keystore 自己的签名证书
signapk_new.apk 签名成功之后输出的apk名称
signapk.apk 输入的待签名的apk
keyAlias keyAlias名称
二、drozer
drozer 官方网站:https://labs.mwrinfosecurity.com/tools/drozer/
下载安装以下两个文件:
android 端:安装好 drozer.apk后,点击开启服务
pc端:
使用 forward 端口映射 将31415端口进行映射
adb forward tcp:31415 tcp:31415
drozer目录下cmd 运行 drozer console connect
特殊(出现java环境没有找到):
按照提示在 用户目录下添加 .drozer_config文件 内容如下:
[executables]
java=D:\Java\jdk1.7.0_65\bin\java.exe
javac=D:\Java\jdk1.7.0_65\bin\javac.exe
命令:
list或ls 查看可用模块
run app.package.list 查看程序安装包
run app.package.info -a com.example.myapp 查看程序包信息
run app.package.attacksurface com.example.myapp 查看项目对外exported的组件
run app.activity.info -a com.example.myapp 查看对外activity的信息
run app.service.info -a com.example.myapp 查看对外service的信息
run app.broadcast.info -a com.example.myapp 查看对外broadcast的信息
run app.provider.info -a com.example.myapp 查看对外provider的信息
run app.activity.start --component com.example.myapp com.example.MainActivity 尝试启动MainActivity
run scanner.provider.finduris -a com.example.myapp 探测出可以查询的URI
run app.provider.query content://***/ -vertical 获取Uri的数据
run app.provider.insert URI对应数据表中的字段 对数据库表进行插入操作
run app.provider.delete URI–-selection “条件” 对数据库表进行删除操作
Content Providers(SQL注入)
run app.provider.query content://***/ --projection "'"
run app.provider.query content://***/ --selection "'"
报错则说明存在SQL注入。
run app.provider.query content://***/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"
获取某个表(如Key)中的数据:
run app.provider.query content://***/ --projection "* FROM Key;--"
同时检测SQL注入和目录遍历
run scanner.provider.injection -a com.example.myapp
run scanner.provider.traversal -a com.example.myapp