Android-APK反编译学习

自己写这篇文章的目的在于帮助大家更好地学习android。把一些好的应用通过编译成可读文件。具体步骤:


一、解压APK生成目录


apk的目录结构,如下


  1. assets 这个文件夹用来放入要使用的文件,比如XMLor.txt等,这个目录里面的文件不会编译成二进制代码。
  2. lib存放的是 NDK编出来的 so 
  3. META-INF存放的是数字签名,再发布一个APK时都要签上数字签名,如果翻译之后然后再打包成APK,千万要签上数字签名。要不然在设备上是无法安装你的APP的。
  4. res存放的是资源文件比如XML,IMG。
  5. AndroidManifest.xml是整个应用的配置文件,比如声明组件,设置权限,版本等。
  6. classes.dex是最终生成的 dalvik 字节码,java和R文件都被编译在这里面
  7. resources.arsc编译后的二进制资源代码


二、介绍反编译工具


这里主要运用了三个工具,可到官方下载最新版本:

1.dex2jar(把classes.dex编译成.jar文件,主要看java代码)

2.apktool(这个用来反编译classes.dex和资源文件比如图片,音频等)

3.jd-gui(这用来查看.jar文件),注意如果反编译之后重新打包成APKjava代码是不可以修改的,只能查看,查看编译后的jar包代码和源代码有一些差别。



三、下载反编译工具


以上下载三个工具文件还是不够的,需要特殊配置文件才能反编译,一下提供工具包:

Android反编译工具包 免费下载

tools里面有三个目录

1.dex2目录用来反编译classes.dex文件

2.apk-tool反编译资源文件

3.jd-gui查看编译后的jar文件(java源代码)注意和源代码有差别


四、如何使用反编译工具


下载工具包之后解压出来,进入cmd(命令终端),在周末开始的搜索框输入cmd命令

1用cd进入刚才解压的包中的dex2根目录(比如我的在E盘,首先进入工具包所在的盘)


2.把classes.dex编译成.jar

输入命令: dex2.bat   绝对路径\classes.dex,


显示这个就代表编译完成,在你classes.dex文件所在的目录中有classes_dex2jar.jar这个文件,然后你进入jd-gui包中双击打开

jd-gui.exe文件,然后在工具栏选择File-Open File-classes_dex2jar.jar这是你可以看到java代码了。


3.编译资源文件,这时用apktool目录下的apktool.bat,用命令进入到apktool文件夹,

输入命令 apktool.bat d  [绝对路径\apk文件名称]    [想要输出的目录]


这样就完成了,到你输出的目录上查看。所有的布局和资源文件都可以正常显示了。


五、重新将反编译后的文件打包成APK

还是使用apktool.bat

输出 apktool.bat b [刚才编译的输出目录] 注意:记得加路径


完成.查看apk在输出目录的dist目录下。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值