专栏首页振兴的Android修炼手册Ubuntu14.04反编译Apk[试试就知道]

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

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

工具

dex2jar使用

  • 先参照上边提供的地址下载并解压dex2jar
  • 然后再使用unzip命令解压apk,我们会在目录下边看到.dex文件
  • 执行反编译命令 sh d2j-dex2jar.sh /home/im/Desktop/dex2jar/-debug-apk/classes.dex

上述命令执行的过程中可能会遇到一些问题:

问题1:提示:d2j-dex2jar.sh: 36: d2j-dex2jar.sh: ./d2j_invoke.sh: Permission denied 原因:d2j_invoke.sh文件没有执行权限 解决:添加可执行权限:sudo chmod +x d2j_invoke.sh

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

正确运行结果:

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ViewRootImpl的独白,我不是一个View(布局篇)

    前一段时间写过两篇关于View的文章 Activity中的Window的setContentView 和 遇见LayoutInflater&Factory 。分...

    静默加载
  • 如何合理地估算线程池大小?

    制定线程池的长度并不是一门精密的科学,需要做的仅仅是避免“过大”和“过小”者两个极端情况。如果一个线程池过大,那么线程对稀缺的CPU和内存资源的竞争,会导致内存...

    静默加载
  • Java并发编程之线程池必用知识点

    再使用线程池之前,我们应该了解为什么需要使用线程池。进行执行任务(task)的时候我们一般情况是new Thread进行执行,如果进行大量的并发任务的时候呢?

    静默加载
  • 5.P、V操作和消费者问题 原

    一组生产者进程生产产品给一组消费者进程消费。为使他们并发执行,设一个有n个缓冲区的缓冲池,生产者一次向一个缓冲区中投入消息,消费者从一个缓冲区中取得消息。生产者...

    青木
  • 混乱的Linux内核实时线程优先级

    Linux会把进程分为普通进程和实时进程,普通进程采用CFS之类调度算法,而实时进程则是采用SCHED_FIFO或SCHED_RR。

    Linux阅码场
  • Linux文本流

    我之前已经用文本编辑器修改过文本。现在,我们要深入理解所谓的“文本”。 文本流 在计算机中,所谓的数据就是0或1的二进制序列,但严格来说,Unix以字节(byt...

    Vamei
  • Qt 5.11.1 静态编译

    离线安装包:http://download.qt.io/archive/qt/5.11/5.11.1/

    我与梦想有个约会
  • STREAM:一款scRNA-seq拟时分析工具

    scRNA-seq数据分析想必大家都比较熟悉了,自2014年nature biotechnology提出单细胞拟时分析或称为轨迹分析(Trajector...

    百味科研芝士
  • fastjson—Map和List对象间的转换

    fastjson 是阿里巴巴推出的,一个Java语言编写的高性能JSON 处理器,遵循JSON标准 http://json.org/ ,支持各种JDK 类型。...

    软测小生
  • AR内容创作商Plattar获110万美元种子轮投资

    镁客网

扫码关注云+社区

领取腾讯云代金券