Android 如何对apk文件进行反编译以及重新打包签名 标签: apktoolandroid反编译jebSmali2Java 2016-05-10 16:00 3897人阅读 评论(0) 收藏

Android 如何对apk文件进行反编译以及重新打包签名

标签: apktoolandroid反编译jebSmali2Java
3897人阅读 评论(0) 收藏 举报
分类:

最近在看视频的时候看到有关apk文件如何反编译的,顿时提起了自己的兴趣,记得在刚刚学习Android的时候就对这方面有兴趣,只是当时自己的技术…咳…现在自己…咳咳..咳…

注:以下的前提是Java相关环境变量配置完成
我觉得反编译无非就是能够得到其apk的资源文件,以及java代码等
常用的工具有:apktool、jeb、Smali2Java等,下面我会一一介绍这几种工具的用法,展示下自己这两天的百度成果

Apktool
下载地址:
http://download.csdn.net/detail/w18756901575/9515620
中文版:
http://download.csdn.net/detail/w18756901575/9515642

查看帮助:
输入:

java -jar apktool-v2.0.0RC2.jar
   
   
  • 1
  • 1

当你把文件下载下来之后是一个.jar文件,我一开始也不知道.jar文件是如何使用,仅仅知道是个架包可以导入libs下使用,还可以解压,但这个.jar文件并不是这样用的.
在你下载的.jar包所在文件夹下,在搜索栏输入cmd回车,打开dos窗口,或者是直接打开dos,cd到.jar文件所在的目录
反编译
输入命令:
apktool-v2.0.0RC2.jar 是.jar文件名称
d 是反编译
a.apk 是文件路径加名称,因为我的a.apk和架包apktool在一个文件夹下所以直接输入文件名称就可以了

apktool-v2.0.0RC2.jar d a.apk
   
   
  • 1
  • 1

然后在apktool所在文件夹下会生成一个以apk文件的名称命名的文件夹

文件结构如下:

其中assets、res文件夹对应原来工程中的文件,这样就可以原原本本的拿到原项目的图片、xml文件,并根据自己的需要进行修改
smali文件夹对应的是原Java文件,里面都是.smali文件,这个文件是可以修改的,修改他就相当于修改java代码。
.smali文件的内容是用smali语法编写的,我们一般编写都是对.java文件进行编写.smali文件阅读起来着实费力,初学者根本看不懂.smali代码,额..至少我看着很晕,如何将其转化成java代码可供阅读呢?不要着急,在下面我会讲到了。

接下来来讲解如何对修改后的文件进行重新打包

输入以下命令
b 是对修改后的文件重新打包
a 是刚刚解压的文件夹

apktool-v2.0.0RC2.jar b a
   
   
  • 1
  • 1

如果没有错误的话就会生成dist文件夹里面就是打包的apk文件

记住如果修改的文件有错误的话,是编译不通过的,那么就只会生成
build\apk 文件夹而其中没有任何东西,也不会生成dist文件夹

这个时候我们已经得到了apk文件,注意这个时候,因为没有签名文件,apk是无法安装的

如何对apk文件重新签名

想要对apk文件进行重新签名,这个时候我们就用到了另外一种工具
re-sign
输入:jarsigner可查看re-sign的帮助
下载地址:
http://download.csdn.net/detail/w18756901575/9515623

输入命令:

jarsigner -keystore G:\FuZa\WeChatSDK_sample_Android221cbf\debug.keystore -storepass android -keypass android D:\apktool\a\dist\a.apk androiddebugkey
   
   
  • 1
  • 1

其中:
G:\FuZa\WeChatSDK_sample_Android221cbf\debug.keystore是debug.keystore路径
D:\apktool\a\dist\a.apk 是需要重新签名的文件路径加文件名

这个时候我们就对刚刚的apk文件进行了重新签名,然后就可以安装了

如何查看java源码:

使用jeb
下载地址:
http://download.csdn.net/detail/w18756901575/9515633

下载下来之后解压:
然后在xxxx\jeb-1.5.201404100_modified_by_scz(20140711)\64-bits\bin
文件夹下运行dos命令(它有32位和64位两个文件夹,根据自己的需要去运行)

java -jar jeb.jar
   
   
  • 1
  • 1

然后就会启动jeb

启动之后的事情就很简单了,只需要直接将apk文件拖入其中就可以了,apk文件比较大的会有一小会的卡顿是正常现象。

这个时候就是可以查看源码了,
tab键可以在smali代码和java代码中切换
需要注意的是,在jeb中是不可以修改其代码的

Smali2Java

下载地址:
http://download.csdn.net/detail/w18756901575/9515648

使用Smali2Java查看java源代码
Smali2Java就跟简单了,下载文件之后解压,得到Smali2JavaUI.exe可执行文件,打开文件,然后文件→打开 打开一个apk文件就可以查看源码了
注意:Smali2Java也不可修改java代码

5
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值