APK签名及简单反编译

APK生成签名文件及签名介绍

  1. 制作签名文件(支持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 签名文件密码
  1. 对APK进行签名:
    应用所在目录:
java/bin
jarsigner -verbose -keystore d:签名文件名.keystore -signedjar d:签名后文件名.apk d:签名前文件名.apk 签名文件别名

APK反编译及二次打包

  1. 工具介绍:
    apktool
    作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
    dex2jar
    作用:将apk反编译成Java源码(classes.dex转化成jar文件)
    jd-gui
    作用:查看APK中classes.dex转化成出的jar文件,即源码文件
  2. 反编译流程:
    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文件,便可以看到源码了,效果如下:

http://blog.csdn.net/vipzjyno1/article/details/21039349/

原文地址:https://www.cnblogs.com/qpzm/p/6097591.html