Java进阶:如何反编译jar包获取源码

这篇具有很好参考价值的文章主要介绍了Java进阶:如何反编译jar包获取源码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.引言

某些没有提供源码的历史遗留项目,或者第三方jar包,我们常常需要进行二开,但是又没有源码,这时就需要进行反编译获取到项目源码。

当然也不是所有的jar都能反编译的,某些做了防编译处理的则不能,但对于我们历史遗留的项目进行反编译则是完全可行的

今天我们就来看看如何进行反编译

1. 通过JD-GUI反编译

JD-GUI是一款开源的反编译软件,通过它我们可以比较方便的进行jar包的反编译。

1、其下载地址如下所示

JD-GUI下载地址

jar包反编译成源代码,java进阶之路,java,jar,macos

2、下载完成后,解压压缩包即可

jar包反编译成源代码,java进阶之路,java,jar,macos

3、我这里以mac系统为例,双击打开解压文件夹中JD-GUI程序

新版m1芯片mac可能会出现如下报错

jar包反编译成源代码,java进阶之路,java,jar,macos

提示内容描述的是需要jdk1.8以上,实际上并不是这个原因,我这里使用的是jdk11,要解决这个问题还需要修改一个文件

2、右键点击JD-GUI,点击显示包内容

jar包反编译成源代码,java进阶之路,java,jar,macos

3、进入Contents/MacOS文件夹,打开universalJavaApplicationStub.sh文件,使用新版的文件替换,新版文件内容可以在如下地址复制

https://raw.githubusercontent.com/tofi86/universalJavaApplicationStub/master/src/universalJavaApplicationStub

jar包反编译成源代码,java进阶之路,java,jar,macos

因为是外网地址,某些同学访问可能有问题,所以我单独将修改过后的软件包放在如下所示的网盘地址中,有需要可直接下载

JD-GUI mac修改版网盘下载地址
提取码: vkcs

4、双击打开软件,将需要反编译的jar包拖到软件界面中

jar包反编译成源代码,java进阶之路,java,jar,macos

5、选中全部文件,点击File-Save All Sources保存反编译完的源码,选择保存路径

jar包反编译成源代码,java进阶之路,java,jar,macos

jar包反编译成源代码,java进阶之路,java,jar,macos

6、等待反编译完成即可

jar包反编译成源代码,java进阶之路,java,jar,macos

7、反编译完成后,在BOOT-INF/classes文件夹下可以看到生成的源码

jar包反编译成源代码,java进阶之路,java,jar,macos

如此我们就拿到了想要的源码了,简单快捷!当然生成的源码在文件夹结构上会有些偏差,只需要手动调整一下即可,核心源码是可以完整捕捉的。文章来源地址https://www.toymoban.com/news/detail-798070.html

到了这里,关于Java进阶:如何反编译jar包获取源码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序应用&解包反编译&动态调试&抓包&静态分析&源码架构

    直接在微信小程序上搜就完了 参考地址:https://blog.csdn.net/m0_60571842/article/details/132564881 反编译之后就会得到源码,然后对源码架构进行分析以下4个方面 1.更多的资产信息 2.敏感的配置信息 3.未授权访问测试 4.源码中的安全问题 小程序多功能组手 简单工具:http://xcx.

    2024年02月05日
    浏览(32)
  • Day18:信息打点-小程序应用&解包反编译&动态调试&抓包&静态分析&源码架构

    目录 小程序获取-各大平台搜索 小程序体验-凡科建站模版测试上线 小程序抓包-ProxifierBurpSuite联动 小程序逆向-解包反编译动态调试架构 思维导图 章节知识点 Web:语言 / CMS / 中间件 / 数据库 / 系统 / WAF 等 系统:操作系统 / 端口服务 / 网络环境 / 防火墙等 应用: APP

    2024年04月09日
    浏览(40)
  • Java源代码是如何编译,加载到内存中的?

    相信许多开发同学看过《深入理解java虚拟机》,也阅读过java虚拟机规范,书籍和文档给人的感觉不够直观,本文从一个简单的例子来看看jvm是如何工作的吧。 本文所有操作均在mac上进行。 示例代码采用最常见的双重检索单例模式: 经过编译后,我们得到class文件,然后用

    2024年02月13日
    浏览(37)
  • Python反编译exe获取封装源代码

    先把exe和pyinstxtractor放在一起 会得到一个文件夹 安装解析库 一共有两个,还有个struct 用sublime打开两个文件,看到一堆二进制,其中struct是多一行的,把struct的第一行复制到前一个文件中 uncompyle6 C:UserslenovoDesktop20223102412-李凌飞exemerge_ALL_ALL_V1.0.exe_extractedmerge_ALL_ALL_V1.0

    2024年01月19日
    浏览(54)
  • 【Java可执行命令】(一)编译工具javac:从源代码到字节码,深入解析Java编译工具 javac ~

    Java 编程语言的可执行命令程序 javac 是 Java Development Kit (JDK) 的一部分,旨在将 Java 源代码编译为可执行的字节码文件。 javac 的设计目的是为了支持 Java 的跨平台特性,使开发人员能够编写一次代码,然后在不同的操作系统上运行。 javac 是 Java 编译器的命令行前端,它将 Ja

    2024年02月16日
    浏览(31)
  • APP渗透—微信小程序、解包反编译、数据抓包

      在之前的第一篇文章中简单的描述了一下微信小程序抓包的过程,但是不是很详细,所以这里单独写一篇关于微信小程序抓包、解包、反编译的一篇文章。   这里对小程序进行抓包、反编译等操作,都是为了进行信息收集,主要就是提取资产进行渗透测试。   不管

    2024年02月09日
    浏览(49)
  • mvn build jar依赖和源码本身分开。减轻编译后的jar大小

    问题场景:平时在springboot项目中,打jar包都是默认把开发的代码和依赖jar包都打到一个jar包里,导致每次打包费时而且jar包还很大,升级一下都要把一个很大的包拷来拷去。如果是修改问题需要频繁替换jar包,那简直要疯 解决方案:把代码包打成我们需要的jar包,把依赖的

    2024年02月14日
    浏览(46)
  • 如何获取当前 JAR 包的存放位置?

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 要获取当前运行的 JAR 包所存放的位置,可以使用 ProtectionDomain 和 CodeSource 类。 代码: 注意:这种方法适用于独立的可执行 JAR 包。如果你的代码是作为依赖项运行在其他项目或容器中,可能会得到不同

    2024年02月11日
    浏览(30)
  • 利用IDEA插件反编译jar包 成JAVA文件

    直接下载地址: Java Decompiler JD Java Decompiler http://java-decompiler.github.io/ 下载好后,直接双击打开: 直接把要反编译的jar拖进去即可,如: 1、下载插件 通过【File】——【Settings】——【Plugins】输入 Java Decompiler 进行查看,看是否有 Java Decompiler 这个插件。 没有安装就下载安装

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包