Android反编译及重新打包

Android反编译

2019年7月补充
推荐更好的反编译教程: https://blog.csdn.net/s13383754499/article/details/78914592
Android 2019年7月最新版本反编译工具:https://download.csdn.net/download/ethanco/11375254

工具介绍:

apktool

资源文件获取,可以提取出图片文件和布局文件进行使用查看
反编译、重新生成工具

dex2jar

将apk反编译成Java源码(classes.dex转化成jar文件)

jd-gui

查看APK中classes.dex转化成出的jar文件,即源码文件

下载

2016年8月份最新aapt、dex2jar、jd.gui打包下载

apktool的使用

Apktool:ApkTool最新下载
apktool.bat:apktool.bat下载
aapt.exe: 建议使用最新版 比如: .\SDK\build-tools\24.0.1\aapt.exe

Apktol 需把aapt.exe、apktool.bat、apktool.jar 复制到到你的Windows安装目录下(比如C:\Windows),以方便使用Dos命令

decode 反编译

该命令用于进行反编译apk文件,一般用法为

apktool d <file.apk> -o <dir>

//<file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\MusicPlayer.apk
//<dir>代表了反编译后的文件的存储位置,比如C:\MusicPlayer,如果你给定的<dir>已经存在,那么输入完该命令后会提示你,并且无法执行,需要你重新修改命令加入-f指令  

apktool d –f <file.apk> <dir>

//这样就会强行覆盖已经存在的文件

build 创建(重新创建apk)

该命令用于编译修改好的文件,一般用法为

apktool b <dir>

//这里的<dir>就是刚才你反编译时输入的<dir>(如C:\MusicPlayer),输入这行命令后,如果一切正常,  
//你会发现C:\MusicPlayer内多了2个文件夹build和dist,其中分别存储着编译过程中逐个编译的文件以及最终打包的apk文件。

比如,我们可以把decode生成的目录下的res\mipmap\ic_launcher.png替换成自己的图片,然后再用build生成一个新的apk,之后进行apk签名后,就成功替换了图标了,可安装到手机上了 ~

Apk签名

创建key,需要用到keytool.exe (位于jdk1.6.0_24jre\bin目录下),使用产生的key对apk签名用到的是jarsigner.exe (位于jdk1.6.0_24\bin目录下),把上两个软件所在的目录添加到环境变量path后,打开cmd输入

D:>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
/*说明:-genkey 产生密钥
       -alias demo.keystore 别名 demo.keystore
       -keyalg RSA 使用RSA算法对签名加密
       -validity 40000 有效期限4000天
       -keystore demo.keystore */
   
D:>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息
       -keystore  demo.keystore 密钥库位置
       -signedjar demor_signed.apk demo.apk demo.keystore 正式签名,三个参数中
		依次为签名后产生的文件demo_signed,要签名的文件demo.apk和密钥库demo.keystore.*/

注意事项:Android工程的bin目录下的demo.apk默认是已经使用debug用户签名的,所以不能使用上述步骤对此文件再次签名。正确步骤应该是:在工程点击右键->Anroid Tools-Export Unsigned Application Package导出的apk采用上述步骤签名。

Apk反编译得到Java源代码

下载上述工具中的dex2jarjd-gui ,解压
将要反编译的APK后缀名改为.rar或则 .zip,并解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-x.x.x 文件夹内,
在命令行下定位到dex2jar.bat所在目录

d2j-dex2jar.bat   classes.dex

在改目录下会生成一个classes_dex2jar.jar的文件,然后打开工具jd-gui文件夹里的jd-gui.exe,之后用该工具打开之前生成的classes_dex2jar.jar文件,便可以看到源码了

##常见错误
Android逆向之旅—反编译利器Apktool和Jadx源码分析以及常见反编译错误修复

其他

下载

2016年8月份最新aapt、dex2jar、jd.gui打包下载

参考

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一.反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工 具,可以直接查看Jar包的源代码。 以下是下载地址: dex2jar:http://laichao.googlecode.com/files /dex2jar-0.0.7-SNAPSHOT.zip JD-GUI:http://laichao.googlecode.com/files/jdgui.zip 具体步骤: 首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的; 解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex 生成classes.dex.dex2jar.jar 运行JD-GUI,打开上面生成的jar包,即可看到源代码了。 二.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件 如果是只是汉化软件,这将特别有用。首先还是下载工具,这次用到的是apktool,下载地址: http://code.google.com/p/android-apktool/,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。 具体步骤: 将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exeapktool.bat,apktool.jar; 在命令行下定位到apktool.bat文件夹,输入以下命令: apktool d C:\***.apk C:\***文件夹 命令行解释:apktool d [要反编译apk文件 ] [输出文件夹],特别注意:你要反编译的文件一定要放在C盘的根目录里; 将反编译完的文件重新打包apk,很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

氦客

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值