apk反编译

01 所需要的软件

  • Apktool
    反编译 xml 文件和 dex 文件,并可以将编译后的项目重新打包成 apk。
    官方下载地址:https://ibotpeaches.github.io/Apktool/install/

  • dex2jar
    将 classes.dex 转换为「.jar」文件)
    官方下载地址: https://sourceforge.net/projects/dex2jar/files/

  • jd-gui
    查看「.jar」文件
    官方下载地址: http://java-decompiler.github.io/

02

d 反编译 apk 文件
-s 不反编译 dex 文件,而是将其保留
-f 如果目标文件夹存在,则删除后重新反编译


apktool d -s -f test.apk



重新打包

b 是指 build

b_test 是刚才反编译出的文件所在的目录
-o 用于指定新的文件名称,这里指定为「newtest.apk」

apktool b b_test -o newtest.apk

重新签名

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore testjks -storepass password newtest.apk aliasName


  • META-INF 里保存 App 的签名信息

  • classes.dex  
    .dex 是 Dalvik 虚拟机上的可执行文件,需要使用 dex2jar 将其转换为 jar 文件

  • AndroidManifest.xml
    Android 清单文件,向 Android 系统提供应用的必要信息。

  • assets
    存放一些资源文件字体,声音等。

  • lib
    存放第三方库

  • original
    存放未经过反编译的等 AndroidManifest.xml 文件

  • res
    存放资源文件,例如图片,颜色,字符等。

  • smali
    smali 里存放的是 java 编译成的 smali 代码,smali 相当于 Android 虚拟机上运行的语言。

直接解压可以得到一些资源文件,但是 AndroidManifest.xml 和其他的 xml 文件都是乱码,通过 Apktool 进行反编译,可以最大限度的还原这些文件的内容。


03 dex2jar

sh d2j-dex2jar.sh classes.dex


04 jd-ui

使用jd-gui打开classes-dex2jar.jar


No suitable Java version found on your system!


解决办法 

把235行的osascript命令和237行的exit 3注释掉或者删除,然后加上你的java命令路径,我的是:JAVACMD="/usr/bin/java"




打赏

看恩吧
网站不承担任何有关评论的责任
  • 最新评论
  • 总共条评论
取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦