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

dotNET_vulnclicker_intro.pdf

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

 dotNET_vulnclicker_intro.pdf

Avatar for Tomohiko Morita

Tomohiko Morita

October 10, 2026

More Decks by Tomohiko Morita

Other Decks in Programming

Transcript

  1. .NET Frameworkとは  C#で書いたプログラムを実行するためのプラットフォーム  業務アプリの開発に使われるケースが多い  ゲームエンジンUnityでも.NET Framework 4.xのAPIを利用可能

     中間言語IL(Intermediate Language/中間言語)を採用している点が特徴  CPU 非依存の中間命令セット  デコンパイルしやすい
  2. デコンパイラ  dnSpy  ILSpy C# IL(中間言語) .dll / .exe

    JITコンパイラ 機械語 デコンパイラ C#風のソースコードに戻す 関数名を復元できる
  3. VulnClickerの構成  ZipをDLし、任意のフォルダに展開する VulnClicker_1.0.0 ├─tool │ bese64_calculator.py │ httpreq2curl.py │

    request.txt │ ├─VulnClicker │ VulnClicker.exe │ VulnClicker.dll │ ・・・ │ └─VulnClickerScoreServer │ VulnClickerScoreServer.exe │ VulnClickerScoreServer.dll │ VulnClickerScoreServer.pdb │ ・・・ │ └─Data scores.json 解析支援ツール python やられアプリ本体 解析対象 HTTPクライアント 簡易スコアサーバー 解析対象外 HTTPサーバー(TLSにより通信暗号化)
  4. やられアプリの動かし方  ZipをDLし、任意のフォルダに展開する  やられアプリ「VulnClicker.exe」を実行 VulnClicker_1.0.0 ├─tool │ bese64_calculator.py │

    httpreq2curl.py │ request.txt │ ├─VulnClicker │ VulnClicker.exe ←まずこれを実行 │ VulnClicker.dll │ ・・・ │ └─VulnClickerScoreServer │ VulnClickerScoreServer.exe │ VulnClickerScoreServer.dll │ VulnClickerScoreServer.pdb │ ・・・ │ └─Data scores.json
  5. スコアサーバーの動かし方  証明書の設定を行う cd <Zipを展開したディレクトリ> cd .¥VulnClicker_1.0.0¥VulnClicker_1.0.0¥VulnClickerScoreServer dotnet dev-certs https

    --check --trust dotnet dev-certs https dotnet dev-certs https --check --trust dotnet dev-certs https --trust  Successfully trusted the existing HTTPS certificate.という表示が出ればOK  スコアサーバー「VulnClickerScoreServer.exe」を実行
  6. やられアプリ  ゲーム機能  30秒間のスコアを競うクリッカーゲーム  スコアサーバーが起動していれば、スコアの登録 が可能(HTTPS通信)  ハイスコアはtop10ランキング入り

     その他の機能  起動日や起動回数のカウント  シリアルコードを入力し、モード変更できる  ストップ、再スタート  スコアをファイルにエクスポート・インポート  スコアの改ざんチェック機能
  7. dnSpyの起動  Zipをダウンロードし展開  「dnSpy.exe」を起動  dnSpy上で、File>Open> 「VulnClicker.dll」を選択  DLL:

     Dynamic Link Library  動的リンクライブラリ  →C#コンパイルにより生成 されたILのファイル
  8. dnSpyの読み方のコツ  System.*は.NETの標準ライブラリ  解析対象外なので読む必要なし  VulnClickerが今回のやられアプリ  Activation 

    シリアルコード認証していそう怪 しい  Clicker  クリック回数のカウントなどアプ リの主要部分 濃いオレンジ色 →C#で記述した関数名
  9. dnSpyの便利機能1  Serach機能  Edit>SearchAssembliesで右下 に検索窓が開く  検索条件「Options」の設定  「Search

    in framework assemblies」はオフにする。解 析対象外の標準ライブラリを除外 してくれる。(System.*系)  「Serch For:」で検索対象を設定。 「Number/String」でハードコー ディングされた値や文字列を探し やすい。それで見つからない場合 は「All of the Above」に変更 シリアルコード で検索した例
  10. セキュリティ対策の基礎知識     ハードコーディング  ユーザーの手元にあるプログラムは解析される  攻撃の手掛かりになるダメ絶対。難読化、暗号化しても・・・

     全アプリで共通の値を避ける、サーバー側で個別生成する、など 暗号化  通信の暗号化、データの暗号化  基本的に復号するには「鍵」が必要 ハッシュ  値やファイルが改ざんされていることをチェックできる。  入力に対して出力がかなりランダムで偶然の一致がほぼない。出力から入力を予測することが困難  Sha256など エンコード  一定のルールに従った文字列の変換、デコードも可能。暗号化ではない  base64など