概述
目录
- 前言
- 1.12.2以下的版本
- 使用BON2
- BUG
- 使用Recaf
- 1.12.2以上的版本
- 结束
前言
Minecraft的很多mod并不开源,如果想给这些mod做附属的话是个很困难的事,这篇文章提供使用官方srg的方法进行混淆映射,从而获取原代码
1.12.2以下的版本
使用BON2
BON2是广为人知的一款反混淆工具,通过它可以简单快速的获取高质量源码。
首先需要下载BON2和ForgeMDK。
BON2_Github
ForgeMDK
下载后的BON2可以直接双击打开
在ForgeMDK页面选择需要的Minecraft版本,之后选择一个Forge版本(推荐使用最新的),然后下载MDK
下载之后找个地方解压,然后用CMD进入到文件夹中,首先需要把./gradle/wrapper/gradle-wrapper.properties
中的gradle版本改一下,再运行gradlew setupDecompWorkspace
,如果提示找不到该命令,则先使用gradlew tasks
获取所有命令,其中或包括forge的配置命令,下图的前三个根据自己的IDE选择即可,输入之后等待构建完成
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
#下面的就是gradle版本,将7.5.1(1.7.10版本应该是2.0),修改为需要的版本,1.7.10至少改成4.4.1
distributionUrl=https://services.gradle.org/distributions/gradle-7.5.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
等待构建完成即可,这个过程比较吃网络,失败了多试几次或者开魔法
成功之后就是这个样子
之后打开BON2
构建之后就可以选择被反混淆MOD的Forge版本,之后在input jar
中选择,点击GO
这样就算混淆成功了,使用JD-GUI或者其他反编译工具可以直接获取可读代码,或者直接使用deobf文件开发附属
BUG
使用BON2的过程中小概率会报错,点击OK可以直接跳过,如果需要读取一些报错文件中的方法,可以直接用代码编辑器,如VSCode打开,之后在用户目录下找到.gradlecachesminecraftnetminecraftforgeforgeMinecraft版本-Forge版本-Minecraft版本srgs
,里面的就是混淆表,找到文件名为srg-mcp.srg
的文件,用代码编辑器打开
在这个表中就可以找到混淆名,然后手动替换一下就可以了
使用Recaf
Recaf官网
下载之后依然是一个jar文件,双击打开
点击Config
,可以将语言换为中文
选择文件-加载
选择要反混淆的Mod,之后再点击Mappings-srg
,选择用户目录下的.gradlecachesminecraftnetminecraftforgeforgeMinecraft版本-Forge版本-Minecraft版本srgs
文件夹中的srg-mcp.srg
,稍等待一会,或者把选项卡全部重新打开,就可以看到代码已经反混淆完成了。
1.12.2以上的版本
1.12.2以上的版本不再使用mcp的反混淆表,而是使用Minecraft官方的混淆表,而在高版本Mojang官方使用Proguard混淆源代码,并且将混淆表公开了。因此可以直接用recaf+官方反混淆表进行反混淆。
首先需要下载一个与mod版本相同(1.18.1为例子)的minecraft版本,之后找到它的version文件夹:
打开文件1.18.1.json
,往下拉找到client_mappings
根据url下载名为client.txt
的文件。
之后如上方Recaf的操作方式一样,只是要把映射方式改为Proguard即可。
结束
最后
以上就是虚拟火龙果为你收集整理的Minecraft任意版本Forge模组反混淆教程前言结束的全部内容,希望文章能够帮你解决Minecraft任意版本Forge模组反混淆教程前言结束所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复