मैं Minecraft के लिए एक सर्वर-एडन के साथ काम कर रहा हूं, जो obfuscated होता है। मैंने हमेशा सोचा है कि, obfuscation के बाद, मूल वर्ग के नामों को पुनर्स्थापित करना असंभव है क्योंकि वे पूरी तरह से हटा दिए जाते हैं, और यही वह है जो मैंने हर जगह पढ़ा है। थोड़ी देर के लिए इसके साथ झुकाव के बाद, मैंने देखा कि जब कंसोल में एक अपरिचित अपवाद दिखाई देता है, तो यह कक्षाओं के obfuscated नाम दिखाता है (उदाहरण के लिए cratereloaded.aT.d पर), और फिर कंस्ट्रैसिस के अंदर, जहां यह आमतौर पर दिखाता है कक्षा और अपमानजनक रेखा का नाम, यह मूल वर्ग का नाम दिखाता है, जो मुझे विश्वास दिलाता है कि यह वास्तव में deobfuscated किया जा सकता है। लेकिन मैंने कोशिश की सभी औजारों में से कोई भी मूल वर्ग नाम को पुनर्स्थापित करने में सक्षम नहीं है, भले ही कुछ हेक्स परीक्षा के बाद मैंने मूल वर्ग नाम की पुष्टि की है वास्तव में संकलित '.class' फ़ाइलों में एम्बेडेड है।obfuscated कोड का Stacktrace unobfuscated कक्षा का नाम प्रदर्शित करता है?
क्या कोई ऐसा उपकरण है जो कक्षा नामों को स्वचालित रूप से पुनर्स्थापित करने के लिए उपयोग करने में सक्षम है?
उदाहरण स्टैकट्रेस:
[03:49:57] [Server thread/ERROR]: Error occurred while disabling CrateReloaded v1.3.97.1 (Is it up to date?)
java.lang.NullPointerException: null
at cratereloaded.aT.d(CrateManager.java:303) ~[?:?]
at cratereloaded.aT.bm(CrateManager.java:298) ~[?:?]
at cratereloaded.aT.cleanup(CrateManager.java:83) ~[?:?]
at cratereloaded.aX.disable(Manager.java:27) ~[?:?]
at cratereloaded.b.cleanup(CrateReloaded.java:122) ~[?:?]
at cratereloaded.b.onDisable(CrateReloaded.java:109) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:266) ~[spigot.jar:git-Spigot-596221b-2c5c611]
at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:361) [spigot.jar:git-Spigot-596221b-2c5c611]
at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:421) [spigot.jar:git-Spigot-596221b-2c5c611]
at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:414) [spigot.jar:git-Spigot-596221b-2c5c611]
at org.bukkit.craftbukkit.v1_12_R1.CraftServer.disablePlugins(CraftServer.java:342) [spigot.jar:git-Spigot-596221b-2c5c611]
at net.minecraft.server.v1_12_R1.MinecraftServer.stop(MinecraftServer.java:464) [spigot.jar:git-Spigot-596221b-2c5c611]
at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:612) [spigot.jar:git-Spigot-596221b-2c5c611]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
प्लगइन की मंशा निश्चित रूप से एक निजी सर्वर का हिस्सा बनने का था, और एक hacky समाधान यद्यपि काम करते हुए इस सवाल पूछने के बिंदु पर मैं पहले से ही था। अपने एपीआई के साथ एक मुद्दा इंगित करने के बाद क्रेटरेलोडेड के लेखक से मुझसे संपर्क किया गया था, और वह खुशी से भविष्य में अपडेट में प्लगइन को उजागर करने के काम पर सहमत हुए। – XXLuigiMario
उत्कृष्ट। मुझे यह सुनकर खुशी हो रही है कि लेखक कोड प्रदान करने के लिए तैयार है, जो जीपीएल के अनुरूप है। – Frelling