APK签名及简单反编译
APK生成签名文件及签名介绍
- 制作签名文件(支持keystore,jks格式)
应用所在目录:
java/bin
keytool -genkey -alias 签名文件别名 -keyalg RSA -keysize 1024 -keypass 签名文件密码 -validity 365 -keystore d:签名文件名称.keystore -storepass 签名文件密码
同样支持jks:
keytool -genkey -alias 别名 -keyalg RSA -keysize 1024 -keypass 签名文件密码 -validity 365 -keystore d:签名文件名称.jks -storepass 签名文件密码
- 对APK进行签名:
应用所在目录:
java/bin
jarsigner -verbose -keystore d:签名文件名.keystore -signedjar d:签名后文件名.apk d:签名前文件名.apk 签名文件别名
APK反编译及二次打包
- 工具介绍:
apktool
作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
dex2jar
作用:将apk反编译成Java源码(classes.dex转化成jar文件)
jd-gui
作用:查看APK中classes.dex转化成出的jar文件,即源码文件 - 反编译流程:
apk反编译得到程序的源代码、图片、XML配置、语言资源等文件
解压工具apktool,得到3个文件:aapt.exe,apktool.bat,apktool.jar
将需要反编译的APK文件放到该目录下。
打开命令行界面(运行-CMD),定位到apktool文件夹,
反编译命令:
apktool.bat d -f 反编译的apk名称.apk test
test为反编译出来的文件所存的文件夹
重打包命令:
apktool.bat b test
之后在之前的test文件下便可以发现多了2个文件夹:
build
dist(里面存放着打包出来的APK文件)
3. Apk反编译得到Java源代码
下载上述工具中的dex2jar和jd-gui。
- 解压将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的)
- 将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15 文件夹内,在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex,效果如下:
- 在该目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下: