Android轻松反编译


当我们遇到一个很炫的App,都会想去模仿实现。但通常App都会经过混淆才发布的,所以我们需要反编译。

工具

  • dex2jar:将dex转换成jar的工具
  • jdgui : 将编译好的jar可视化
  • apktool : 反编译出apk中的资源文件

我在Github上传了这些工具,也可以来我的Github下载

dex2jar使用

目的:反编译得到Java文件

  1. 直接解压要反编译的Apk文件,得到classes.dex
  2. classes.dex 拷贝到 dex2jar-2.0文件夹里面
  3. 在dex2jar-2.0文件夹里面执行命令行(shift+右键 -> 在此处打开命令窗口) , 执行:d2j-dex2jar.bat classes.dex
  4. 然后就得到了classes_dex2jar.jar
  5. 使用jd-gui.exe打开classes_dex2jar.jar 就可以看到java文件啦!!

apktool使用

目的: 反编译得到资源文件

  1. 直接把要反编译的apk放到apktool文件夹里面
  2. 在apktool文件夹里面执行命令行(shift+右键 -> 在此处打开命令窗口) , 执行:apktool d test.apk , 然后就会生成test文件夹
  3. 然后继续执行apktool b test 重新构建apk
  4. 然后就得到我们需要的资源文件啦

过程如下:

$ apktool d test.apk
I: Using Apktool 2.2.2 on test.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: 1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
$ apktool b test
I: Using Apktool 2.2.2 on test
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
I: Building apk file...
I: Copying unknown files/dir...

如果有用,记得点个赞鼓励一下哈

发表评论

电子邮件地址不会被公开。 必填项已用*标注