JD-GUI

http://jd.benow.ca/

JD-GUI可到官網直接下載。官網除了JD-GUI之外,另提供了Eclipse(JD-Eclipse)和IntelliJ(JD-IntelliJ)的插件能讓這些IDE擁有反編譯Java程式的能力。

JD-GUI的用法十分簡單,開啟JD-GUI之後,再選擇要反編譯Jar或是Class檔案。

 

1. 下载工具

dex2jar下载地址:http://code.google.com/p/dex2jar/downloads/list

(备注:当时Google宣布退出大陆市场后,谷歌Google在兆维电信机房的服务器托管已终止,服务器都在中国香港和国外,加上经常受GFW的限制,现在无法打开网站,已很正常,假如无法打开可以多尝试几次)

JD-GUI下载:

jd-gui-0.3.3.windows.zip

Size : 691.67 KB

MD5 checksum : 15b3bfb9283bcd3f5db551762f4debeb

jd-gui-0.3.3.linux.i686.tar.gz

Size : 973.8 KB

MD5 checksum : 64491556a81f65b8ad58ef44c5ec99c0

jd-gui-0.3.3.osx.i686.dmg

Size : 1.37 MB

MD5 checksum : eb33e74f724d3b0a89ca4002a408ab49

2. 通过dex2jar将apk转换为jar文件

  • 从apk中抽取classex.dex文件

虽说dex2jar可以直接从apk抽取出jar文件,但是会经常遇到一些问题,所以常用的方法是将.apk文件,重命名为.zip,解压缩后,找到classes.dex文件

  • 运行dex2jar生成.jar文件

在Mac系统,打开终端,定位到dex2jar所在的目录,执行以下命令:

./dex2jar.sh absolute_path_classes.dex

在win系统,打开命令行,定位到dex2jar所在的目录,执行以下命令:

.\dex2jar.bat absolute_path_classes.dex

生成文件:classes_dex2jar.jar

3. 通过jd-gui将jar文件反编译为java文件

运行jd-gui,打开文件classes_dex2jar.jar,可以看到源码,同时,你还可以通过Save Source或Save All Source,将源码进行保存。

 

http://stackoverflow.com/questions/20100753/is-it-possible-to-compile-android-java-source-files-produced-jd-gui

参考链接:

http://magiclen.org/android-decompiler/

JD-GUI的更多相关文章

  1. Java反编译器安装及各版本介绍

    JAVA语言是1995年5月由SUN公司发布的,由于其安全性高.代码优化.跨平台等特性,迅速取代了很多传统高级语言,占据了企业级网络应用开发等诸多领域的霸主地位.         不过,JAVA最突出 ...

  2. 反编译与调试APK

    0×01前言 这年头,apk全都是加密啊,加壳啊,反调试啊,小伙伴们表示已经不能愉快的玩耍了.静态分析越来越不靠谱了,apktool.ApkIDE.jd GUI.dex2jar等已经无法满足大家的需求 ...

  3. 解密所有APP运行过程中的内部逻辑(转)

    转贴地址:http://www.freebuf.com/tools/54562.html 0×01前言 这年头,apk 全都是加密啊,加壳啊,反调试啊,小伙伴们表示已经不能愉快的玩耍了.静态分析越来越 ...

  4. JVM内核-原理、诊断与优化学习笔记(七):性能监控工具

    文章目录 系统性能监控 系统性能监控- linux uptime top vmstat(虚拟内存统计) pidstat 系统性能监控 - windows 任务管理器 Perfmon Process E ...

  5. 2017年陕西省网络空间安全技术大赛——人民的名义-抓捕赵德汉2——Writeup

    下载下来的文件是一个jar包,用die和binwalk检查,确实是一个纯正的jar包 java -jar FileName运行jar包,观察文件的外部特征,发现也是判断password的题目 ​ 用查 ...

  6. MacOS如何调整JD-GUI反编译工具字体大小

    how to change the fontsize of JD-GUI in MacOS? MacOS如何调整JD-GUI反编译工具字体大小? 问题描述 JD-GUI是一款比较好用的反编译工具,不小 ...

  7. JMeter学习-023-JMeter 命令行(非GUI)模式详解(一)-执行、输出结果及日志、简单分布执行脚本

    前文 讲述了JMeter分布式运行脚本,以更好的达到预设的性能测试(并发)场景.同时,在前文的第一章节中也提到了 JMeter 命令行(非GUI)模式,那么此文就继续前文,针对 JMeter 的命令行 ...

  8. Eclipse安装反编译插件JD(Java Decompiler)

    JD安装说明:*****Eclipse 插件安装*****1. 在网上搜索并下载jdeclipse_update_site.zip2. Eclipse -> Install New Softwa ...

  9. java GUI编程二

    java基础学习总结--GUI编程(二) 一.事件监听 测试代码一: 1 package cn.javastudy.summary; 2 3 import java.awt.*; 4 import j ...

  10. java GUI编程一

    一.AWT介绍 所有的可以显示出来的图形元素都称为Component,Component代表了所有的可见的图形元素,Component里面有一种比较特殊的图形元素叫Container,Containe ...

随机推荐

  1. 高性能Web架构

    高性能Web架构 转自 架构文摘 2017-02-07 王杰  引言 最新中国互联网络信息中心(CNNIC)发布的<第38次中国互联网络发展状况统计报告>,2016年6月,我国网民规模达7 ...

  2. 记一次netty版本冲突,报java.lang.NoSuchMethodError: io.netty.util.internal.ObjectUtil.checkPositive的问题

    elasticsearch 5.6中使用TransportClient初始化抛异常 在引入elasticsearch5.6的transportclient包中,会引入netty进行通信. <!- ...

  3. C#Lpt端口打印类的操作浅析

    C#LPT端口打印类的操作是什么呢?首先让我们看看什么是LPT端口(打印机专用)?LPT端口是一种增强了的双向并行传输接口,在USB接口出现以前是扫描仪,打印机最常用的接口.最高传输速度为1.5Mbp ...

  4. redis命令_SETEX

    SETEX key seconds value 将值 value 关联到 key ,并将 key 的生存时间设为 seconds (以秒为单位). 如果 key 已经存在, SETEX 命令将覆写旧值 ...

  5. ubuntu 安装python3.5

    wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz xz -d Python-.tar.xz .tar cd Python ...

  6. 跑测试没有web环境的情况

    有时候 当你跑测试的main方法的时候,会有一些莫名其妙的错误,明明mave pom的包是全的,web跑起来不会报错,可是在main方法下就是报错了,这个时候引入  <dependency> ...

  7. Mysql root密码忘记的解决办法

    Windows 版本: 1.打开安装目录下的my.ini 找到 [mysqld] 在下面加入 skip-grant-tables 2. 重启mysql服务 3.打开命令行 依次输入 USE mysql ...

  8. 大数据(8) - hive的安装与使用

    什么是Hive Hive:由Facebook开源用于解决海量结构化日志的数据统计. Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能. 本质是: ...

  9. 图片触及翻转效果 css3

    实现图片由左向右飞入回到最初设定位置 ,鼠标浮上去旋转显示另一张图片效果: html: <!DOCTYPE HTML> <html> <head> <meta ...

  10. easyui menu 添加hideItem/showItem 方法

    $.extend($.fn.menu.methods,{ showItem:function(jq,text){ return jq.each(function(){ var item = $(thi ...