Ubuntu14.04反编译Apk[试试就知道]

作为Android开发者反编译apk是我们需要掌握的技能,那么在Ubuntu环境下反编译怎么进行Apk的反编译呢?

工具

dex2jar使用

  • 先参照上边提供的地址)下载并解压dex2jar
  • 然后再使用unzip命令解压apk,我们会在目录下边看到.dex文件
  • 执行反编译命令
    d2j-dex2jar.shlink
    1
    2
    3

    上述命令执行的过程中可能会遇到一些问题:
    > 问题1:提示:```d2j-dex2jar.sh: 36: d2j-dex2jar.sh: ./d2j_invoke.sh: Permission denied

原因:d2j_invoke.sh文件没有执行权限
解决:添加可执行权限:

chmod +x d2j_invoke.sh```
1
2
3
4
5
6
7
8
9
10

> 问题2:生产的jar可能为空
原因:d2j-dex2jar.sh执行会依赖其它的脚本(单独拷贝出来执行会有问题)
解决:执行它的时候dex2jar的其它文件最好也在相同的目录

正确运行结果:
```java
im@58user:~/Downloads/dex2jar-2.0$ sudo chmod +x d2j_invoke.sh
im@58user:~/Downloads/dex2jar-2.0$ sh d2j-dex2jar.sh /home/im/Desktop/dex2jar/bangjob-apk/classes.dex
dex2jar /home/im/Desktop/dex2jar/bangjob-apk/classes.dex -> ./classes-dex2jar.jar

然后会在该目录生成classes-dex2jar.jar文件。

jd-gui使用

  • 先参照上边提供的地址下载文件
  • 然后直接打开jd-gui

可能遇到的问题:
jd-gui程序执行的时候可能没有任何反应,那是因为操作系统可能缺少某些环境。执行该命令:sudo apt-get install gtk2-engines-murrine:i386 libgtk2.0-0:i386 libcanberra-gtk-module:i386 libgtk2.0-0:i386 libxxf86vm1:i386 libsm6:i386 lib32stdc++6 lib32ncurses5 lib32bz2-1.0 libgtk2.0-0:i386 libxxf86vm1:i386 libsm-dev:i386 libcanberra-gtk3-module:i386后然再运行jd-gui程序,画面即将展现~!~!

dex2jar.png

想阅读作者的更多文章,可以查看我的公共号:

振兴书城
文章目录
  1. 1. 工具
  2. 2. dex2jar使用
  3. 3. jd-gui使用
,