APK反编译为Java代码

本文介绍了如何通过dex2jar工具将APK中的classes.dex转换为jar文件,并利用jd-gui查看反编译后的Java源码。此方法有助于了解APK的内部实现细节。

找到一个APK包想学习,但是看不到源码,之前看过apktool的介绍,可以将代码反编译成smali代码,smali代码可以看到变量名,但是并不容易阅读,后来发现了dex2jar+jd-gui这个神奇的东西,记录一下。

首先需要将APK包解压缩,我们只用其中的classes.dex文件,android的编译机制将所有的java类都打包在了classes.dex里面。
然后使用dex2jar将classes.dex转化为jar包(dx可以将jar编译成dex)这个过程看来并没有太多信息损失,方法名都完整的保存下来了(必须的不然反射机制怎么用)。
jar包可以用jd-gui工具来查看,然后看到的就是源码了
看到的源码其实并不能完全还原为编译前的样子,毕竟编译器还是做了一些优化工作的(不知道理论上有没有完全还原回去的可能性),这使得这个世界还有一点安全感。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值