关于MOD的反编译
minecraft吧
全部回复
仅看楼主
level 9
xmq1991
楼主
如何能都反混淆 反编译基于forge的MOD, 我想了解一些MOD的内部原理, 积累一些经验
2013年01月17日 21点01分
1
level 10
_seraph0012
我也想知道,我目前都是手动修改。
2013年01月17日 22点01分
2
level 11
2B1148669896
反编译,java反编译不难,但是反编译过后的代码不可能和源码一模一样。而且库什么的,估计都无法反编译出来。
mod的内部原理很简单,通过调用forge这类的嵌入式APImod的API端口来完成与MC进程的通信
当然参数传递到你的mod内部就由你的mod自己主宰了,然后你的mod在通过API将参数返回给MC的主程序来完成通信
原理这玩意很简单,不必过多纠结,实在不行你可以反汇编,那个准!但是你会被那堆指令的数量给吓死
2013年01月17日 23点01分
3
xmq1991
Java的反编译不难,这个我知道,主要是混淆编译搞的,我之前看过基于forget的官服MOD转换成CraftBukkit的MOD方法, 但是转换出来的源码貌似不能用在forge上面 之前我试过把反编译后的代码人工烦混淆,那个实在太累了,而且经常弄错
2013年01月17日 23点01分
level 13
Le_Concorde
有个叫jd的eclipse插件
好像也有独立版的
不过反编译出来的代码会有语法错误,特别是泛型信息会全部丢失(没办法,Java支持泛型的方法原因)
deobfuscation和decompile都可以用mcp解决
(另外有试过直接改bytecode么,那叫一个艹蛋)
2013年01月17日 23点01分
4
Le_Concorde
顺便有些mod是开放源代码的,这种mod去Google搜一下就是了。不过像RP2这种的,作者是不允许反编译的。
2013年01月17日 23点01分
xmq1991
回复 Le_Concorde :JD插件我知道, 不能反混淆, 问一下deobfuscation应该怎么用, 还有如果把MOD包丢到jar文件里进行decompile会报错的
2013年01月17日 23点01分
Le_Concorde
回复 xmq1991 :每次都是丢进去反编译从来没出错,只会说minecraft被更改,反编译结果不一定正确。
2013年01月17日 23点01分
_seraph0012
回复 Le_Concorde :会直接跳过mod文件,mcp只能deobfuscate纯净的jar文件
2013年01月17日 23点01分
level 9
xmq1991
楼主
我一把forge或者MOD放到jar包里,反编译就会出现类似的错误
2013年01月17日 23点01分
5
Le_Concorde
把lib目录下的jar里的东西一起丢进去
2013年01月18日 00点01分
1