Java Jar源码反编译工具那家强
本文介绍下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源码反编译工具那家强的更多相关文章
- 解决AndroidKiller APK 反编译失败,无法继续下一步源码反编译!
报错背景 今天使用AndroidKiller V1.3.1,反编译一个APK,遇到如下报错: 当前 Apktool 使用版本:Android Killer Default APKTOOL 正在反编译 ...
- Java逆向武器库_反编译工具
1.反编译工具之_jd-gui 官网下载地址:http://java-decompiler.github.io/#jd-gui-download 使用: 下载后解压直接使用即可. jd-gui的优势是 ...
- myeclipse2014如何添加源码反编译工具插件
Eclipse下的Java反编译插件:Eclipse Class Decompiler,整合了目前最好的2个Java反编译工具Jad和JD-Core,并且和Eclipse Class Viewer无缝 ...
- Android Framework源码反编译
部分设备crash在Framework代码,但又和开源代码对应不上,这时需要拉取设备里面的Framework并反编译源代码排查问题. 1.获取Framework文件: adb pull /system ...
- browserify压缩合并源码反编译
最近在学习钉钉(一个协作应用)桌面应用的前端源码时候,发现其js源码是用browserify做模块开发.于是想还原其源码的原本的目录结构,学习它的目录分类以及业务划分. 前言 用过browserify ...
- shop++源码反编译----随笔
一.applicationContext-mvc.xml配置 1.读取配置文件 <context:property-placeholder location="classpath*:/ ...
- java常见反编译工具
1.Java反编译插件 —— Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins ...
- Atitit.java 反编译 工具 attilax 总结
Atitit.java 反编译 工具 attilax 总结 1. 三大核心核心引擎——1 2. JAD Jad attitude推荐这个1 2.1. Jdec.2 2.2. 二. 源码开放的 J ...
- 7 款开源 Java 反编译工具
今天我们要来分享一些关于Java的反编译工具,反编译听起来是一个非常高上大的技术词汇,通俗的说,反编译是一个对目标可执行程序进行逆向分析,从而得到原始代码的过程.尤其是像.NET.Java这样的运行在 ...
随机推荐
- 024_go语言中的缓冲通道
代码演示 package main import "fmt" func main() { messages := make(chan string, 2) messages < ...
- Spark Streaming——Spark第一代实时计算引擎
虽然SparkStreaming已经停止更新,Spark的重点也放到了 Structured Streaming ,但由于Spark版本过低或者其他技术选型问题,可能还是会选择SparkStreami ...
- DCGAN实现
DCGAN实现 代码 dcgan.py #!/usr/bin/env python # -*- coding: utf-8 -*- import os import math import argpa ...
- Java—API/Obiect类的equals toString方法/String类/StringBuffer类/正则表达式
API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) 就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了起来 ...
- JavaScript Babel说明
babel插件只是去唤醒 @babel/core中的转换过程 转换模块需要手动安装 npm install @babel/core 转换方式需要安装 @babel/preset-env babel默认 ...
- P、NP、NPC问题详解
转载地址 https://blog.csdn.net/bcb5202/article/details/51202589 P.NP.NPC 概念 > P问题:能够在多项式时间内解决的决策问题. - ...
- 谈谈对volatile关键字的理解
1. volatile的特性 volatile是Java语言提供的一种轻量级的同步机制,用来确保将变量得更新操作通知到其它线程.具备三种特性: 保证变量的可见性: 对于volatile修饰的变量进行单 ...
- JavaScript 基础三
遍历对象的属性 for...in 语句用于对数组或者对象的属性进行循环操作. for (变量 in 对象名字) { 在此执行代码 } 这个变量是自定义 符合命名规范 但是一般我们 都写为 k 或则 k ...
- java基础-01:dos命令
进入cmd方式 win + r 输入 cmd 随便进入一个文件夹 在导航栏输入cmd,回车即进入命令行 命令 盘符切换:直接输入 E: ,回车即可 查看文件夹下所有目录:dir 切换目录: cd 跨盘 ...
- guzzlehttp中的坑之带子目录的域名
1.问题: 线上开发环境配的是带子目录的域名,例如:https://aa.com/bb.使用nginx的location代理到项目的根目录.在代码中使用guzzlehttp访问这域名下的API时,一直 ...