Steamworks ドキュメンテーション
Steam DRM

概要

Steam DRM ラッパーは、ゲームの起動前に Steam を起動することでゲームの所有権と Steamworks 機能の正常動作を確認する、Steam プラットフォームにおける重要な部分です。

Steam DRMラッパー単独では、著作権侵害対策用ソリューションにはなりません。 Steam DRM ラッパーは、非常に軽度の著作権侵害行為 (例: すべてのゲームファイルを別のコンピュータにコピーする) の防止や、多少の難読化はできますが、悪意のある攻撃者であれば容易に解読できます。

不正コピーでは動作しない Steamworks の機能(オンラインマルチプレイヤー、実績、ランキング、トレーディングカードなど) を使って、ゲームの正規コピーの価値を高めることを提案しています。

Steam DRM ラッパーと他の DRM の組み合わせや、不正改ざん防止ソリューションに関する詳細情報は 他の DRM と Steam ラッパーを使用する を参照してください。

自動 Steam DRM ラッパー

Steam ラッパーは SteamPipe アップロードスクリプト内から適用できます。 これにより、ログイン中のクライアント経由で Steam サーバーに初期化リクエストが実行され、続いてテキスト形式の実行ファイルが HTTP 経由で Steam バックエンドに送信されます。 ラップはサーバー側で実行され、次に steamcmd がラップされた実行ファイルをダウンロードします。

SteamPipe で DRM ラップを実行するには、スクリプトをログインし、続いて以下の drm_wrap Steam コマンドを実行します:
drm_wrap [appid] [input filename] [output filename] [toolname] [flags] [<destination>]

パラメーター:
  • appid - アプリケーション ID
  • input filename - 入力ファイルとなるテキスト形式の実行ファイルへの相対または絶対パス。 パスにはスペースが含まれる場合もあるので、引用符で囲んでください!
  • output filename - ツールがラップ済み出力実行ファイルを書き込む場所の相対または絶対パス
  • toolname - "drmtoolp" は現在サポートされている唯一のツール名パラメーターです。
  • flags - ツールの動作を指定する次の数値フラグのビットマスク。
    • 0 - 通常ラップ (保護最大)
    • 6 - 互換モード (難読化を無効)
    • 32 - デバッガーチェックをスキップ
    • 38 - 互換モードでデバッガーチェックをスキップ (保護最小)
  • destination, optional parameter - "cloud"または"local"。 現在のデフォルトは"local"です。 "local"オプションは、cloudオプションの使用時に問題が発生しない限り必要ありません。

ログイン、DRM の適用、ビルドの構築、および Steam へのアップロードを行うための run_build.bat スクリプトの例 (App ID が 480 の場合) :
builder\steamcmd.exe +login mysteamaccount +drm_wrap 480 "D:\src\steamworkssdk\steamworksexample\release\steamworksexample.exe" "D:\src\steamworkssdk\tools\ContentBuilder\content\windows_content\SteamworksExample.exe" drmtoolp 0 +run_app_build ..\scripts\app_build_480.vdf +quit

手動の Steam DRM ラッパー

Steam ラッパーで手間をかけずに実行ファイルをラップするには、Steamworks アプリデータ管理ページを利用して、プライマリゲーム実行ファイルをラップしてください。

  1. アプリ管理ページでDRMを追加したいゲームを選択します
  2. アプリ管理ページのテクニカルツール内の「Steamworks設定を編集」を選択します
  3. セキュリティタブからDRMを選択します
  4. プライマリゲーム実行ファイルをアップロードします - ツールの実行オプションについては、自動ラッパーセクションをご覧ください
  5. exeをローカルマシンにダウンロードし直します
  6. exeの名前をオリジナルに戻します
  7. コンテンツツールデポのソースの場所に、そのexeをコピーします
  8. デポの新しいバージョンを構築します
  9. ローカルコンテンツサーバー上でそのデポをテストします

他の DRM と Steam ラッパーを使用する

Steam ラッパーは他の DRM ソリューションと併用できます。 使用するには、他の DRM を適用する前に互換モードで Steam ラッパーを適用してください。 DRM ソリューションに干渉させないためにも、これをはじめに実行してください。 互換モードはラッパーの DRM 能力を無効にします。

Steamworks ページにあるドロップダウンから選択するか、あるいは自動 drmtool から適切なフラグを使用することで、実行ファイルを互換モードで提出できます。

よくある質問

Q. Steamラッパー適用後に、C# / .Netゲームが起動しなくなりました。
A. Steam ラッパーは .Net アプリケーションをサポートしていません。 DRM ラッパーの代わりに、SteamAPI_RestartAppIfNecessary を使用してください。

Q. Steam DRM ラッパーを適用した後、ゲームが動作しなくなりました。
A. Steam ラッパーは他の DRM ツールを壊すことがあります。 競合の問題の可能性があるので、他の DRM と Steam ラッパーを使用するをご覧ください。

Q. 新しいビルドを構築する度に、exeにDRMを適用する必要がありますか?
A. はい、パブリッシュしたいと考えているそれぞれのビルドを Steam ラッパーでラップする必要があります。 上記の自動 Steam ラッパーを使用して、自動化してみてください。

Q. Steam DRMラッパーを適用した後に、アンチウィルスベンダーが、ゲームのバイナリをウィルスに感染しているとして検出しました。 どうすればいいですか?
A. DRMインジェクションのプロセスは、ウィルスが行うのと同じ方法でバイナリに変更を加えるため、このような誤検知の発生はあり得ます。 ベンダーに連絡するか、Steam DRMラッパーの代わりにAPIを使用してください。