For AI agents: the complete documentation index is available at https://renmori.mewbaka.cn/ja/llms.txt, the full documentation bundle is available at https://renmori.mewbaka.cn/ja/llms-full.txt, and this page is available as Markdown at https://renmori.mewbaka.cn/ja/cli/plugin.md.
  • 日本語
  • 保護強度とクローズドプラグイン

    RenMori はオープンコアアーキテクチャを採用しています。オープンソースの renmori CLI がアーカイブ化、検証と CI 連携を担い、固定のオープンソースのベースライン形式を内蔵しています。完全な強度の保護は、クローズドのネイティブプラグインが提供します。プラグイン自体は無料のビルド済みバイナリであり、非公開なのはそのソースコードのみです。

    2 つの保護強度

    項目ベースライン保護フル保護
    有効化の方法--strength baselineデフォルト、または --strength でプラグインが宣言する強度を指定
    プラグインの要否不要(ダウンロードも呼び出しもしない)必要(初回使用時に自動ダウンロード)
    コンテナ形式固定・公開のコンテナ形式 v1ビルドごとにランダム化されるポリモーフィック形式
    鍵ビルドごとに生成、または環境変数から読み込み、ローダー拡張に平文で書き込むプラグインが実行時に導出し、ディスク上に平文の鍵を保存しない
    スクリプト層コンパイル済みスクリプトを独立したスクリプト鍵で再暗号化プラグインが実行(ビルドごとの AST エンコード変換を含む)
    ネイティブコアとランチャーなしネイティブコア、任意でネイティブランチャー(--launcher)
    オフラインでの実行常に可能プラグインのキャッシュ後は可能
    防御できる対象unrpa、unrpyc などの既存のアンパックツールやデコンパイルツール既存のツールに加え、単一の形式を対象に作られた汎用アンパッカー
    適した場面開発中のデバッグ、完全なオフライン環境、プラグインを使用できない場合正式なリリース
    Warning

    ベースライン形式はコンテナの構造が公開されており、鍵とリーダーが平文でゲームと共に配布されます。既存のツールを無効化することはできますが、標的を絞った攻撃者に対しては実質的な保護になりません。正式なリリースにはフル保護を使用してください。両者の脅威モデルは脅威モデルを参照してください。

    強度の決定方法

    --strength または strengthプラグインが利用可能プラグインが利用不可
    未設定プラグインが宣言する最も強い強度を使用終了コード 2 で失敗し、ベースラインへの格下げは行わない
    baselineプラグインを使用せず、ベースラインを使用ベースラインを使用
    autoプラグインが宣言する最も強い強度を使用ベースラインを使用
    その他の値プラグインがその値に対応していれば使用し、対応していなければ失敗終了コード 2 で失敗

    デフォルトの動作が自動的な格下げよりも失敗を選ぶのは、ベースライン強度しか持たないビルドを気付かないままリリースすることを防ぐためです。「プラグインがあればフル保護、なければベースライン」という動作が必要な場合は、auto を明示的に指定してください。

    プラグインの取得順序

    プラグインが必要な場合、renmori は以下の順序で探し、最初に利用可能だったものを使用します。

    1. --plugin PATH で指定したファイル
    2. 環境変数 RENMORI_PLUGIN で指定したファイル
    3. ローカルキャッシュ内のプラグイン
    4. 公開 Release からの自動ダウンロード

    指定したパスが存在しない場合は、stderr にその旨を表示して次の手順に進みます。RENMORI_NO_DOWNLOAD を設定した場合は手順 4 をスキップします。

    自動ダウンロード

    プラットフォームとファイル

    renmori を実行するプラットフォームダウンロードされるファイル
    Windows x64renmori-plugin-win-x64.exe
    Linux x64renmori-plugin-linux-x64
    macOS Apple シリコンrenmori-plugin-mac-arm64
    macOS Intelrenmori-plugin-mac-x86_64

    プラグインは renmori を実行するプラットフォームに応じて選択され、ゲームの対象プラットフォームとは関係ありません。対象プラットフォームは --platforms または自動検出によって決まります。上表以外のプラットフォームにはダウンロード可能なプラグインがないため、--plugin で指定するか、ベースライン保護を使用するしかありません。

    ダウンロードの手順

    1. ダウンロード先の決定:デフォルトは https://github.com/MewBaka/RenMori/releases/download/<tag>/ で、<tag> のデフォルトは現在のバージョンに組み込まれたプラグインタグ(RENMORI_PLUGIN_TAG で上書き可能)。RENMORI_PLUGIN_BASE_URL を設定した場合はそのアドレスからダウンロード
    2. 確認:対話型端末では Full protection needs the closed plugin. Download <asset> from <url> ? [Y/n] と表示し、n または no と回答するとダウンロードを中止(CLI の出力言語は中国語または英語のみであり、ここでは英語出力の文言を示す)。CI、非対話環境、--quiet または -y の場合は確認せずにダウンロード
    3. 同じアドレスにある SHA256SUMS を取得し、対象ファイルのチェックサムを探す。該当するエントリが見つからない場合は中止
    4. プラグインファイルをダウンロードして SHA-256 を計算し、SHA256SUMS と照合。一致しない場合はファイルを破棄し、Downloaded plugin failed its checksum; discarded と表示
    5. まず一時ファイルに書き込み、その後アトミックにキャッシュパスへ置き換え。macOS と Linux では実行権限を設定

    いずれかの手順が失敗した場合、プラグインは利用不可とみなされます。強度が未設定の場合はコマンドが失敗し、auto の場合はベースラインにフォールバックします。

    キャッシュの場所

    プラットフォームキャッシュディレクトリ
    Windows%LOCALAPPDATA%\renmori\plugin\<tag>\
    macOS、Linux$XDG_CACHE_HOME/renmori/plugin/<tag>/(未設定の場合は ~/.cache/renmori/plugin/<tag>/)

    キャッシュは Release タグごとのディレクトリに保存されるため、renmori をアップグレードしたり RENMORI_PLUGIN_TAG を変更したりすると、対応するタグの新しいディレクトリが使用されます。キャッシュディレクトリを削除すれば、強制的に再ダウンロードできます。

    環境変数

    環境変数機能
    RENMORI_PLUGIN指定したパスのプラグインを使用し、キャッシュとダウンロードをスキップ。--plugin と同等
    RENMORI_NO_DOWNLOAD空でない任意の値を設定すると一切ダウンロードしない。既存のキャッシュは引き続き使用
    RENMORI_PLUGIN_BASE_URLプラグインと SHA256SUMS をこのアドレスから取得。社内ミラー向け
    RENMORI_PLUGIN_TAGRelease タグを指定し、キャッシュのサブディレクトリも決定

    オフライン環境と社内ネットワーク

    • 事前キャッシュ:ネットワークに接続できるマシンで一度フル保護を実行し、キャッシュディレクトリをオフラインマシンの同じ場所にコピー
    • パスの固定:プラグインファイルをビルドマシンに配置し、RENMORI_PLUGIN または --plugin で指定
    • 社内ミラー:社内サーバーでプラグインファイルと SHA256SUMS の両方を提供し、RENMORI_PLUGIN_BASE_URL でそのアドレスを指定
    • ネットワークアクセスの禁止:RENMORI_NO_DOWNLOAD=1 を設定し、ビルド処理が一切ネットワークリクエストを発行しないようにする

    CI でプラグインをキャッシュする方法はCI との連携を参照してください。

    ケイパビリティハンドシェイク

    プラグインを使用する前に、renmori は capabilities サブコマンドでプラグインを呼び出し、返された JSON を読み取ります。この JSON には、プラグインが対応するインターフェースバージョンと利用可能な強度のリストが含まれます。以下の場合、プラグインは利用不可とみなされます。

    • プラグインを実行できない、0 以外の終了コードを返す、または 30 秒以内に応答しない
    • 返された内容が有効な JSON ではない
    • インターフェースバージョンが renmori の要求するバージョンより古い(この場合、stderr に plugin interface … unsupported と表示される)

    ハンドシェイクに成功すると、renmori は protect サブコマンドでプラグインを呼び出し、ソースディレクトリ、出力ディレクトリ、強度、プラットフォーム、ランチャー、除外リスト、チャンクサイズとロックダウン設定を含むリクエスト JSON を stdin 経由で渡し、プラグインの stdout の最終行から結果を読み取ります。プラグインの進捗情報は直接 stderr に出力されます。プラグインのファイル名が .py で終わる場合は現在の Python インタープリタで実行し、それ以外の場合は直接実行します。

    オープンソースのツールとクローズドプラグインの間の完全なプロセスインターフェースは、オープン部分とクローズド部分のインターフェースを参照してください。

    © 2026 笨猫工作室 MewBaka Studio. All Rights Reserved.