本文介绍下Java Jar常见的反编译工具,并给出使用感受。

反编译JAR能干什么: 排查问题、分析商业软件代码逻辑,学习优秀的源码思路。

JD-GUI

下载地址:http://java-decompiler.github.io/

点评:支持的java版本不会太高,中文注释能够正常显示。

Luyten

下载地址:https://github.com/deathmarine/Luyten

点评: 支持更多,但是中文不正常显示。底层使用的是Procyon。

Jadx

下载地址:https://github.com/skylot/jadx

点评:卡了很长时间都没显示解析完,很耗内存与时间。

Bytecode Viewer

下载地址:https://github.com/Konloch/bytecode-viewer

点评:大部分都能正常查看,也能够查看字节码指令。

Class Shark

下载地址:https://github.com/google/android-classyshark

点评: 测试两个jar都直接失败,放弃。

综合点评

jd-gui.exe功能多但是支持java版本不太高,Luyten支持版本更多,但是中文显示不好。Bytecode Viewer也不错。Jadx强项在APK逆向方面,更吃资源。Class Shark使用未成功,你们看着办。

终极大招

实际上面的反编译的工具失败了,我们还可以利用Idea自带的反编译工具。

新建一个Maven项目,在项目的pom中加入需要反编译的Jar包,groupId、artifactId可以随便写。

<dependency>
<groupId>vip.codehome</groupId>
<artifactId>test</artifactId>
<scope>system</scope>
<version>1.0</version>
<systemPath>C:\\Users\\codehome\\Desktop\\{jar名称}.jar</systemPath>
</dependency>

Java Jar源码反编译工具那家强的更多相关文章

  1. 解决AndroidKiller APK 反编译失败,无法继续下一步源码反编译!

    报错背景 今天使用AndroidKiller V1.3.1,反编译一个APK,遇到如下报错: 当前 Apktool 使用版本:Android Killer Default APKTOOL 正在反编译 ...

  2. Java逆向武器库_反编译工具

    1.反编译工具之_jd-gui 官网下载地址:http://java-decompiler.github.io/#jd-gui-download 使用: 下载后解压直接使用即可. jd-gui的优势是 ...

  3. myeclipse2014如何添加源码反编译工具插件

    Eclipse下的Java反编译插件:Eclipse Class Decompiler,整合了目前最好的2个Java反编译工具Jad和JD-Core,并且和Eclipse Class Viewer无缝 ...

  4. Android Framework源码反编译

    部分设备crash在Framework代码,但又和开源代码对应不上,这时需要拉取设备里面的Framework并反编译源代码排查问题. 1.获取Framework文件: adb pull /system ...

  5. browserify压缩合并源码反编译

    最近在学习钉钉(一个协作应用)桌面应用的前端源码时候,发现其js源码是用browserify做模块开发.于是想还原其源码的原本的目录结构,学习它的目录分类以及业务划分. 前言 用过browserify ...

  6. shop++源码反编译----随笔

    一.applicationContext-mvc.xml配置 1.读取配置文件 <context:property-placeholder location="classpath*:/ ...

  7. java常见反编译工具

    1.Java反编译插件 —— Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins ...

  8. Atitit.java 反编译 工具  attilax 总结

    Atitit.java 反编译 工具  attilax 总结 1. 三大核心核心引擎——1 2. JAD  Jad  attitude推荐这个1 2.1. Jdec.2 2.2. 二. 源码开放的 J ...

  9. 7 款开源 Java 反编译工具

    今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其是像.NET.Java这样的运行在 ...

随机推荐

  1. 024_go语言中的缓冲通道

    代码演示 package main import "fmt" func main() { messages := make(chan string, 2) messages < ...

  2. Spark Streaming——Spark第一代实时计算引擎

    虽然SparkStreaming已经停止更新,Spark的重点也放到了 Structured Streaming ,但由于Spark版本过低或者其他技术选型问题,可能还是会选择SparkStreami ...

  3. DCGAN实现

    DCGAN实现 代码 dcgan.py #!/usr/bin/env python # -*- coding: utf-8 -*- import os import math import argpa ...

  4. Java—API/Obiect类的equals toString方法/String类/StringBuffer类/正则表达式

    API  Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来 ...

  5. JavaScript Babel说明

    babel插件只是去唤醒 @babel/core中的转换过程 转换模块需要手动安装 npm install @babel/core 转换方式需要安装 @babel/preset-env babel默认 ...

  6. P、NP、NPC问题详解

    转载地址 https://blog.csdn.net/bcb5202/article/details/51202589 P.NP.NPC 概念 > P问题:能够在多项式时间内解决的决策问题. - ...

  7. 谈谈对volatile关键字的理解

    1. volatile的特性 volatile是Java语言提供的一种轻量级的同步机制,用来确保将变量得更新操作通知到其它线程.具备三种特性: 保证变量的可见性: 对于volatile修饰的变量进行单 ...

  8. JavaScript 基础三

    遍历对象的属性 for...in 语句用于对数组或者对象的属性进行循环操作. for (变量 in 对象名字) { 在此执行代码 } 这个变量是自定义 符合命名规范 但是一般我们 都写为 k 或则 k ...

  9. java基础-01:dos命令

    进入cmd方式 win + r 输入 cmd 随便进入一个文件夹 在导航栏输入cmd,回车即进入命令行 命令 盘符切换:直接输入 E: ,回车即可 查看文件夹下所有目录:dir 切换目录: cd 跨盘 ...

  10. guzzlehttp中的坑之带子目录的域名

    1.问题: 线上开发环境配的是带子目录的域名,例如:https://aa.com/bb.使用nginx的location代理到项目的根目录.在代码中使用guzzlehttp访问这域名下的API时,一直 ...