Tôi đang làm việc với máy chủ bổ sung cho Minecraft, điều này sẽ bị làm xáo trộn. Tôi đã luôn luôn nghĩ rằng, sau khi làm xáo trộn, không thể khôi phục lại tên lớp ban đầu bởi vì chúng bị loại bỏ hoàn toàn, và đó là những gì tôi đã đọc ở khắp mọi nơi. Sau khi tinkering với nó một lúc, tôi nhận thấy rằng khi một ngoại lệ chưa bắt đầu xuất hiện trong giao diện điều khiển, nó cho thấy tên của các lớp (ví dụ: tại cratereloaded.aT.d), và sau đó trong dấu ngoặc đơn, nơi nó thường hiển thị tên của lớp và dòng vi phạm, nó cho thấy tên lớp ban đầu, dẫn tôi tin rằng nó thực sự có thể được deobfuscated. Nhưng của tất cả các công cụ tôi đã thử, không ai có thể khôi phục tên lớp ban đầu, mặc dù sau khi kiểm tra một số hex tôi đã xác nhận tên lớp gốc IS thực sự được nhúng trong các tệp '.class' đã biên dịch.Stacktrace của mã obfuscated hiển thị tên lớp unobfuscated?
Có công cụ nào có khả năng sử dụng công cụ đó để tự động khôi phục tên lớp không?
Ví dụ stacktrace:
[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]
Mục đích của plugin chắc chắn là một phần của một máy chủ riêng tư và trong khi tại thời điểm hỏi câu hỏi này, tôi đã có một giải pháp mặc dù đang hoạt động. Tôi đã được liên lạc bởi tác giả của CrateReloaded sau khi chỉ ra một vấn đề với API của nó, và ông sẵn sàng đồng ý với nhiệm vụ phơi bày nhiều plugin hơn trong các bản cập nhật trong tương lai. – XXLuigiMario
Tuyệt vời. Tôi vui mừng khi biết rằng tác giả sẵn sàng cung cấp mã, phù hợp với GPL. – Frelling