WienerWiener
  • はじめに
  • 競合比較
  • 価格・入手
  • FAQ
  • 向いているケース
  • ライセンス
  • Unity Asset版とStandalone版の違い
  • 簡易難読化・改ざん検知
  • 整合性検知・デバッグ
  • ローカライズ
  • バージョン管理
  • Google Sheets入力
  • Excel
  • YAML
  • 設定ファイル
  • データフォーマット
  • マスターデータコンバート
  • ValueOnlyフォーマット
  • スタートアップ
  • サンプル
  • Converter
  • YAML Editor
  • Setting Editor
  • 日本語
  • English
  • はじめに
  • 競合比較
  • 価格・入手
  • FAQ
  • 向いているケース
  • ライセンス
  • Unity Asset版とStandalone版の違い
  • 簡易難読化・改ざん検知
  • 整合性検知・デバッグ
  • ローカライズ
  • バージョン管理
  • Google Sheets入力
  • Excel
  • YAML
  • 設定ファイル
  • データフォーマット
  • マスターデータコンバート
  • ValueOnlyフォーマット
  • スタートアップ
  • サンプル
  • Converter
  • YAML Editor
  • Setting Editor
  • 日本語
  • English
  • 機能

    • 簡易難読化・改ざん検知
    • 整合性検知・デバッグ
    • ローカライズ
    • バージョン管理
    • Google Sheets入力

簡易難読化・改ざん検知

本機能について

本機能はAES等の強暗号化ではありません。マスターデータのカジュアルな解析・改ざんへの保護を目的とした簡易難読化です。

本格的なセキュリティが必要なデータ(課金情報・アカウント認証等)はサーバー側での管理を推奨します。

目的と保護範囲

Wienerの難読化・改ざん検知機能は、マスターデータのカジュアルな解析・改変への保護を目的としています。

  • バイナリエディタでの値の読み取りを防ぐ
  • テキスト検索による値露出を防ぐ
  • ロード後のメモリ上への不正な書き換えを検知する

注意: 個人情報など高度なセキュリティが必要なデータはサーバー側で管理してください。Wienerの簡易難読化はゲームマスターデータの簡易保護に特化した設計です。

データ難読化

難読化の指定方法は2種類あります。

この設定は、主にロード後のメモリ改ざん検知と、値の直接的な読み取りを難しくするためのものです。難読化対象が増えるほどメモリ消費量が増え、アクセスごとにわずかにCPUを消費します。全フィールドを一律に難読化するのではなく、改ざん検知や保護が必要なデータだけに指定することを推奨します。

ヘッダーで一括指定: encryption: True を設定すると、fields の全てのキーを難読化します。

# テーブルヘッダー(全フィールドを難読化)
encryption: True

フィールド単位で指定: fields の各キーに encryption: True を設定すると、そのキーのみ難読化します。

fields:
  - key: DropRate
    name: drop_rate
    type: UInt
    encryption: True   # このフィールドのみ難読化
  - key: Name
    name: name
    type: String
    # encryption 未指定 → 平文のまま

対応する型: Byte, Short, UShort, Int, UInt, Long, ULong, Float, Double, String

ファイル改ざん検知

ロード時(LoadBasicPack)にハッシュ照合が行われ、バイナリが書き換えられていた場合は即エラーを返します。
詳細は 整合性検知 を参照してください。

メモリ改ざん検知

SetFalsifyDelegate でデリゲートを登録しておくと、ロード後のメモリ上で難読化フィールドへの不正な書き換えを検知できます。

WienerManager.SetFalsifyDelegate((fieldName) => {
    Debug.LogError($"メモリ改ざん検知: {fieldName}");
    // クラッシュレポートへの送信や強制終了などを行う
});

詳細ドキュメント

  • フィールド単位の設定: yaml-fields — encryption
  • ヘッダー設定: yaml-header — encryption
  • C# API: format-csharp
最終更新:: 2026/06/02 19:13
Contributors: artisan-sawasaka
Next
整合性検知・デバッグ