コラム概要
■こんな方におすすめ:
ゲーム等のアプリ制作やリリースに関わる方、または関心のある方
アプリのセキュリティ対策に関心のある方
Windows PCゲームのセキュリティについて詳しく知りたい方
■難易度:★☆☆
■ポイント:
- PCゲームアプリはクラッキングやチートされる可能性がある
- PCゲームアプリ保護には様々な対策が必要となる
1. はじめに
DNPハイパーテックは、2025年8月22日~24日に開催された
「CEDEC2025」(コンピュータエンターテインメント開発者を対象としたゲームに関する技術や知識を共有する国内最大級のカンファレンス)
にて、スポンサーセッションに登壇しました。
今回のコラムは、セッション
「ゲームにおけるチート、海賊版対策の必要性 ~Windows PCゲームでの対策を考える~」
の要点をわかりやすくまとめたダイジェスト版です。
現在、拡大するゲームコンテンツ市場において、モバイルゲームが成熟していく一方、PCゲームは少しづつシェアを伸ばしています。弊社へのセキュリティ対策相談についても、Windows上で動作するPCゲームのクラッキング対策やチート対策に関する相談が年々増えている状況です。
今回は、Windows上で動作するPCゲームに対する解析行為と必要な対策について説明します。
2. クラッキングとチートについて
ゲームアプリの不正使用などで「クラッキング」や「チート」という言葉が使用されていますが、本コラムでは以下のように表現しています。
クラッキング
・アプリを不正に 解析 ・ 改ざん する行為
・行為を行う人=「クラッカー」
チート
・ゲームを有利に進める不正行為
・行為を行う人=「チーター」

この図は、そのクラッキングやチートが、ゲームアプリを対象にどのようにおこなわれるのかを表したイメージ図です。
クラッカーは、アプリを不正に解析し、判明した情報から、例えば、ダメージを無効化できるものや、課金を回避できるもの等、不正行為が行える改造アプリであるMOD(modification)や、DRM(Digital Rights Management)を解除した海賊版アプリ等を作成します。チートツールを使用することは誰でもできますが、アプリをクラッキングし、改造アプリ、海賊版アプリ、チートツール等を作成するには、深い技術知識やスキルが必要となります。また、アプリや通信の解析によって得られたアセット内のコンテンツ情報が抜き出され、ゲームの未公開情報などが、SNS等でリークされる被害等も発生しています。
3. PCゲームアプリへの攻撃イメージ
改造アプリ、海賊版アプリ、チートツール、どれを作るにしても、まずは「対象となるゲームアプリを解析すること」から攻撃は始まります。
Windows上で動作するPCゲームアプリに対する解析方法の一例について紹介します。

解析作業を基本的なアプローチに大きく3つに分けると
①静的解析→②動的解析→③コード特定
の順番で作業が進められます。
3-1.静的解析

解析対象のファイルが暗号化されていなかった場合、プログラムを実行しないで、クラッカーはEXE、DLLに対して、逆コンパイルや逆アセンブルを行ない、コード情報の取得を試みます。このとき、コード情報の取得ができたとしても、ソースコードが難読化されていた場合は、目的のコードが特定しづらくなります。
ソースコードの難読化については過去のコラム(「Javaソースコード難読化ツール自作入門」)でも紹介しているので参考にしてください。
目的のコードが取得できた場合は、その情報を用いて、アプリの改ざんやチートツール作成に取り掛かります。
3-2.動的解析

解析対象のファイルが暗号化されていた場合は、プログラムを実行しないとコード情報の取得ができないため静的解析は一旦あきらめ、②の動的解析を行います。アプリを起動して、デバッガやメモリエディタが使用できる場合は、それらのツールを使用して動的解析を実行しコード情報を取得します。
動的解析については過去のコラム(「Frida traceを使ったWindowsアプリの動的解析・改ざん方法」)でも紹介しているので参考にしてください。
デバッガやメモリエディタが使用できない場合は、コードを抜き出すDLLを作成、アプリ内にDLLインジェクションし、コード情報を取得します。DLLインジェクションは、アプリケーションのDLL上のルーチンやリソースへ、本来の処理とは異なる処理を行わせるために、別のDLLイメージを注入し、DLL関数の呼び出しを横取りする技法のことです。
3-3.コード特定

DLLインジェクションができない場合は、動的解析は一旦あきらめ、③のコード特定を行います。APIを監視できるツールが使用できる場合は、それを使用してAPIを見張り、攻撃の対象となるコードを特定します。
APIの監視については過去のコラム(「API Monitorによる解析とその対策」)でも紹介しているので参考にしてください。
API監視ツールが使用できず、コードを特定することができない場合、攻撃断念となる可能性が高いです。
4.PCゲームアプリ保護に必要な対策について
3章のように、対象となるゲームアプリを解析し、対象となるコードが特定できないと、アプリの改ざんやチートツールの開発が行えません。そのため 「いかにコードを特定させないか」 が非常に重要となります。
そこで、PCゲームアプリに実装しておきたい対策内容は以下のようになります。

5. クラッキング・チート対策製品 「CrackProof」の紹介

CrackProofは、Android/iOS/Windows 各種OS上で動作するアプリを対象に、それぞれのアプリをクラッキングやチート行為から強固に保護する製品です。お客様が開発し出来上がったアプリを対象に、クラッキング、チートに対抗する保護機能を追加します。
様々な保護機能を追加しますが、大きく分けると以下の3つの機能となります。
・アプリ保護機能
・デバッガ対策機能
・動作環境チェック機能
①アプリ保護機能
アプリの内部構造の改ざん(静的解析)を検出・阻止し、自動的に解析難度を向上させる複数の機能
②デバッガ対策機能
デバッガを用いた、実行中のアプリの動作解析・改造(動的解析)を防御する複数の機能
③動作環境チェック機能
不正な実行環境を検出し、攻撃者にとって有利な環境でのアプリの動作を無効化する機能
CrackProof for Windowsでは、コード特定を阻止するDLLインジェクション対策の機能なども含みます。また、それぞれの機能で検出および阻止した情報を、エラーログとして出力するエラーログ機能などもありお客様側でログを分析、活用いただく事もできるようになっています。
次に、これらの保護機能をアプリに追加する方法について説明します。

対象のアプリに保護機能を追加する堅牢化処理は開発が完了したアプリを、CrackProofクラウドサーバーにアップロードし、セキュリティ対策機能が付加されたアプリをダウンロードしていただく形でご利用いただけます。
また、WebAPIのご提供も行っておりますので、JENKINS等で作業を自動化されている企業様でも数多くご活用いただいております。
自社のアプリ保護をご検討の際は、クラッキング・チート対策にぜひCrackProofの利用をご検討いただければと思います。
当サイトでは、アプリのセキュリティについて詳しくわかる資料をご用意しています。
アプリのセキュリティやクラッキング対策についてご興味を持たれた方は、
ぜひダウンロードしていただけますと幸いです。
今回のコラムを読んで、自社タイトルのチート対策について詳しく話を聞いてみたいと思われた方は
当サイトからお気軽にお問い合わせください。
お問い合わせはこちら