名前を保持すべきクラスは?
jar を難読化する前に、プラグインまたは MOD の記述子を貼り付けてください。ブラウザー内で読み取られ、アップロードはされません。
- ブラウザで動作
- Paper, Spigot, BungeeCord, Velocity, Fabric
記述子を貼り付けると回答が表示されます
plugin.yml、paper-plugin.yml、bungee.yml、velocity-plugin.json、または fabric.mod.json。「例」から選ぶこともできます。
常に保持されるもの
マニフェストの Main-Class、META-INF/services のプロバイダー、イベントハンドラー(@EventHandler、@Subscribe)、enum、シリアライズ可能なメンバー、Forge の @Mod クラス。
あなただけが知っていること (リフレクション、設定ファイル内の名前)
名前で読み込むクラス(Class.forName、リフレクション、設定ファイル内の名前)と、JSON ライブラリが名前で対応づけるフィールド。
次に、無料アカウントで jar を難読化してください: ProGuard、yGuard、または Skidfuscator で、これらの名前を保持します。月 3 回。次に、無料アカウントで jar を難読化してください。jar をアップロード
同じプラグイン。でも読むのはずっと大変。
public final class AuctionPlugin extends JavaPlugin {
private final Map<UUID, Listing> listings = new HashMap<>();
@Override
public void onEnable() {
getCommand("ah").setExecutor(new AuctionCommand(this));
}
boolean canAfford(Player player, double price) {
return economy.getBalance(player) >= price;
}
}public final class AuctionPlugin extends JavaPlugin {
private final Map<UUID, a> a = new HashMap<>();
@Override
public void onEnable() {
this.getCommand(b.a("\u0d4f\u0d4a")).setExecutor(new c(this));
}
boolean a(Player var1, double var2) {
return d.a.getBalance(var1) >= var2;
}
}ProGuard
クラス、フィールド、メソッドの名前を変更します。デフォルトで、ほぼすべてのプラグインで動作します。
Skidfuscator
名前の変更に加えて、制御フローの難読化と文字列の暗号化を行います。
最大
ProGuard の後に Skidfuscator:最も強力。追加のテストに見合うプラグイン向けです。
よくある質問
なぜ一部のクラスは名前を残す必要があるのですか?
サーバーはディスクリプタから名前で読み込みます:plugin.yml のメインクラス、Fabric のエントリーポイント、mixin。名前を変えるとプラグインは読み込まれません。それ以外はすべて名前を変えられます。
保持ルールは自分で書く必要がありますか?
ほとんど不要です。SunLicense は jar を読み取り、メインクラス、Velocity と BungeeCord の main、Fabric のエントリーポイントと mixin、サービスプロバイダー、イベントハンドラー、enum を自動で保持します。このチェッカーは、Paper の bootstrapper など、あなたが対応すべきものを示します。
SunLicense はどの難読化ツールを使いますか?
ProGuard(デフォルト)、yGuard、そして制御フローの難読化と文字列の暗号化を加える Skidfuscator。または ProGuard の後に Skidfuscator を実行する「最大」。自分のスタックトレースを読むためのマッピングファイルも届きます。
ディスクリプタはアップロードされますか?
いいえ。チェッカーはブラウザ内で読み取り、何も送信しません。
料金は?
Free プランには月 3 回の難読化と、同じプラグインのライセンスキーとデバイス数の上限が含まれます。Lite と Standard はさらに多く実行できます。
SunLicense