Unityのモバイルゲーム向けセキュリティ関連覚書

:::note warn
Zennへ[Unityのモバイルゲーム向けセキュリティ関連覚書](https://zenn.dev/s_ryuuki/articles/e65af482a789cf)を移管しました。
今後このページは更新されません。
:::

# 免責事項

:::note alert
この記事に記載されている内容を、実際に試して発生した損害に対していかなる責任も負いません（補償しません）。
すべて自己責任のもとで行ってください。
:::

リリースされているアプリやゲーム、[ソフトウェア利用許諾契約（EULA）](https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E5%88%A9%E7%94%A8%E8%A8%B1%E8%AB%BE%E5%A5%91%E7%B4%84#%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0)やアプリケーション利用規約などでリバースエンジニアリングは禁止されています。
実際に試す場合は、自分で開発しているアプリやゲームや脆弱性確認用でリリースされているアプリやゲームを使いましょう。

# はじめに
ハック（攻撃）と対策（防御）は表裏一体です。どのようなハックが行われるのかを知らないと対策は行えません。
ハックする側の方が、時間や対応者の人数など基本有利です。
日々新たな問題が発生しています。最新の情報を常に確認する必要があります。

リンクは、すべて目は通していますが、すべてを試しているわけではありません。
上手くいかない、よくわからないなどはキーワードをピックアップして検索してみると良いでしょう。

[オンラインゲームセキュリティ(株式会社データハウス)](http://www.data-house.info/book/12513.html)という本が出ている。
これだけでは足りなけれども。用語や知ったり、いろいろな問題が書かれているので取っ掛かりとして参考になる。

**追記**
「[Unityのモバイルゲーム向けクラッキングが行われるポイントを整理してみた](https://qiita.com/s_ryuuki/items/c6b63d108959582a2b2e)」として対応する場所ををまとめてみました。

# Unity
## 手法解説
- [ゲームでよくされるチート手法とその対策 〜アプリケーションハッキング編〜 \- Qiita](https://qiita.com/taptappun/items/b759df240c919d55c408)
- [スマホゲームのチート手法とその対策 \[DeNA TechCon 2019\]](https://www.slideshare.net/dena_tech/dena-techcon-2019-132194701)
- [スマホゲームのチート対策について \| 株式会社オーツー｜スタッフブログ](https://www.otwo.jp/blog/cheat_measures/)
- [めんどうくさいゲームセキュリティ \- Speaker Deck](https://speakerdeck.com/tkmru/mendoukusaigemusekiyuritei)
- [【Unity】Unity 製の PC ゲームにおける逆コンパイル・改造の方法と難読化による対策を紹介 \- コガネブログ](http://baba-s.hatenablog.com/entry/2018/12/06/090000)
- [スマートフォンゲームのチート事情](https://www.slideshare.net/ssuser8200d3/ss-59926328)
- Line
  - [セキュリティエンジニアからみたUnityのこと \- LINE ENGINEERING](https://engineering.linecorp.com/ja/blog/unity-from-a-security-engineer-point-of-view/)
  - [DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
](https://www.slideshare.net/harupu/denatechcon2017dena)
  - [\[CEDEC2017\] LINEゲームのセキュリティ診断手法](https://www.slideshare.net/linecorp/cedec2017-line)
  - [ゲームセキュリティ運営から見たチート対策としてのモニタリングについて \- LINE ENGINEERING](https://engineering.linecorp.com/ja/blog/monitoring-to-prevent-game-cheating/)
  - [PacketProxyとapk\-meditを使いこなす！最新ツールを使用したスマホゲーム診断 \- Flatt Security Blog](https://flattsecurity.hatenablog.com/entry/2020/07/28/110000)
- [CEDEC2020: ゲームエンジニアだからこそ実現できるプロダクト特化型チート対策](https://cedec.cesa.or.jp/2020/session/detail/s5e8315e0756e9)
  - [CEDiL](https://cedil.cesa.or.jp/)に資料が上がったらリンクを差し替える
- [Android Republic \- Android Game Mods](https://androidrepublic.org/portal/)
  - 手法ではなくクラックされたapkが取得できる。どんな攻撃があるか参考にできる
  - ダウンロードして使用することは推奨しません。
- [ネットワークゲームとチートについて｜黒河優介｜note](https://note.com/wotakuro/n/n5f00347d0390)
- [Valve アンチチート \(VAC\) とゲーム禁止 \(Steamworks ドキュメント\)](https://partner.steamgames.com/doc/features/anticheat)
  - そのままでは適応できない箇所もあるが参考になる。
- [Cheating in online games \- Wikipedia](https://en.wikipedia.org/wiki/Cheating_in_online_games)
  - チート手法まとめ
- [［CEDEC＋KYUSHU］ポールトゥウィンの森島健斗氏による「ゲームセキュリティ白書2022　～チート対策の最前線～」講演レポート](https://www.4gamer.net/games/999/G999905/20221113003/)
- [Unity製アプリに対するよくある不正行為とその対策 \- Qiita](https://qiita.com/hanaaaaaachiru/items/04760d8c6cbda167cb27)
- [DeNAでのセキュリティチェックから分かるゲーム開発で作りがちなチートの穴 \| BLOG \- DeNA Engineering](https://engineering.dena.com/blog/2023/01/game-vulns/)
  - クライアント・サーバ通信、メモリ改ざん、その他に関しての解説

## リバースエンジニアリング
- [Perfare/Il2CppDumper: Unity il2cpp reverse engineer](https://github.com/Perfare/Il2CppDumper)
  - [【Unity】IL2CPP ビルドされた APK から \.NET のメタデータを抽出できるリバースエンジニアリングツール「Il2CppDumper」紹介 \- コガネブログ](http://baba-s.hatenablog.com/entry/2019/01/07/180000)
- [0xd4d/dnSpy: \.NET debugger and assembly editor](https://github.com/0xd4d/dnSpy)
  - [凄すぎて大草原不可避な\.NET デコンパイラdnSpyを使ってみる \- Qiita](https://qiita.com/Tokeiya/items/54fbf30cb21c77c05c41)
  - [IL　DnSpyが神ツールだった件 \- はかせのラボ](https://hakase0274.hatenablog.com/entry/2019/09/11/222621)
- [BepInEx/BepInEx: Unity / XNA game patcher and plugin framework](https://github.com/BepInEx/BepInEx)
  - [ManlyMarco/RuntimeUnityEditor: In\-game inspector and debugging tools for applications made with Unity3D game engine](https://github.com/ManlyMarco/RuntimeUnityEditor)
- [Visual Studioの C\#で開発した \.Netアプリを逆コンパイルして、中身の実装を覗き見る方法 \(C\#で開発した \.Netアプリは比較的簡単に元のソースコードに戻せます\)](http://www.neko.ne.jp/~freewing/software/visual_studio_dot_net_decompiler/)
- [GNU Project Debugger の代替および類似のソフトウェア \- ProgSoft\.net](https://progsoft.net/ja/software/gnu-project-debugger)
  - [Ghidra](https://ghidra-sre.org/)
  - [初心者がGhidraを使ってみた \| リバースエンジニアリング \- 生物系がゼロから始めるIT技術](https://www.bioerrorlog.work/entry/ghidra-beginner)
- [djkaty/Il2CppInspector: Powerful automated tool for reverse engineering Unity IL2CPP binaries](https://github.com/djkaty/Il2CppInspector)
  - [IL2CPP \| Katy's Code](https://katyscode.wordpress.com/category/reverse-engineering/il2cpp/)
- [【Android】APKをデコンパイルしてみる \- Qiita](https://qiita.com/maika_kamada/items/904e842c691e4a66e4a8)

## AssetBundle
標準で暗号化されていない。
ネットワーク経由でダウンロードされたり、ストレージに保存されているデータを取り出し。
ツールを使って内容を確認できる。

- [AssetBundleの解析手法とその対策について \- Qiita](https://qiita.com/k7a/items/b64d6f7859f4332220ba)
   - [Releases · DerPopo/UABE]https://github.com/SeriousCache/UABE/releases)
   - [Perfare/AssetStudio](https://github.com/Perfare/AssetStudio)
- [某スマホゲーのデータを抽出する方法 \| のんのんぶろぐ](https://non-non-blog.com/pc-it/%E6%9F%90%E3%82%B9%E3%83%9E%E3%83%9B%E3%82%B2%E3%83%BC%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/)
- [UnityEX \- Вскрытие игровых ресурсов \- Zone of Games Forum](https://forum.zoneofgames.ru/topic/36240-unityex/)
- [mafaca/UtinyRipper: GUI and API library to work with Engine assets, serialized and bundle files](https://github.com/mafaca/UtinyRipper)
- [【Unity】Scripted Importerを使ってUnityが対応していない拡張子のファイルに対応する\(テキスト暗号化も\) \- はなちるのマイノート](https://www.hanachiru-blog.com/entry/2022/12/15/180000)


## 通信
- [\[Unity/C\#\]WWW/HttpWebRequestにおける中間者攻撃の危険性を考慮した通信プログラムまとめ \- Qiita](https://qiita.com/harmegiddo/items/b72ca4f430292251c8a6)
- [Networking\.UnityWebRequest\-certificateHandler \- Unity スクリプトリファレンス](https://docs.unity3d.com/ja/2018.4/ScriptReference/Networking.UnityWebRequest-certificateHandler.html)
  - [UnityのHttpWebRequestで自己署名証明書のローカルHTTPSサーバに通信したらいろいろハマった時の記録（結局ローカルやめてFaaSにした） \- fuzzy study](http://fuzzy0.hatenablog.com/entry/2019/07/03/093055)
  - [UnityWebRequest and HTTPS not working \- Unity Forum](https://forum.unity.com/threads/unitywebrequest-and-https-not-working.539601/#post-4090813)

## 対策
### 実装
#### プログラム保護
- [Unityにおける、Androidアプリの改変防止コード｜TAM@レトロゲーム制作｜note](https://note.com/tamtamgames/n/n12fa46747968)
- [Obfuscator \| ユーティリティ \| Unity Asset Store](https://assetstore.unity.com/packages/tools/utilities/obfuscator-48919?locale=ja-JP)
  - [【Unity】ソースコードを難読化して改造対策をする「Obfuscator」を使ってみる \- Bocchi Games](https://bocchi-games.hatenablog.com/entry/obfuscator)
- [Anti\-Cheat Toolkit \| ユーティリティ \| Unity Asset Store](https://assetstore.unity.com/packages/tools/utilities/anti-cheat-toolkit-152334?locale=ja-JP)
  - [メモリ改ざんの抑止やPlayerPrefsの暗号化、端末時間の改ざんの検出にオンライン上の時間の取得など、様々なチート対策ができるAnti\-Cheat Toolkit【Unity】【アセット】 \- \(:3\[kanのメモ帳\]](https://kan-kikuchi.hatenablog.com/entry/Anti_Cheat_Toolkit)
  - [Anti\-Cheat Toolkit　メモリ、セーブデータの改ざんを防止＆検出してゲームを守る大人気スクリプト（全ての機能を紹介） \- Unity AssetStoreまとめ](http://www.asset-sale.net/entry/Anti-Cheat_Toolkit)
- [Android Emulator Detector Unity Compatible\.](https://github.com/mofneko/EmulatorDetector)
  - Androidエミュレータチェックライブラリ
- [スマホアプリの難読化/堅牢化について \- Qiita](https://qiita.com/ononon/items/b469884e2f27641dc12f)
- [プログラムの難読化 セキュリティごった煮ブログ: タグリスト](https://netagent.co.jp/study/blog/taglist.html#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%81%AE%E9%9B%A3%E8%AA%AD%E5%8C%96)
- [改造apk（MOD）の作り方 ＆ その対策](https://qiita.com/yukiarrr/items/764adb88f5a485f714d8)
  - [改造apk\(MOD\)はどうやって作られるのか ~Unityにおけるチート手法を紹介~ \| Unity Learning Materials](https://learning.unity3d.jp/3894/)
  - [yukiarrr/Il2cppSpy: Unity IL2CPP Disassembler \(for apk\)](https://github.com/yukiarrr/Il2cppSpy)
- [Unityのil2cppバイナリを簡易静的解析して対策してみる](https://zenn.dev/waz/articles/02d9aa5bbda1e7)
- [ookii\-tsuki/SafeValues: A simple Unity library for cheating prevention](https://github.com/ookii-tsuki/SafeValues)
- [GitHub \- TinyPlay/Pixel\-Anticheat: This is a simple and open\-source anti\-cheat toolkit for your games on Unity\. This toolkit developed by TinyPlay for Pixel Incubator\.](https://github.com/TinyPlay/Pixel-Anticheat)
  - [機能紹介ページ](https://github.com/TinyPlay/Pixel-Anticheat/wiki/Get-Started)

#### データ保護
- [Easy Save \- The Complete Save & Load Asset \| 入出力管理 \| Unity Asset Store](https://assetstore.unity.com/packages/tools/input-management/easy-save-the-complete-save-load-asset-768?locale=ja-JP)
- [💾 SqlCipher made easy for Unity3d](https://github.com/netpyoung/SqlCipher4Unity3D)
  - SQLiteの内容を暗号化するSQLCipher付きでライブラリ化されているもの。バイナリしかないので何か変なものが入っていないかの確認とライセンスに関しては確認が必要。
- [UnityにSQLCipherを導入して暗号化DBを使う](https://zenn.dev/shiena/articles/unity-sqlcipher)
  - セルフビルドでSQLCipherを準備する方法
- [Unity で iOS/Android アプリの設定値をセキュアに扱う方法](https://zenn.dev/nikaera/articles/unity-ios-android-secret-manager)
- [Unity製アプリにおいてアセットを暗号化する手法 \| QualiArtsエンジニアブログ](https://technote.qualiarts.jp/article/32)
- [AWSのアクセスキーをハードコードする \- Qiita](https://qiita.com/sator_imaging/items/1d5d2282cfa3716f26e9)

### 独自対応
- [DeClang 誕生！Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】](https://www.slideshare.net/dena_tech/declang-clang-dena-techcon-2020)

### CrackProof
- [CrackProofについて \| DNPハイパーテック](https://www.hypertech.co.jp/crackproof/)
  - [開発者コラム一覧 \| DNPハイパーテック](https://www.hypertech.co.jp/colums)
  - [Technology Note \| テクノロジーに関する cutting edge な話題をお届け](https://www.hypertech.co.jp/blog/)
  - [ダウンロード資料一覧 \| DNPハイパーテック](https://www.hypertech.co.jp/downloads/)（要登録）
- [モバイルゲームのチート対策――チーターの動機と手法：CEDEC2019](https://jp.ign.com/cedec-2019/38696/news/cedec2019)
- [【CEDEC2019】リバースエンジニアリングとチート事例から学ぶセキュリティ対策 \- YouTube](https://www.youtube.com/watch?v=UfzX_2BEZJM)
- [リバースエンジニアリングとチート事例から学ぶセキュリティ対策](https://cedil.cesa.or.jp/cedil_sessions/view/2084)（**cedil登録するとダウンロードできる。整理されていてわかりやすいです。**）
- [【CEDEC2018】セキュリティ会社のエンジニアが 2018年のチート事情について伝えてきました \| Technology Note](https://www.hypertech.co.jp/blog/cedec2018session/)
- [PC・モバイルゲームアプリへの攻撃と対策ポイント（ Android / iOS / Windows ）](https://cedil.cesa.or.jp/cedil_sessions/view/2449)
- [クラッキング対策ツール「CrackProof」とは何か？人気アプリにも数多く採用されるツールの現状を、開発元に訊いた \- AUTOMATON](https://automaton-media.com/articles/interviewsjp/20211214-185768/)

### その他のセキュリティサービス
- [DxShield \|スマホアプリ開発者向けセキュリティサービス](https://dxshield.lemonadeworks.com/)
- [Denuvo \- Irdeto](https://irdeto.com/denuvo/)
  - [DLC向け海賊版対策技術「Denuvo SecureDLC」発表。SteamやEGSに対応、“業界初”のDLC特化型DRM \- AUTOMATON](https://automaton-media.com/articles/newsjp/20220702-209053/)
- [Secure your world \| Byfron Technologies](https://byfron.com/)
  - [フォートナイト：超強力アンチチート”HYPERION”導入開始で全チーターお通夜状態 \| EAA\!\! FPS News（イーエーエー/いえぁ）](https://fpsjp.net/archives/423632)
# クライアント（端末）
## リバースエンジニアリング
### 総合

いろいろな手法がまとめられています。

- [Introduction - owasp-mstg-ja](https://coky-t.gitbook.io/owasp-mstg-ja/)
  - 手っ取り早く何やればいいかは、[Androidのアンチリバース防御](https://coky-t.gitbook.io/owasp-mstg-ja/android-tesutogaido/0x05j-testing-resiliency-against-reverse-engineering)、[iOSのアンチリバース防御](https://coky-t.gitbook.io/owasp-mstg-ja/ios-tesutogaido/0x06j-testing-resiliency-against-reverse-engineering)を見る。
  - [テストツール→脆弱なアプリケーション](https://coky-t.gitbook.io/owasp-mstg-ja/fu-lu/0x08-testing-tools#naapurikshon)のリンクがある。これで試すことができそう。
- [株式会社Ninjastars 技術研究部 「もっと楽しく安全なゲームの世界を創る」](https://www.ninjastars-net.com/)
- [『Androidアプリのセキュア設計・セキュアコーディングガイド』2019年9月1日版の一部変更、同英語版公開しました。 ｜ JSSEC](https://www.jssec.org/report/20191201_securecoding.html)
- [アプリ セキュリティに関するベスト プラクティス  \|  Android デベロッパー  \|  Android Developers](https://developer.android.com/topic/security/best-practices?hl=ja)

#### メモリ改ざん
-  [脆弱性診断用に非ルート化端末でも動作するCUIのメモリ改ざんツール「apk\-medit」を作った話 \- Akatsuki Hackers Lab \| 株式会社アカツキ（Akatsuki Inc\.\)](https://hackerslab.aktsk.jp/2020/03/30/112609)
  - Android向けのツール:[apk-medit Watch Star](https://github.com/aktsk/apk-medit)
- プログラムがメモリをどう使うかを理解する [\(1\)](https://zenn.dev/rita0222/articles/e6ff75245d79b5) / [\(2\)](https://zenn.dev/rita0222/articles/beda4311d9a6bf) / [\(3\)](https://zenn.dev/rita0222/articles/f59b79bab45a2a)
  - 攻撃手法ではないがメモリに関して理解できる内容が書かれている

### 再パッケージ
#### Android
- [Android の改竄とリバースエンジニアリング \- owasp\-mstg\-ja](https://coky-t.gitbook.io/owasp-mstg-ja/android-tesutogaido/0x05c-reverse-engineering-and-tampering#rirsuapurinodebaggu)
  - リリースアプリのデバッグ→再パッケージ化

#### iOS
- [ipaファイルを新しいProvisioning Profileを使って再署名\(resign\)する \- 酢ろぐ！](https://blog.ch3cooh.jp/entry/20170419/1492612168)
  - [maciekish/iReSign: iReSign allows iDevice app bundles](https://github.com/maciekish/iReSign)
  - [iOS App Signer \- Instructions](https://dantheman827.github.io/ios-app-signer/)

## 実端末チェック
### Android
- [SafetyNet によるセキュリティ上の脅威からの保護  \|  Android デベロッパー  \|  Android Developers](https://developer.android.com/training/safetynet?hl=ja)
  - SafetyNet Attestation API が、アプリを実行しているデバイスが Android 互換性テストに合格しているかどうかを判断するためのサービスを、どのように提供しているかを学びます。
  - [SafetyNet Attestation APIでRoot化チェック【基本的な検証編】 \| RE:ENGINES](https://re-engines.com/2018/12/26/safetynet-attestation-api-basic/)
    - 1日1万リクエストまでの制限があるため増やす場合は申請する必要がある
    - [SafetyNet Attestation API \-\- 割り当てリクエスト \- Play Console ヘルプ](https://support.google.com/googleplay/android-developer/contact/safetynetqr)
- [Play Integrity API  \|  Google Play  \|  Android Developers](https://developer.android.com/google/play/integrity)
  - [Android Developers Japan Blog: Play Integrity API のノンス フィールドでアプリのセキュリティを強化する](https://android-developers-jp.googleblog.com/2022/08/boost-security-of-your-app-with-nonce.html)
    - 中間者 (PITM) 改ざん攻撃やリプレイ攻撃といった特定の種類の攻撃を軽減する方法の解説

### iOS
- [新しいApp Attest APIでAppの健全性を検証 \- ニュース \- Apple Developer](https://developer.apple.com/jp/news/?id=2sngpulc)
  - iOS14から使用できるAPI
- [DeviceCheck \| Apple Developer Documentation](https://developer.apple.com/documentation/devicecheck)
  - 端末からAppleのサーバへ問い合わせレスポンスを自サーバに送り。自サーバでチェックすることでAppleに登録された端末か確認することができる。
- [iOS11で追加されたDeviceCheckについて \- Qiita](https://qiita.com/owen/items/85dff1e45083d2805140)
- [iOS 11からのDeviceCheck \#とは](https://www.slideshare.net/kenjitanaka58/ios-11devicecheck)
- [\[iOS 11\] 初回起動判定などに使える DeviceCheck フレームワークとは \#WWDC17 \| Developers\.IO](https://dev.classmethod.jp/articles/ios-11-device-check/)
- [ios \- DeviceCheck API\-iOSデバイスの一意の識別子？ \- ITツールウェブ](https://ja.coder.work/so/ios/1335299)
- [App Attest APIの概要 \- Qiita](https://qiita.com/tonionagauzzi/items/36361ab6a99728787550)

### Firebase
- [Firebaseアプリのチェック  \|  Firebase App Check](https://firebase.google.com/docs/app-check)
  - AppleプラットフォームでのDeviceCheckまたはAppAttest
  - AndroidでIntegrityまたはSafetyNet（非推奨）

## エミューレータ
### Android
- [最高のアンドロイド エミュ \- ブルースタックス アンドロイド エミュ](https://www.bluestacks.com/ja/index.html)
- [NoxPlayer](https://jp.bignox.com/)
- [LDPlayer \- ゲーマー向けの最高のPC Android エミュレーター](https://jp.ldplayer.net/)
- [MEmu\-一番軽い無料Androidエミュレータ](https://www.memuplay.com/jp/)
- [Android Developers Blog: Run ARM apps on the Android Emulator](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)
  - Android11から純正エミュレータの性能が上がるようです？

## ネットワーク
### 物理
- [おうち LTE ネットワーク構築レシピ](http://hassiweb-programming.blogspot.com/2020/03/in-home-lte-network-recipe.html)
- [LANケーブルをニッパーで切断し５秒でネットワークへ侵入・盗聴できるか実験してみました \- DARK MATTER](https://io.cyberdefense.jp/entry/lan-cable-intrusion)
- [Wi\-Fi通信を盗み見る脆弱性「Kr00K」が発見。MacやiPhone、Raspberry Piなど多くのデバイスが対象に \- PC Watch](https://pc.watch.impress.co.jp/docs/news/1237645.html)

### テスト環境作成

マックを使えばあまり難しいことを考えずに設定できます。

#### ルーター化
Wifi+Lanの構成でルーター構築可能です。
macで通信内容の解析ツールを動かすして確認しやすいです。
macにLanポート2つ使用してLan+Lanでも構成できます。

- [Macでインターネット接続を共有して、Wifiアクセスポイントにする方法！ Aprico](https://aprico-media.com/posts/1284)

#### 帯域制限

- [できるだけかんたんに Windows / macOS / iOS / Android を低速な回線（帯域制限）状態にする方法 \- Qiita](https://qiita.com/shimizumasaru/items/64f07f97678e25c5188a)
- [便利すぎる！iOSアプリでネットワークテストをNetwork link Conditionerを使って行う - Kekeの日記](https://www.1915keke.com/entry/2018/09/05/230000)

#### 攻撃（解析）

##### https(http）
mitmproxyがそこそこ使いやすいです。

- [mitmproxy \- an interactive HTTPS proxy](https://mitmproxy.org/)
  - [mitmproxy docs](https://docs.mitmproxy.org/stable/)
  - [【2019年12月版】mitmproxyでアプリの通信内容を確認したい \- Qiita](https://qiita.com/pro_matuzaki/items/cceaead10a0a567e5bf9)
  - [mitmproxyでOSX上に透過型プロクシを立てる方法](https://gist.github.com/ykst/6fbdfe81d75a0a690559f2a405aec6a6)
  - [モバイルアプリ開発者のための mitmproxy 入門 \- Qiita](https://qiita.com/hkurokawa/items/9034274cc1b9e1405c68)
  - [mitmproxy を使ってアプリの API を無理やり開発環境に向ける \- Qiita](https://qiita.com/yuya_takeyama/items/979e00cf0b87dae92e28)

##### すべてのプロトコル
https以外もみたい場合は、tcpdumpやWiresharkなどを使用しましょう。

- [the\-tcpdump\-group/tcpdump: the TCPdump network dissector](https://github.com/the-tcpdump-group/tcpdump)
- [bettercap](https://www.bettercap.org/)
  - [ペネトレーションツールの紹介　～bettercap編～: NECセキュリティブログ \| NEC](https://jpn.nec.com/cybersecurity/blog/200403/index.html)
- [Wireshark · Go Deep\.](https://www.wireshark.org/)
  - [WiresharkのDissectorを使った独自プロトコル解析をやさしく解説してみました \- DARK MATTER](https://io.cyberdefense.jp/entry/wireshark_lua_original_dissector)
  - [Wireshark で独自プロトコルを解析 \(dissector with Lua\) \- Qiita](https://qiita.com/castaneai/items/734fbe2fbdd66f226d50)
  - [Wiresharkでのプロトコル分析（Wireshark Custom Dissectorの製作） \| TOAST Meetup](https://meetup-jp.toast.com/1137)
  - [Wiresharkの解析プラグインを作る ssmjp 201409](https://www.slideshare.net/mnrkbys/wireshark-ssmjp-201409)
  - [ネットワークキャプチャデータを見る時のTips \- Qiita](https://qiita.com/m_mizutani/items/dc331fa89ca9b7c2a0fe)
  - [Wiresharkによる無線LAN通信の復号手順メモ – \(n\)](http://n.pentest.ninja/?p=31621)

##### TLS(SSL)
[HTTPSトラフィックを復号化する3つの方法の概要](https://translate.google.com/translate?hl=ja&sl=zh-CN&u=https://imququ.com/post/how-to-decrypt-https.html&prev=search)
- [PFSなTLS通信を復号する](https://www.slideshare.net/mnrkbys/pfstls)
- [joernheissler/SslMasterKey: Retrieve the Master Key and Client Random from an ssl\.SSLSocket](https://github.com/joernheissler/SslMasterKey)
- [SSLKEYLOGFILE \- Everything curl](https://ec.haxx.se/usingcurl/usingcurl-tls/tls-sslkeylogfile)


#### 環境設定
##### Android

- [Google Developers Japan: Android での TLS 採用に関する最新情報](https://developers-jp.googleblog.com/2020/01/android-tls.html)
- [Android端末上のHTTP／HTTPS\(SSL\)通信内容を傍受・解析する方法](https://amimilab.com/2016/08/14/post-183/)

##### iOS
- [Macに接続したiPhoneのパケットをキャプチャする\(Wireshark\) \- Qiita](https://qiita.com/tenten0213/items/345b644e1212ea165ae8)
- [iPhoneのパケットキャプチャ \- Qiita](https://qiita.com/HIkaruSato/items/1f66c1a189bf9c19f838)

#### 生成

##### 一般的なプロトコル生成

httpやhttpsなどを生成できます。

- [curl/curl: A command line tool and library for transferring data with URL syntax](https://github.com/curl/curl)
  - HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP
  - [Introduction \- Everything curl](https://ec.haxx.se/)
  - [RESTful Web APIを扱う時の基本手法のまとめ（cURLコマンド利用） \- acokikoy's notes](https://acokikoy.hatenablog.com/entry/2019/09/29/214642)
  - [curlコマンドでapiを叩く \- Qiita](https://qiita.com/bunty/items/758425773b2239feb9a7)
  - [【PDF版】curlコマンド完全に理解する \- noranecoわーるど@graneed支店 \- BOOTH](https://booth.pm/ja/items/1573953)

##### パケット生成

パケットを自由に生成できます。

- [Scapy](https://scapy.net/)
  - [Scapy入門 \- Qiita](https://qiita.com/shoooooo/items/4080752d0d8c7a9ef2aa)
  - [Scapyで作る・解析するパケット](https://www.slideshare.net/takahoyo/scapy-53353876)
  - [ScapyによるTCP通信 \- Qiita](https://qiita.com/montblanc18/items/d26012962e75d4f764ab)

## 位置情報

### Android

デベロッパー機能で位置偽造ができます。

- [Androidで現在地の位置情報を偽装する方法\! スマホのGPSを仮の擬似ロケーションへ変更しよう](https://sp7pc.com/google/android/45756)
- [gps \- Android mock location on device? \- Stack Overflow](https://stackoverflow.com/questions/2531317/android-mock-location-on-device/29139892)
  - [luv/mockgeofix](https://github.com/luv/mockgeofix)

APIでmock locationが使用されているかのチェックはできます。

- [android \- Disable / Check for Mock Location \(prevent gps spoofing\) \- Stack Overflow](https://stackoverflow.com/questions/6880232/disable-check-for-mock-location-prevent-gps-spoofing)
  - isFromMockProvider:[Location  \|  Android デベロッパー  \|  Android Developers](https://developer.android.com/reference/android/location/Location#isFromMockProvider())

### iOS

デベロッパーモードにしてツールを使用すると位置情報が偽造できます。

- [【iOS11】Simulate Location無しでの位置偽装 \| Qkyo9Log](https://qkyo9.com/ios11_location)
  - [【無料・脱獄不要】iOS12対応ポケモンGO位置偽装の方法！！2019/5/8更新 \| Adolfoi\.info](https://adolfoi.info/?p=143)
  - [libimobiledevice \- A cross\-platform software library and tools to communicate with iOS devices natively](http://www.libimobiledevice.org/)

# サーバ
- [セキュリティエンジニアになり、そこから2年間分の勉強内容と参考になった資料とか \- ぶるーたるごぶりん](https://brutalgoblin.hatenablog.jp/entry/2020/02/15/153805)
- [オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 \(PHPカンファレンス2019\)](https://www.slideshare.net/ockeghem/phpconf2019)
- [セキュリティ入門 \- Speaker Deck](https://speakerdeck.com/fadis/sekiyuriteiru-men)
- [【CEDEC 2018】Google Playのスマホゲームで不正返金や改変、チート等に対するセキュリティーを高めるための対策とポイント \| Social Game Info](https://gamebiz.jp/?p=218571)
- [/dev: LoL（および他タイトル）からチーターを追放 \- リーグ・オブ・レジェンド](https://jp.leagueoflegends.com/ja-jp/news/dev/dev-anti-cheat-in-lol-more/?utm_source=LeagueClient&utm_medium=OverviewTier2Pos3)
- [グランブルーファンタジーのステージング環境について｜anzu chang｜note](https://note.com/anzuchang/n/n0c82a8ff6a05)
- [A\-Liaison BLOG: セキュリティを一切考慮しないMMORPGを開発するとどうなるか](http://akisute.com/2021/11/mmorpg.html)
  - 対策しないとこうなるという話

## SMS認証
- [『PUBG』不正プログラム使用者への対策計画発表―2段階認証など新機能も \| Game Spark \- 国内・海外ゲーム情報サイト](https://www.gamespark.jp/article/2020/04/21/98495.html)
- [『Call of Duty: Warzone』PC向け基本プレイ無料版に「SMS認証」導入。チーターたちがうろたえ始める \- AUTOMATON](https://automaton-media.com/articles/newsjp/20200518-124524/)