Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LINE_DM_201609.pdf

kenjiaiko
September 26, 2016

 LINE_DM_201609.pdf

kenjiaiko

September 26, 2016
Tweet

Other Decks in Technology

Transcript

  1. セキュリティ調査の流れ • ツールを用いたメモリ改変 • ゲーム内時間の加速/減速 • 端末内に保存されるデータの暗号化 • ゲームサーバとの通信の暗号化 •

    ARM/ILの解析 結局、どんな対策も時間がたてば解析されるが、 容易にそこまでたどりつかせないことが目的 Botに対してはサーバ側で別途対策
  2. 端末内に保存されるデータの暗号化 • 端末内に保存されているファイルを確認 $ cat shared_prefs/com.kenji.seccon.cedec.game.xml <?xml version='1.0' encoding='utf-8' standalone='yes'

    ?> <map> <int name="Screenmanager Is Fullscreen mode" value="0" /> <int name="Screenmanager Resolution Width" value="1920" /> <int name="kenji_stamina" value="999" /> <string name="5.2.1">70552e0acd48f1664e191c96642717ab</string> <int name="Screenmanager Resolution Height" value="1080" /> <int name="kenji_stamina_update_time" value="1470136534" /> <string name="PASS">aiko</string> <string name="USER">kenji</string> </map> ゲーム内で使う値は暗号化して保存しておく
  3. ARM/ILの解析 • Unity - IL, ARM, Java(on Android) • Cocos2d-x

    - ARM, Java(on Android) 基本的にARM, Javaを読む必要がある 昨今のゲームだとJava純正はほとんどみないイメージ
  4. Unityのloadの仕組み(ざっくり) Image_loader dlopen dlopen /classes.dex System.loadLibrary /lib/armeabi-v7a/libmain.so Java ARM /lib/armeabi-v7a/libmono.so

    ARM /lib/armeabi-v7a/libunity.so ARM /assets/bin/Data/Managed/*.dll CIL 連携 ゲーム本体のコード 各プラットフォーム用のloader(例:Android)
  5. ARM/ILの解析 • IL ILSpy, JustDecompile, etc… • Java JDGUI, JavaDecompiler,

    etc… • ASM(ARM, x86) IDA 各種ツールでde-compile/dis-assembleして解析する 難):IL2CPP >= Cocos2d-x(ARM) > IL == Java:(易
  6. Bot検出 • 最後には全解析されてBotが作られる • サーバ側でBotの検出&Banを行う(半自動化) - プレイ時間/期間/回数 - レベルアップ/ステージクリアのタイミング -

    Item(課金含む)の使用数 - プレイ時のIP帯域 知名度が高くなれば必然的にBotも多くなる 対応方法はそれぞれ(Gameによる) human bot
  7. リファレンス 解析、チートの練習のためのサンプルゲーム https://github.com/kenjiaiko/SUNIDRA2 [Unity/C#]WWW/HttpWebRequestにおける 中間者攻撃の危険性を考慮した通信プログラムまとめ http://qiita.com/harmegiddo/items/b72ca4f430292251c8a6 AN INTRODUCTION TO IL2CPP

    INTERNALS https://blogs.unity3d.com/2015/05/06/an-introduction-to-ilcpp-internals/ cocos2d-xでAndroidの起動シーケンスを追いかけてみる http://qiita.com/yosizo@github/items/53c74f0267becd6a81df IL2CPP Dumper https://github.com/Jumboperson/Il2CppDumper コマンドラインタイプのメモリチートツール https://github.com/Lazenca/Lazenca-A-Andoird