Android中的反编译

最近在看《Anroid开发艺术探索》,关于反编译的工具的使用,以window为例,以此文章做个笔记。
apktool:http://ibotpeaches.github.io/Apktool/
dex2jar:https://github.com/pxb1988/dex2jar
jd-gui:http://jd.benow.ca/

使用dex2jar和jd-gui反编译apk

将apk重命名后缀为zip,解压缩得到dex文件,通过dex2jar将dex转换为jar,jar包中都是class文件,使用jd-gui将jar包转换为java代码。
1.使用dex2jar将dex转换为jar:
下载dex2jar并cmd进入到dex2jar目录下执行命令,生成jar:

d2j-dex2jar.bat classes.dex

其中classes.dex为需要转换的dex文件
如下图所示:
这里写图片描述

2.通过jd-gui打开jar查看java代码:
jd-gui是图形化工具,直接双击打开后通过菜单打开jar包即可查看jar包的源码。

使用apktool对apk进行二次打包

使用dex2jar和jd-gui将一个dex文件反编译为java代码,无法反编译出apk中的二进制数据资源,采用apktool可以做到,另外还可以用来进行二次打包。
1.下载apktool.jar和apktool.bat:
这里写图片描述
2.使用apktool进行反编译:
使用cmd在apktool.jar和apktool.bat目录下执行命令

apktool.bat d test.apk

其中d表示解包,test.apk为需要反编译的apk
如下所示:

这里写图片描述
3.使用apktool进行二次打包:
修改刚才反编译后的test文件夹中的文件,使用cmd在apktool.jar和apktool.bat目录下执行命令

apktool.bat b test

如下所示:
这里写图片描述
此时会在test文件中生成一个dist目录,dist目录下test.apk为二次打包后的apk。
这里写图片描述
但此时新生成的test.apk是未进行签名的,是不能进行安装和运行。
4.使用signapk.jar包进行签名:

java -jar signapk.jar testkey.x509.pem testkey.pk8 test.apk test-signed.apk

具体使用步骤请查看http://blog.csdn.net/hexingen/article/details/76731721

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值