android 安装包反编译以及重新打包

一.反编译

1.下载工具包

官网下载:https://ibotpeaches.github.io/Apktool/install/ 

貌似有时候无法下载bat ,请参照 bat下载

2.创建一个文件夹放两个工具(修改jar包的名字),将要编译的apk也放进去

3.开始编译

利用cd命令将命令行模式进入刚刚创建的这个文件夹下

然后使用apktool d **.apk 命令,成功后会得到如下图一个文件夹(不成功的请检查环境)

 4.解析源代码

前三步的操作主要是来解析资源res和资源AndroidManifest.xml,还需要另外的两个工具来解析Java源码:dex2jar和jd-gui

下载地址 

建议和刚才的两个文件放一起

5.将apk文件解析为后缀为dex的文件 

将**.apk文件 修改后缀为zip,然后解压得到一个文件夹

找到classes.dex文件

6. 利用dex2jar工具把dex文件解析成后缀为jar的文件

将 classes.dex文件剪切到dex2jar文件夹下,cd命令 到该目录,

运行命令 d2j-dex2jar.bat classes.dex ,成功后生成一个classes-dex2jar.jar文件

运行jd-gui里面的exe程序,然后将classes-dex2jar.jar 拖入,就能看到java文件了

注意:如果采用了混淆加密,该方案无效

二.打包apk  

方法1:

1.回编译apk  apktool b files


files就是对应刚刚修改的apk文件夹,执行完后会重新生成一个apk文件

2.签名

新生成的apk 是没有签名的 ,安装会报错,

Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION]

请重新签名后再安装

方法2:

1.在反编译第六步时,会使用gui查看jar包

我们将要需改的类更改代码后复制到jar内,完成覆盖替换(注意编译后的代码跟原始代码差异)

2.把jar包重新转成dex文件,替换原来的classes.dex

3.apk包防篡改机制

在META-INF文件下有三个文件,对打包时对文件进行了标识记录

三个文件不能删除,因此 我们需要重新生成

使用工具给apk进行签名 会重新生成该文件

大功告成!!!!!!!!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值