はじめに
RenMori は商用 Ren'Py ビジュアルノベル向けの全データ保護ツールで、Ren'Py 8.x エンジンに対応しています。Ren'Py ランチャーが生成した配布用ビルドを直接処理し、プロジェクトのソースは変更しません。ゲーム内のスクリプト、立ち絵、CG、音声、動画、フォント、翻訳、設定はすべて暗号化コンテナに格納され、実行中のエンジン内部でのみ復号されるため、プレイヤーのディスク上に平文のアセットや .rpy ソースは残りません。
RenMori は完全無料です。名称の「Ren」は Ren'Py を、「Mori」は日本語の「守(もり)」を表し、守護を意味します。
RenMori はオープンコアアーキテクチャを採用しており、ツールのソースは公開され、ネイティブコアはクローズドソースのバイナリとして配布されます。オープンソースの CLI がアーカイブ化、検証、CI 連携を担い、クローズドソースのネイティブプラグインが完全な強度のランタイム保護を提供します。プラグインは初回使用時に公開リリースから自動でダウンロード、検証、キャッシュされます。完全なオフライン環境が必要な場合や、プラグインを使用したくない場合は、オープンソースのベースライン形式を利用できます。
主な特長
- 全データ暗号化:スクリプトやアーカイブに限らず、ゲーム内のすべてのデータ種別を対象とする
- 非侵入型:配布用ビルドに対して実行し、ランチャーが生成した
.zipアーカイブも直接処理可能 - デフォルトで設定不要:任意の
renmori.tomlでチャンクサイズ、除外リスト、ロック、保護強度、鍵の取得元を制御 - CI 対応:機械可読な JSON 結果と明確な終了コードを出力し、
renmori verifyをパイプラインのゲートとして利用可能 - 配信プラットフォーム対応:Steam リリースガイド(英語)で Steam オーバーレイ、DRM、Steamworks との互換性を解説
RenMori が保護するもの
RenMori は Ren'Py 8.x でビルドされたゲームから保護済みの配布用ビルドを生成し、ゲームデータの不正な抽出を防ぎます。スクリプト、立ち絵、CG、音声、動画、フォント、翻訳、設定を含むゲーム内のすべてのデータは暗号化コンテナに格納され、実行中のエンジン内部でのみ復号されます。
防御できる対象:
unrpa、rpatool、unrpycなどの既存のアンパッカーやデコンパイラによるアセットとスクリプトの抽出- 既存ツールを呼び出すだけの AI エージェントによる自動解析
- バッチ処理やスクリプトによる自動抽出
RenMori は絶対的な防御ではありません。プレイヤーのマシン上で動作するゲームを解析不可能にすることは原理的にできず、RenMori は解析の難易度を最大限に高めますが、専門家レベルのリバースエンジニアリングには対抗できません。詳細は脅威モデル(英語)を参照してください。多くの解析者は単一の作品に多大な時間を費やさないため、大多数の作品に対して RenMori は有効な保護を提供します。
RenMori の目的は、あらゆる汎用アンパックツールを無効化し、抽出のコストを専門家による個別の取り組みが必要な水準まで引き上げることであり、すべてのリスクを排除することではありません。
RenMori は適しているか
適している場面
- Ren'Py 8.x(Python 3)で開発し、Steam などのプラットフォームでの配信を予定している商用ビジュアルノベル
unrpa、rpatool、unrpycなどの既存のアンパッカーやデコンパイラにより、シナリオ、立ち絵、CG、音声が抽出され再配布されることを懸念している- アップデートが頻繁で、旧バージョンの解析結果を新バージョンに流用させたくない
- 保護処理を CI に組み込み、配布用ビルドのたびにアーカイブ化と検証を自動で行いたい
- 保護ソリューションにライセンス費用をかけたくない個人や小規模チーム
対応できない要件
- ゲームを完全に解析不可能にすること(いかなるクライアント側の保護でも不可能であり、RenMori も例外ではない)
- 画面録画への対策、または熟練した攻撃者による実行中プロセスからのメモリ抽出への対策
- 単一の作品、単一のバージョンに長期間取り組む専門家レベルのリバースエンジニアリングへの対抗
- Ren'Py 7.x 以前の Python 2 系エンジンを使用するプロジェクト
テスト状況
ランタイムは Windows、Linux、macOS 上の実際の Ren'Py エンジンで検証済みであり、Steam Deck(Proton)での動作検証は現在進行中です。
チームは現在 Steam の開発者権限を持っていないため、Steam SDK や Steam オーバーレイなどの関連機能は未検証です。互換性などの問題が発生した場合は、メールまたは GitHub リポジトリの Issue からご連絡ください。可能な限りサポートいたします。
リリース前に、必ずすべての対象プラットフォームでテストを完了してください。
ライセンス
RenMori は RenMori License 1.0(英語)で提供されています。これはソース公開型(source-available)のライセンスであり、OSI 承認のオープンソースライセンスではありません。商用作品を含め、あらゆる Ren'Py ゲームの保護は無料であり、ランタイムはゲームと共に無償で再配布できます。RenMori 本体やその改変版の販売、および RenMori を用いた有料の「暗号化代行」サービスの提供は禁止されています。
免責条項の全体、コントリビューションの提出要件、および開発者向けのライセンスに関する説明は、免責事項、提出要件、開発者向けの注意事項を参照してください。
お問い合わせ
ライセンスに関するご質問や技術的なサポートについては、team@mewbaka.cn までメールでご連絡ください。