二次打包的危害性
如果你没有对你的应用做任何的安全保障措施,那么你的应用就非常的危险
首先了解一下什么是二次打包:
二次打包
通过工具apktool、dex2jar、jd-gui、DDMS、签名工具获取源码,嵌入恶意病毒、广告等行为再利用工具打包、签名,形成二次打包应用。
下面我们来实践一下
首先你得有一个apk然后我们通过apktool工具进行解包
apktool 主要用于逆向apk文件。它可以将资源解码,并在修改后可以重新构建它们。它还可以执行一些自动化任务,例如构建 apk
下载地址
反编译APK
命令格式:apktool d [ apk文件名 ]
进入到 apktool 所在目录
.\apktool.jar d .\mlxx.apk
不行的话就用下面这个命令,前面加上 java -jar
java-jar.\apktool.jard.\mlxx.apk
编译成功之后会出现一个文件夹
AndroidManifest.xml
APP权限配置程序入口
smali 文件(一种汇编代码)
.smali可以和.dex相互转换
修改APK代码通常修改smali文件(重新修改.java源代码 重新编译的困难太大)
-baksmali.jar smali.jar对dex 和 smali文件做转换classes.dex
源代码在classes.dex文件里
可以反编出.java代码
然后我们可以对其进行修改数据,或插入恶意数据病毒。再重新打包
使用apktool二次打包
命令:apktool b 目录
apktool b .\xincai\ -o memo.apk
使用Java环境中自带的jdk进行生成keystore
keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%\bin\keytool.exe
使用
keytool -genkey -alias androidauto.keytore -keyalg RSA -validity 20000 -keystore 1234.keystore
如果出现keytool错误说明你没有写入权限,给java文件一个写入权限
然后我们使用360选中需要签名的apk文件,再选中刚刚生成的keystone,一键签名
使用burp抓取手机https包
1、让手机和电脑连入同一个WIFI,即是在同一个无线局域网环境下
2、查看电脑的本地IP地址,对手机wifi进行代理设置,主机名为电脑ip
3、打开Burpsuite,设置Burp suite代理服务器。添加和手机一样的IP地址和端口,要跟手机上设置的那个端口一致
4、导入证书到手机中便可抓取https包了