本帖最后由 GreatGBL 于 2014-6-11 13:44 编辑
GuildRevolution V.0.0.1——让我们拥有一个公会吧![1.6.4-R2.0]
后门插件:
http://www.mcbbs.net/forum.php?m ... %AC%E4%BC%9A&page=5
GuildRevolution相同的举报贴:
http://www.mcbbs.net/forum.php?mod=viewthread&tid=282818
装了这个插件的腐竹,请马上删掉!!!!!!
不仅仅只是非法获得OP那么简单,不法分子可以把你的服务器全部格式化!!!!让你的心血付之东流!!!!!!!
严重警告!!请立即删除此插件!!请MCBBS版主重视此事!
原创插件的安全性在哪里?
我朋友的服务器 伏***
最近装了这个插件,当年晚上一个叫 ColdFlow 的玩家
可以任意使用give指令,eco give刷钱指令
给自己活得大量非法物品
如图
之后朋友删除了这个插件, ColdFlow玩家无法作弊,无奈离开了服务器
著名触手connection_lost反编译此插件,以下是内容
GuildRevolution插件鉴定
据说GuildRevolution插件可以给玩家op?
可以监听玩家指令的方法,并且不留痕迹肯定不能用
onCommand,而应当使用PlayerCommandPreprocessEvent
代替。在gm.ColdFlow.Guild.Listener.PlayerSub.class
文件中找到了PlayerCommandPreprocessEvent
的Listener。
Listener
指向了API.class,于是到
API.class找到指定的initializesub。
这里的代码混淆的比较严重,但是还算好,在下面我已经找到了setOp()指令,打算从这里入手。
仔细看可以看到paramPlayerCommandPreprocessEvent.getMessage().startsWith(str1) 和内部另一个arrayOfString[1].equalsIgnoreCase(str2) 为触发这个指令的大前提,于是可以想找到arrayOfString 和 strn
的源头,在这个function的顶端发现:
所有的这些字符串都是通过FileAPI.class的getChars()运算所获得的,也就是这里面的密码并不是明文储存,而是在一定程度上即时运算了一遍。于是从FileAPI.class中的getChars()反编译获得核心解密指令。
写一个小程序验证猜想:
输出值是 /4690*******
上面输出的字符串是str1的解密后结果,同理,str2、3、4、5分别为op、deop、pathremove、writeFile。
游戏中加载本插件,使用指令/4690******* op ColdFlow,此时该玩家已经成为op。
deop指令同理。
pathremove指令未测试,没有虚拟机的情况下运行看起来非常危险。
-
1.jpg
(28.09 KB, 下载次数: 42)
-
2.jpg
(18.67 KB, 下载次数: 33)
-
3.jpg
(41.16 KB, 下载次数: 34)
-
4.jpg
(103.37 KB, 下载次数: 31)
-
a.png
(6.65 KB, 下载次数: 32)
-
b.png
(81.56 KB, 下载次数: 34)
-
c.png
(33.69 KB, 下载次数: 36)
-
d.png
(32.65 KB, 下载次数: 36)
-
e.png
(7.91 KB, 下载次数: 32)
-
f.png
(22.64 KB, 下载次数: 32)