一:dex反编译

工具依赖:dex2jar-2.0

获取工具:提供两个链接,一个是github的,需要翻墙,有更新,另一个不用翻墙的,但从16年后就没有更新了

Releases · pxb1988/dex2jar · GitHubhttps://github.com/pxb1988/dex2jar/releases

dex2jar download | SourceForge.nethttps://sourceforge.net/projects/dex2jar/

命令简析:

dex2jar提供了一组批处理和sh脚本来支持windows和Linux上执行

下面是git hub上 Bob Pan 在 3 Nov 2014 写的操作流程,与现在的实际条件已经有所不同,但这几步流程是一样的,有所不同的是jdk现在可以使用jdk8,后续应该还可以使用jdk17。

  1. Install JDK7

     // For Ubuntu sudo apt-get install openjdk-7-jre
    
  2. Download dex2jar from dex2jar - Browse Files at SourceForge.net

  • Extract dex2jar-version.zip to a folder. for example /home/panxiaobo/, _C:_

      // For Linuxunzip -x dex2jar-version.zip -d /home/panxiaobo
    
  1. use dex2jar to generate .jar file. dex2jar will generate a file named someApk-dex2jar.jar in the working folder.

     // For Linux, Mac OSX, Cygwinsh /home/panxiaobo/dex2jar-version/d2j-dex2jar.sh /home/panxiaobo/someApk.apk// For WindowsC:\dex2jar-version\d2j-dex2jar.bat someApk.apk
    
  2. use a decompiler to view the source.

    • jd-gui
    • JAD
    • Procyon
  3. that's it

下面的链接是反编译出jar包之后的查看工具,jd-gui并不是唯一的工具,使用AS也是可以通过加载jar包的方式但看到反编译出来的代码。jd使用很简单,和普通的文件工具差不多,就不专门介绍了。

https://github.com/java-decompiler/jd-gui/releases/https://github.com/java-decompiler/jd-gui/releases/

二:odex反编译

工具依赖:baksmali-2.5.2.jar ,smali-2.5.2.jar

获取工具:以下站点提供了原始的jar包下载,读者可以按需下载对应版本。如果有兴趣,读者也可以在这个git仓库上阅读源码。JesusFreke / smali / Downloads — Bitbuckethttps://bitbucket.org/JesusFreke/smali/downloads/

示例:反编译serivces.odex文件,

第一步把odex解码为smali文件,这一步会把对应odex文件编译出当前目录的out路径下

java -jar baksmali-2.5.2.jar x services.odex

第二步把smali文件编译为dex包

java -jar smali-2.5.2.jar ass -o classes.dex out

第三步,使用dex反编译方法,反编译出源代码。

注意,odex反编译时,应尽可能保证当前odex有依赖的包都在当前路径下

命令简析:

针对特定的版本,命令可能存在差异,可以使用 -h或--help列出当前版本的命令列表

如我使用的2.5.2的版本,如果是用于反编译 odex或oat文件,使用deodex,de,x三个命令都可以

参考命令如下:java -jar baksmali-2.5.2.jar x services.odex

E:\tools\bux2.0\push\bak\framework\oat\arm64>java -jar baksmali-2.5.2.jar h
usage: baksmali [--version] [--help] [<command [<args>]]

Options:
  --help,-h,-? - Show usage information
  --version,-v - Print the version of baksmali and then exit

Commands:
  deodex(de,x) - Deodexes an odex/oat file
  disassemble(dis,d) - Disassembles a dex file.
  dump(du) - Prints an annotated hex dump for the given dex file
  help(h) - Shows usage information
  list(l) - Lists various objects in a dex file.

See baksmali help <command> for more information about a specific command

E:\tools\bux2.0\push\bak\framework\oat\arm64>

smali的命令列表如下

E:\tools\bux2.0\push\bak\framework\oat\arm64>java -jar smali-2.5.2.jar h
usage: smali [-v] [-h] [<command [<args>]]

Options:
  -h,-?,--help - Show usage information
  -v,--version - Print the version of baksmali and then exit

Commands:
  assemble(ass,as,a) - Assembles smali files into a dex file.
  help(h) - Shows usage information

See smali help <command> for more information about a specific command

android java反编译相关推荐

  1. ubuntu java反编译,[原创]Ubuntu下简单配置反编译工具以及其开发环境

    0x0:前言 个人电脑重新换了下系统,Ubuntu14.04,刚好需要配置下android的反编译环境,这里简单记录一下,以供有需要的朋友参考. 其实最简单的,只需要apktool就可以了,不过有编码 ...

  2. 【转】Android APK反编译就这么简单 详解(附图)

     转自:http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 分类: and ...

  3. java反编译工具_ReverseTool逆向工具集合

    反向工具 逆向工具集合 真棒骇客 Java和Jar(Android) jd-gui jar包浏览工具,对应的IDE插件,JD-Eclipse / JD-IntelliJ Luyten一个用于Procy ...

  4. java反编译工具_JDA Java反编译工具的下载和使用手册

    JDA(javadecompile analysis)是一款以dex为核心的java反编译工具,同时支持apk.dex.jar文件的反编译,支持动态重命名.该软件主要是用来反编译分析代码而不是反编译出 ...

  5. android apk反编译(获取源码,资源文件等)

    android apk反编译,是让你可以去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局是怎么实现的 一.当然我们也需要借助工具: apktool (资源文件获取,可以提取出图片文件和布局文件 ...

  6. 记录Android Killer反编译时遇到的异常

    使用Android Killer反编译,出现以下异常: 一.resource spec: 0x01010543 当前 Apktool 使用版本:Android Killer Default APKTO ...

  7. Java 反编译工具的使用与对比分析

    前言 Java 反编译,一听可能觉得高深莫测,其实反编译并不是什么特别高级的操作,Java 对于 Class 字节码文件的生成有着严格的要求,如果你非常熟悉 Java 虚拟机规范,了解 Class 字 ...

  8. Android APK 反编译的基本工具和步骤

    一站解决反编译 JADX是一个可以直接反编译apk的程序,无需下面繁琐的步骤.推荐使用! 准备材料 dex2jar Android .dex 文件和Java的.class文件的转换 ApkTool 反 ...

  9. android apk 反编译 工具下载,android APK反编译工具Apktool

    这是android APK反编译工具Apktool下载,集成 jd-gui.jad.dex2jar.apktool.使用该工具可以反编译apk文件,查看xml以及java源代码,默认使用jad反编译, ...

  10. Android 的反编译 (附愤怒的小鸟源码下载)

    读源码是最好的学习方法,下面我们以愤怒的小鸟为例,看看如何把一个android游戏反编译成可读的源码. 工具介绍: 1.apktool   这个工具用来解压xml文件 到http://code.goo ...

最新文章

  1. Spring源码分析【1】-Tomcat的初始化
  2. 关于java中的字符流的一个使用例子
  3. oracle将多行转成多列,oracle 多行转多列查询
  4. 磁盘占用百分百?Windows 10必做各项优化
  5. c语言运动会分数统计系统_初学C语言Bug大赏
  6. linux第三方模块参数,Swift on Linux – 导入第三方模块
  7. mysql create routine 权限的一些说明
  8. Sql Plus 操作
  9. Window 远程连接 Ubuntu 系统
  10. 基于matlab的信号与系统实验,基于MATLAB的《信号与系统》实验系统
  11. centos7设置DNS
  12. 管理变量、机密和事实
  13. manjaro 中文输入法
  14. 微信上线支付分对标芝麻信用分,教你如何开通!
  15. 使用Trinamic TMC2300步进驱动器做一个迪斯科灯项目
  16. Linux文件类型发布啦!
  17. java.sql.SQLException: The server time zone value‘xxxxxxxx‘ is unrecognized
  18. 如何通过三视图判断立方体个数_中考难点,由三视图确定小立方体个数的问题求解有策略...
  19. 应用层协议 HTTP HTTPS
  20. 【共享经济】披着共享经济外衣的租赁经济

热门文章

  1. 不要在作死的边缘试探(最后那个英雄手势挺好玩儿的)
  2. PLSql不用安装Oracle客户端,实现远程连接
  3. mybatis关联查询resultmap的使用详解resultmap
  4. uva 12230 - Crossing Rivers(概率)
  5. Visual Studio启动、附加进程调试,多个Web Application时启动多个WebServer关闭方法
  6. python实现多进程监听声音播放并绘图
  7. [转载] 在 CentOS 7 中安装 MySQL 8
  8. iptables 防护基本 DDoS 配置
  9. 程序员!你还能年轻几岁?
  10. WINDOWS剪切板内容 复制到vi编辑器使用