procyon 编译手册

Java Jar包反编译修改全流程:从工具链到避坑指南 在Java开发中,Jar包作为封装好的组件库,广泛应用于各类项目。其核心原理是将Java字节码打包,便于分发和复用。然而,当遇到第三方库存在隐蔽Bug、老旧内部工具包源码丢失或需要学习优秀开源项目内部实现时,直接修改Jar包成为必要手段。这涉及到反编译技术,即将.class字节码文件转换回可读的Java源码,再通过修改和重新编译生成新的Jar包。这一过程的技术价值在于,它赋予了开发者应对特殊情况的终极能力,尤其是在官方修复不可得或源码遗失的场景下。在实际应用场景中,开发者常使用CFR、FernFlower等 阅读详情

前言

procyon 是比较好的jar、class 反编译工具,但作者在编译上面言之过少,导致像我等小菜搞个Build都要折腾半天,这里分享一下 procyon的Build过程,大家少走点弯路。


价值

procyon 相对其他的反编译软件,反编译出来的java源码可读性更高。
 
各个反编译软件都会有其局限性,并不完美,procyon也有问题。

问题

这里有个问题,用procyon 处理的反编译文件,如果代码中包含try...catch 则很有可能出现下面这种恶心的情况。大家在使用时,可以结合其他的反编译软件灵活使用。(哪位大大知道如何解决这个问题还请不吝赐教)
 

前置工具

1. maven 3.2.5 或以上版本


编译

源码地址:https://bitbucket.org/mstrobel/procyon
点Downloads 选择 Download repository 也就是下载最新的源码打包文件。
(下面列表中有已经编译好的 jar 包,不想编译的同学直接下载使用就行了)
注意官方文档中的这句话
 
就这一句话就给带过了 = =
直接google Maven Central 打开 maven.org 搜索 procyon 注意不是文档中给出的 org.bitbucket.mstrobel 关键字,那个已经过时了!找到 org.jboss.windup.decompiler 把它的pom 文件保存到我们解压源码的目录 Procyon.Decompiler 目录下面,命名为 pom.xmls
 
项目还依赖 jcommander 包,直接下载 https://github.com/cbeust/jcommander/releases
解压后把 com 文件夹下的内容复制到 Procyon.Decompiler 的 com 文件夹下。
同样的把本地同级的 Procyon.CompilerTools、Procyon.Core、Procyon.Expressions、Procyon.Reflection 文件夹下的 com 目录下的文件都复制过去。(我对maven的理解不深哈,实际Build可能不用这一步的复制,哪位maven大神看到了还望不吝赐教啊)
cmd 到当前目录,运行 mvn compile 和 mvn package,如果一切顺利则会在 target 目录下生成 decompiler-procyon-2.6.0.Final.jar 就是我们的目标文件了。
此时jar 包清单文件还没有指定Main-Class 文件,打开jar 包找到MANIFEST.MF文件,加入下面内容 Main-Class:  com.strobel.decompiler.DecompilerDriver<回车>
到此编译就算完成了。


使用

java -jar decompiler-procyon-2.6.0.Final.jar -jar <要反编译的jar包.jar> -o <保存目录>


从命令行到GUI:手把手教你用Java Decompiler分析第三方Jar包(附常见错误排查) 本文详细介绍了如何使用Java Decompiler工具链分析第三方Jar包,从命令行到GUI的完整工作流,包括工具选型、实战流程、常见错误排查及高级技巧。特别适合Java开发者快速掌握反编译技术,提升代码分析与调试效率。 阅读详情

相关推荐

常用的java反编译工具介绍

Java反编译工具是软件开发和逆向工程领域的重要工具,它们可以帮助开发者理解、分析和修改编译后的Java字节码文件。不同的工具有不同的特点和优势,选择合适的工具取决于具体的需求和偏好。然而,使用这些工具时必须谨慎,并遵守相关的法律法规。

u013558123的博客 2953

使用procyon-decompiler完成反编译

转自:https://blog.youkuaiyun.com/z_k_h/article/details/80340451 procyon-decompiler jar包地址:https://bitbucket.org/mstrobel/procyon/downloads/?tab=downloads // 反编译jar包 java -jar procyon-decompiler-0.5.36....

adaadadsa的博客 1823

Eclipse DSL 2023-12 R 安装配置与建模工具链实战指南

Eclipse 语言工作台为领域特定语言(DSL)开发者和模型驱动工程(MDD)提供了一体化环境。其核心原理基于 Xtext 的语法解析与 EMF 元建模,通过预装 DSL 组件,开发者无需手动整合插件即可快速搭建语法编辑器、代码生成器与图形化建模工具。在工程实践中,2023-12 R 正式版针对 Windows x86-64 平台提供了完整支持,配合 JDK 17+ 可稳定运行。无论是创建 Xtext 语法项目、基于 Sirius 构建可视化编辑器,还是利用 Acceleo 生成代码,都能显著降低建模工具

weixin_34204722的博客 406

探索Procyon:一款开源的Java和.NET编译器与反编译器

探索Procyon:一款开源的Java和.NET编译器与反编译器 项目地址:https://gitcode.com/gh_mirrors/pr/procyon 是一个强大的开源项目,由Michael Strobel创建,它提供了对Java和.NET平台的编译器、反编译器以及相关工具的实现。本篇文章将深入剖析其技术特性,应用场景,并解释为什么你应该考虑将其纳入你的开发工具箱。 项目简介 Procyo...

gitblog_00017的博客 1381

Unity Acceleratorc与Cache Server unity的缓存服务器

文章目录1.作用概述2.用法(使用,看这个就够了)服务端下载部署Unity Acceleratorc修改http管理端口修改Editor连接端口客户端使用(设置好一次提交设置,团队拉取即可全部生效)3.测试平台切换测试资源导入测试(打开编辑器的情况下)项目启动测试(不打开编辑器的情况下)4.不同版本表现5.服务端监控6.服务端缓存7.冲突8.预警9.不同项目/不同配置-同种资源10.缓存清除 1.作用概述 编辑器模式下,导入资源,切换平台unity都会重新识别资源,大型项目很浪费时间,使用Cache Ser

euphorias的博客 3812

Python与PyCharm安装配置教程:从零搭建开发环境

编程入门的第一步是搭建开发环境,而Python解释器与IDE工具的选择常让新手困惑。Python作为解释型语言,负责将代码翻译为机器指令,而PyCharm作为集成开发环境,提供代码编辑、调试与项目管理功能,两者协同工作构成高效开发基础。环境变量PATH的配置是安装过程中的关键环节,正确处理可避免“python不是内部或外部命令”的常见错误。理解pip包管理机制,则能轻松安装第三方库并管理项目依赖。从下载官方安装包到运行第一个Hello World程序,再到利用虚拟环境隔离应用依赖,这套流程适用于Window

benben 685

比较好用的Java反编译工具Procyon与CFR

最近在反编译Java文件发现jd-gui等已经不够正常使用,经常会反编译缺少内容或者编译不正常。 在网上找到两个很好的反编译工具Procyon与CFR,不仅小巧而且使用很便捷。命令行就能够完成操作,不用安装。 使用CFR进行反编译 1、将需要反编译的jar包放与cfr-0.144.jar放一起; 2、进入cmd命令编辑页面; 3、用cd命令进入jar包所在路径; 3、使用命令java -jar命令进行反编译; ** 相关命令介绍 ** ```bash java -jar         反编译命令 cfr

Pro_jhf的博客 3209

abaqus 根据坐标施加载荷- Analytical Field 载荷映射

在一些类型的分析中,需要将按位置分布的载荷施加到结构上,比如流体分析导出了结构的气动载荷、或者温度载荷,需要将压强分布、温度分布载荷施加到固体上。这种分析可以使用abaqus中的Analytical Field实现。 1 例子 1.1 结构 一个100*100mm的面,面的载荷分布函数为p=(x2+y2)0.5/((20.5)*100) MPa,即(0, 0)的压强为0,(100, 100)的压强为1。 1.2 载荷 载荷函数:p=(x^2+y^2)^0.5/((2^0.5)*100) in exce.

shengyutou的博客 2万+

【procyon-decompiler】使用procyon-decompiler递归反编译文件下所有的jar并查找所有反编译java文件内容

实际速度是很慢的,比如反编译spark/jars目录需要1个多小时,grep速度很快,几秒即可。因为如果使用反射加载类时候,java不会打印具体是哪个jar的哪个类加载其他类出现问题。(2)使用shell的grep命令查找.java文件的文本呢内容,如查找。支持java8,更新版本请看官方文档。本例使用的linux环境是centos7,java8。暂无法解决,scala一些类或方法的反编译报错问题。(1)反编译jar,生成.java文件,准备使用。,其支持命令行操作,github下载地址。

lisacumt的专栏 2752

ZBrush 2021来了

这次给大家带来的是:zbrush2021.1.1 win安装教程 1.下载压缩包之后解压到文件夹当中,然后打开ZBrush_2021_Installer.exe进行软件安装, 如下图 2.在这里我们保持默认的简体中文版即可,然后点击确认,如下图 3.第三步我们点击前进即可,如下图 4.第四步我们来到许可协议,在这里我们点击我接受此协议,然后点击前进,如下图 5.第五步我们来到安装目录,在这里我们可以设置安装路径,如下图 6.在这里我将安装目录修改安装到E盘为例,然后点击下一

3D游戏建模 1188

专项1.CCS代码补全与快捷键优化全攻略

本文全面解析CCS开发环境的代码补全功能与快捷键优化技巧,包括内容辅助触发机制、快捷键自定义配置、编码效率提升方法等实用内容。通过详细步骤指导开发者优化CCS配置,实现高效的代码自动补全和个性化快捷键设置,显著提升嵌入式开发效率。

kotlin6android的博客 223

3步解锁Java字节码:Recaf逆向分析实战手册

想要深入了解Java应用的内部工作原理吗?Recaf是一款强大的现代Java字节码编辑器和反编译器,它让逆向工程变得前所未有的简单。无论你是想学习Java字节码、分析第三方库,还是进行安全审计,Recaf都能为你提供专业级的工具支持。 ## 🚀 什么是Recaf? Recaf是一个开源的Java字节码编辑器和反编译器,旨在为开发者和安全研究人员提供直观、高效的Java逆向工程体验。与传统的命

gitblog_00861的博客 1529

RK3588 部署 YOLO26 目标检测:PT → ONNX → RKNN 全流程

YOLO26n 在 RK3588 上 INT8 量化后 NPU 推理约 15ms,系统 FPS 约 55,可以覆盖边缘端实时检测需求。模型从 PT 到 RKNN 的转换要用opset=11避免算子兼容问题。先用 YOLO26n + 640 输入跑通全链路,确认推理结果正确后再做性能调优。

m0_64661770的博客 306

终极Java字节码分析工具:Bytecode Viewer完整使用手册

Bytecode Viewer(BCV)是一款功能强大的Java 8+字节码分析与逆向工程套件,专为Java和Android应用程序的反编译、编辑和调试而设计。这款**终极Java字节码分析工具**集成了6大主流反编译器,支持多种文件格式,是安全研究人员和开发者的必备利器。🚀 ## 🔍 Bytecode Viewer核心功能解析 这款**Java字节码分析工具**提供了全方位的逆向工程支持

gitblog_00176的博客 714

滑模控制算法(SMC)讲解-案例(附C代码)

该文章介绍了滑模控制算法的原理实现步骤,特点及关键问题,最后以车辆控制案例来讲解滑模控制的整个步骤实现

heda3的博客 4111

YOLOv5 自定义模型 Android 部署完整指南

本文详细介绍了将YOLOv5模型部署到Android设备的完整流程,包含三个核心部分:首先验证官方模型测试,确保基础环境配置正确;随后进行模型转换,从PyTorch导出ONNX格式并优化,再转换为NCNN格式;最后在Android项目中集成自定义模型,包括文件替换、参数修改和代码适配。教程基于YOLOv5 6.1版本,使用NCNN框架进行移动端推理,涵盖了常见问题解决方案和关键配置要点,为开发者提供了从训练到部署的完整技术路线。

FJN110的博客 592

Java反编译实战:IDEA插件反编译jar包并修改class重新打包

在Java开发中,反编译是一项重要的逆向工程技能,尤其在面对没有源码的第三方依赖或历史遗留模块时。Java字节码是JVM执行的中间表示,而反编译器的作用就是将其还原为可读的Java源码。其中,IDEA内置的FernFlower插件凭借与IDE深度集成、支持依赖跳转和调试映射,成为开发者的首选工具。通过它,我们可以快速查看class文件或整个jar包的逻辑结构,甚至在必要时修改反编译后的源码并重新编译回class,再打回jar包完成修复。本文从字节码与反编译的原理出发,系统讲解使用IDEA反编译插件的完整操作

weixin_33755557的博客 166

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JD-GUI反编译实战:5分钟搞定Java字节码还原(附常见报错解决方案)

本文详细介绍了如何使用JD-GUI反编译工具快速还原Java字节码。从工具下载、环境部署到核心操作,提供了跨平台启动报错的解决方案,并分享了处理反编译乱码、失败等高级技巧,帮助开发者高效分析和恢复Java源码。

weixin_29250403的博客 329

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

反编译实战:从机器码到C代码的逆向工程全流程解析

反编译作为逆向工程的核心技术,旨在从机器码中还原出可读的C语言伪代码,是安全分析、漏洞挖掘与二进制兼容性研究的基础能力。其底层原理基于对编译链路的逆向推导:从预处理、编译、汇编到链接,每一阶段都会丢失信息,反编译器则需要通过反汇编、函数识别、控制流分析和类型恢复,将二进制“黑盒”重新变成“白盒”。理解这一原理,有助于分析不同优化级别下代码形态的巨大差异,也能更合理地进行工具选型。Ghidra、IDA Pro等主流逆向工具各有适用场景,而工程实践中对字符串引用、结构体偏移和跳转表的解读技巧,往往决定了逆向效率

weixin_33795806的博客 199

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Optimism contracts-bedrock 测试工具 go-ffi 深度解析:基于 Foundry FFI 的差分测试与 Merkle Trie 模糊测试

`ctb-go-ffi`(`contracts-bedrock` 的 Go FFI 工具)是 Optimism 仓库中一个轻量级 Go 二进制,专为在 `contracts-bedrock` 智能合约测试套件中通过 Foundry 的 `ffi` cheatcode 提供链下计算能力而设计。本文将以 [go-ffi 的 README](https://link.gitcode.com/i/8b10

gitblog_00155的博客 763

Java开发不得不了解的各种插件、工具、网站!!!

文章目录1. 前言2. IDEA 插件2.1 Alibaba Java Coding Guidelines2.2 jclasslib bytecode viewer2.3 Codota2.4 Auto filling Java call arguments2.5 GenerateO2O、 GenerateAllSetter2.6 Material Theme UI2.7 Rainbow Brackets2.8 Maven Helper2.9 FindBugs2.10 SequenceDiagram2.11

Apple_Boy的博客 934

Java字节码可视化分析神器:JD-GUI完整指南

你是否曾经面对编译后的Java字节码文件,感觉像是在阅读天书?当第三方库出现问题却无法查看源码时,是否感到束手无策?JD-GUI正是解决这些痛点的终极工具。作为一款开源的Java反编译图形界面工具,它能将神秘的.class文件瞬间转化为可读的Java源代码,让字节码分析变得直观高效。 **核心关键词**:Java反编译工具、字节码可视化、源码恢复、Java逆向工程 **长尾关键词**:.clas

gitblog_00835的博客 699

Java字节码逆向工程实战:从.class文件还原高质量源码的核心技术与工具

Java字节码是Java虚拟机(JVM)执行的中间指令集,它承载了编译后的程序逻辑。理解字节码结构是深入Java技术栈的基础,其价值在于能够进行底层调试、性能分析和安全审计。在软件维护、第三方库研究和遗留系统分析等应用场景中,开发者常面临仅有字节码而无源码的困境。此时,反编译技术成为关键,它能将面向机器的指令逆向转化为可读的Java源代码。本文聚焦于字节码逆向工程,深入解析CFR、FernFlower等主流反编译工具的原理与选型,并探讨如何应对混淆与优化带来的挑战,最终实现从字节码到可编译源码的高质量还原。

weixin_34417183的博客 451

OWASP MASTG 静态分析技术指南:白盒源码审查与黑盒逆向分析实战

> 本文基于 OWASP Mobile Application Security Testing Guide(MASTG)中的通用技术条目 [MASTG-TECH-0048(Static Analysis)](https://link.gitcode.com/i/2af193ea9d953b3100334735914377ac),系统讲解移动应用安全测试中静态分析的方法论:面向白盒测试的源码审查环

gitblog_00963的博客 378

DSView:基于 sigrok 的开源多合一仪器 GUI——架构、构建与源码导览

DSView 是 DreamSourceLab 为其逻辑分析仪(DSLogic 系列)与数字示波器(DSCope 系列)提供的开源图形界面程序,整个项目构建在 sigrok 开源信号分析框架之上。本文结合仓库中的构建脚本、设备驱动源码与应用入口代码,说明 DSView 的分层架构、设备接入机制、依赖与编译安装方式,以及其 GPL 许可条款的由来,帮助你在 Linux、macOS、Windows 上

gitblog_00972的博客 170

非主流引擎快速改造路线图:用 universal-modder 攻克 GameMaker、RPG Maker、Ren‘Py、Paradox 与 HTML5 游戏

> 本文是 universal-modder 项目 `mod-any-game` 技能引擎手册中 [misc-engines.md](https://link.gitcode.com/i/28ade659efac971bff9ecae5da694af7) 的深度展开,聚焦大引擎(Unity/Unreal/Godot/Source)之外的长尾游戏引擎与框架:GameMaker、RPG Maker、R

gitblog_00209的博客 255
上一篇: CentOS 某服务器搭建问题收集
下一篇: gdb 问题收集
deathmemory
博客等级 码龄16年 44粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值