6168218c 发表于 2018-1-1 14:36:23

[mod党福利][开源][C++][Windows SDK/MFC]FernflowerUI Java反编译工具

本帖最后由 6168218c 于 2019-2-5 08:01 编辑

看有几个帖子是关于模组反编译的,本人作为一名C++党,就做了一个Java反编译器(的图形用户界面)
众所周知, Fernflower 是反编译质量最好的Java反编译器,但是,你通常需要这样使用:
java -jar fernflower.jar ...\*.jar ...\ (省略号表示路径)
所以说,Fernflower使用起来有点麻烦,而FernflowerUI的目的,也就是让反编译稍微方便一些。
本人在minecraft吧上也发了一个帖子,但由于度娘爱删贴,就发到这儿来了。地址:https://tieba.baidu.com/p/535796 ... 829285#113035827659"
本来想发布在"软件资源"版,但因为这本身是帮助编程的工具,就发到"编程开发"版来了。

最新版本
GitHub:https://github.com/6168218c/FernflowerUI/releases/latest
总是最新的.


请各位看官勿做"伸手党",若感觉这个工具"海星",请将帖子顶一下(#恬不知耻的楼主)

3.4.1版本

What's New:
现在我们增加了选择反编译参数的功能。若需要完整的列表,请访问https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine。
现在可以通过类视图来查看每一个类/抽象类/接口的方法和数据成员。双击该项即可打开并选中该成员。风格类似于Notepad++。
现在可以通过“打开”按钮左边的复选框来仅仅反编译Jar文件中的几个类,而不反编译整个Jar文件。
Fixed:
现在我们将fernflower.jar换成Intellij Community的版本。为获得更多信息,访问https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine。

使用图片:
https://imgsa.baidu.com/forum/w%3D580/sign=9478ffb25b4e9258a63486e6ac83d1d1/f1166e36acaf2edd3e975e3f801001e9380193a5.jpg

https://imgsa.baidu.com/forum/w%3D580/sign=430f74a89f58d109c4e3a9bae159ccd0/cc2989af2edda3cce282aff60ce93901203f92a5.jpg



WARNING:杀毒软件(例如,且尤其是360)可能会报毒,若不放心,请进入https://github.com/6168218c/FernflowerUI查看源代码.
感谢您的支持:@Eldon @ddyy163 @woshilaji @PY狗 @guiqikan @Lrsy @hunsu @wachm @908445683
下载链接:
GitHub:https://github.com/6168218c/FernflowerUI/releases/latest
度娘盘:链接:https://pan.baidu.com/s/10yQCRDQnlHGAMdRuCSCGRw 密码:q7go


这些是老版本。。。
发布1.2版本:
ChangeLog:优化了主线程算法,不会像原来那样,反编译一开始,就弹出“反编译线程执行完毕”提示窗口。但仍会有一些误差。新增了提示窗口提示放置fernflower.jar
P.S.在反编译过程中CPU占用率会很高,这是fernflower.jar的缺陷,与本程序无关
由于各种原因造成损失,本程序概不负责,找Fesh0r去 :P
FernflowerUI 2.0版本。更新内容:
1、支持从GitHub上自动下载fernflower.jar,请确保你的网络能流畅访问GitHub
2、修改了反编译线程启动函数,现在只有在反编译完成后才会弹出“反编译完成”对话框。
3、增加了进度条
2.1版本已经发布在GitHub 链接:https://github.com/6168218c/FernflowerUI
我把老的版本整合了一下: (百度盘) https://pan.baidu.com/s/1jJv5wKe
提取密码:pfgz
2.1版本更新日志: 增加拖拽打开文件、反编译错误识别功能。
Eldon 发表于 2018-1-29 19:51
有个叫做 Bytecode Viewer 的东西不妨去看看?
Bytecode Viewer - Java & Android APK Reverse Engineering ...
的确,那个反编译器高端得多,也成熟得多。
但是, Bytecode Viewer 似乎是使用JD-Core,这个反编译器虽然反编译速度快,但是反编译质量没有fernflower.jar好。而且,经检验, Bytecode Viewer 是使用Java编写,运行速度比C++慢。
也感谢你的反馈(这个帖似乎早已沉了),在UI设计方面我们最近也进行了改进。从2.2版本开始,FernflowerUI会有很大改变。
ddyy163 发表于 2018-1-15 16:40
我以为是像jd-gui 和luyten这样的gui呢..
不过也支持一下
2.2版本链接:https://pan.baidu.com/s/1bri4zeR 密码:xj57
2.2、2.3版本由于学业压力(我是学生党),拖延了很长时间,现在一起发布:
2.2版本,链接已经在楼上了。这个版本使用了MFC框架,在界面上有很大改动。现已经将反编译日志集成至"输出窗口"内。老样子,反编译输出照样是在源文件目录下\decomplie目录里。可能在第一次使用时“输出”窗口位置很别扭,但你可以通过拖动来自定义。
链接贴在楼上。
2.3版本,修复了下载fernflower.jar时的卡死bug。使用并发编程,提升日志读取速度。增加了对Java虚拟机的检测功能
(度娘盘)链接:https://pan.baidu.com/s/1o9c2ePO 密码:pkt9
(GitHub)链接:https://github.com/6168218c/FernflowerUI/releases
温馨提示:GitHub全是E文,但下载速度极快
FernFlowerUI3.0版本,增加了类视图、语法高亮功能,真正做得像JD-GUI一样,拥有语法高亮、整个Jar文件反编译功能。语法高亮样式模仿Dev-C++,在点击类视图中的项目时,将展示反编译出的.java文件内容。
废话不说,上图(在图中反编译了IChunUtil mod , 为了尊重IChunUtil作者,请访问IChunUtil原网页:https://github.com/iChun/iChunUtil):
(度娘盘)链接:https://pan.baidu.com/s/1lOIpZO6RRU8_wKdFiAHuLQ 密码:fcs3
(GitHub)https://github.com/6168218c/FernflowerUI/releases3.1版本(由于学业,更新速度可能变慢)
从这个版本开始,我们每次将会发布两个版本。一个是"FernflowerUI*.*-DLL",这个版本需要mfc140u.dll(即VC++2015运行库),但是一部分语言会翻译成中文。"Static"版本则反之。
现在我们重制了界面,升级至MDI.现在可以同时浏览多个.java文件
我们也增加了文件夹视图,就是Windows资源管理器的树视图,现在文件夹视图的右键菜单提供了Windows资源管理器的所有功能和直接反编译功能。
为了防止一些错误,我们关闭了程序多开功能。
修复:我们修复了一些关于语法高亮的bug,现在由于空字符而产生的错误不会再发生了
3.2版本
现在我们重新允许了程序多开。这意味这你可以同时反编译多个Jar文件。 这些反编译后的Jar文件会在%LocalAppdata%\FernflowerUI\Cache这一文件夹中。如果你再次反编译这个文件(或它的副本), FernflowerUI将会从缓存中读取数据。这可以极大地减少反编译时间。修复:我们修复了一些关于语法高亮的bug,现在字符串中的“@”将不会被高亮为注释。不会因为ANSI和UTF-8而显示乱码。
感谢Bug反馈@woshilaji
废话还是不多说,上图(在图中还是反编译了IChunUtil mod , 为了尊重IChunUtil作者,请访问IChunUtil原网页:https://github.com/iChun/iChunUtil)


文件夹视图菜单:


DLL版本和Static版本区别

DLL版本

Static版本


(度娘盘)链接:https://pan.baidu.com/s/1n_Mw7R0e39aBXYHsv7KbkA 密码:m2jt
(GitHub)https://github.com/6168218c/FernflowerUI/releases3.3版本
还是去看GitHub的README吧,有中文注释...3.4版本

现在我们增加了字符串查找功能。当你已经打开一个Java文件后,按下Ctrl+F,“查找”对话框就会显示出来,允许你在当前Java文件中查找字符串。

我们也增加了保存整个Jar文件和保存当前Java文件的功能,你可以按Ctrl+S来保存整个Jar文件,也可以按Ctrl+Shift+S来保存当前的Java文件。

为了与上一个新增功能搭配,我们新增了自动保存功能。你可以在“设置”菜单中启用它。如果启用了该功能,反编译后的Jar文件将被自动保存到原Jar文件目录下的"\decompile"目录里。

另外,也可以通过MRU文件列表(最近文件列表)来反编译Jar文件。这次反编译速度会快很多,因为它在之前一次反编译中将结果存储到了缓存。



修复: 如果你已经安装了JRE但没有设置JAVA_HOME,FernflowerUI现在不会提示”检测到JRE未安装“。条件是在CMD中可以运行"java -version"。 当电脑中设置"隐藏文件扩展名"时,FernflowerUI现在可以正常显示类视图及反编译后的Java文件。使用图片:





































ddyy163 发表于 2018-1-15 16:40:43

我以为是像jd-gui 和luyten这样的gui呢..
不过也支持一下

Eldon 发表于 2018-1-29 19:51:29

有个叫做 Bytecode Viewer 的东西不妨去看看?
Bytecode Viewer - Java & Android APK Reverse Engineering Suite/Tool

6168218c 发表于 2018-1-13 21:51:06

2.1版本已经发布在GitHub 链接:https://github.com/6168218c/FernflowerUI
我把老的版本整合了一下: (百度盘) https://pan.baidu.com/s/1jJv5wKe
提取密码:pfgz
2.1版本更新日志: 增加拖拽打开文件、反编译错误识别功能。

6168218c 发表于 2018-2-13 20:47:06

本帖最后由 6168218c 于 2018-2-14 10:21 编辑

Eldon 发表于 2018-1-29 19:51
有个叫做 Bytecode Viewer 的东西不妨去看看?
Bytecode Viewer - Java & Android APK Reverse Engineering ...
的确,那个反编译器高端得多,也成熟得多。
但是, Bytecode Viewer 似乎是使用JD-Core,这个反编译器虽然反编译速度快,但是反编译质量没有fernflower.jar好。而且,经检验, Bytecode Viewer 是使用Java编写,运行速度比C++慢。
也感谢你的反馈(这个帖似乎早已沉了),在UI设计方面我们最近也进行了改进。从2.2版本开始,FernflowerUI会有很大改变。
2.2版本链接:https://pan.baidu.com/s/1bri4zeR 密码:xj57

6168218c 发表于 2018-2-13 20:56:12

2.2、2.3版本由于学业压力(我是学生党),拖延了很长时间,现在一起发布:
2.2版本,链接已经在楼上了。这个版本使用了MFC框架,在界面上有很大改动。现已经将反编译日志集成至"输出窗口"内。老样子,反编译输出照样是在源文件目录下\decomplie目录里。可能在第一次使用时“输出”窗口位置很别扭,但你可以通过拖动来自定义。
链接贴在楼上。
2.3版本,修复了下载fernflower.jar时的卡死bug。使用并发编程,提升日志读取速度。增加了对Java虚拟机的检测功能
(度娘盘)链接:https://pan.baidu.com/s/1o9c2ePO 密码:pkt9
(GitHub)链接:https://github.com/6168218c/FernflowerUI/releases
温馨提示:GitHub全是E文,但下载速度极快

6168218c 发表于 2018-2-13 21:09:52

ddyy163 发表于 2018-1-15 16:40
我以为是像jd-gui 和luyten这样的gui呢..
不过也支持一下

已经按你的建议作了改进。
FernFlowerUI3.0版本,增加了类视图、语法高亮功能,真正做得像JD-GUI一样,拥有语法高亮、整个Jar文件反编译功能。语法高亮样式模仿Dev-C++,在点击类视图中的项目时,将展示反编译出的.java文件内容。
正式发布已经放在GitHub上,即将在这儿发布

6168218c 发表于 2018-2-13 21:20:21

FernflowerUI3.0版本,更新内容已经在楼上说清楚了。
(度娘盘)链接:https://pan.baidu.com/s/1eSRne4y 密码:s9y7
(GitHub)https://github.com/6168218c/FernflowerUI/releases
感谢您的支持:@Eldon @ddyy163

Eldon 发表于 2018-2-14 10:52:55

6168218c 发表于 2018-2-13 20:47
的确,那个反编译器高端得多,也成熟得多。
但是, Bytecode Viewer 似乎是使用JD-Core,这个反编译器虽然 ...

你可能没有仔细看 Github 上的 README.md, 经我测试它支持八种模式的反编译, 包括 FernFlower, 而且它还有 社区 支持.

不多说, 看图.
https://s1.ax1x.com/2018/02/14/9YQZxU.png

叽叽小石头 发表于 2018-3-4 14:55:15

楼主 提示要Java虚拟机咋搞?我下载了JDK了

6168218c 发表于 2018-3-6 15:21:16

本帖最后由 6168218c 于 2018-4-6 07:43 编辑

PY狗 发表于 2018-3-4 14:55
楼主 提示要Java虚拟机咋搞?我下载了JDK了
注:此楼为问题解答楼
请正确设置JAVA_HOME(大小写必须匹配)和Path环境变量,
百度上有教程:https://jingyan.baidu.com/article/a378c960c81f38b329283056.html
当你在命令行中输入java -version时不会报错时,设置成功

woshilaji 发表于 2018-3-6 20:36:26

期待新的ui,还有Java里面的中文会乱码,spigot无法打开,不过反编译出来的代码无敌,可以匹敌源码了,希望3.1改进

guiqikan 发表于 2018-4-11 08:56:08

希望增加代码前的行数

6168218c 发表于 2018-4-15 05:56:59

guiqikan 发表于 2018-4-11 08:56
希望增加代码前的行数

好的,该功能在3.3版本已经实现。
此楼为建议楼,对FernflowerUI改进的建议都可以提到这层楼来

Lrsy 发表于 2018-4-15 13:50:41

谢谢楼主分享
页: [1] 2 3
查看完整版本: [mod党福利][开源][C++][Windows SDK/MFC]FernflowerUI Java反编译工具