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

MODいろいろ / tokaidolug-nagoya-201812

unarist
December 23, 2018

MODいろいろ / tokaidolug-nagoya-201812

初出: 東海道らぐ 2018年12月オフな集まり in 名古屋

スライド中に名前が登場しているゲームは18禁ゲームだったりします。よい子はググらないように。

## 関連リンク

BepInEx https://github.com/BepInEx/BepInEx
茜ちゃんの薄い本 https://akaneblue.booth.pm/
茜ちゃん情報 https://akane.blue/

unarist

December 23, 2018
Tweet

More Decks by unarist

Other Decks in Technology

Transcript

  1. • 表紙・裏表紙 by ぴけぴけ&8号 • 書ける!local_manifests by ほた • Hexoで簡単にブログを作って公開する話

    by するすす • フックとパッチ 〜MODを支える技術 〜 by おばけ • ひらくPCバッグ3種類の考察 by はちみつ • 自宅にサーバーを置くということ by motorailgun • SKKをおすすめしたい! by かるばぶ • Photoshopで縁が綺麗な文字 を作る by8号 • イラスト by ゆいのあ • 完全図解!藍川茜 by ほた&ぴけぴけ
  2. • 表紙・裏表紙 by ぴけぴけ&8号 • 書ける!local_manifests by ほた • Hexoで簡単にブログを作って公開する話

    by するすす • フックとパッチ 〜MODを支える技術 〜 by おばけ • ひらくPCバッグ3種類の考察 by はちみつ • 自宅にサーバーを置くということ by motorailgun • SKKをおすすめしたい! by かるばぶ • Photoshopで縁が綺麗な文字 を作る by8号 • イラスト by ゆいのあ • 完全図解!藍川茜 by ほた&ぴけぴけ 今日はこれのこぼれ話
  3. MODいろいろ • ネイティブ • ネイティブパッチ • .NET • アセンブリに対する事前パッチ(Sybaris, BepInEx)

    • メモリ上で関数を書き換える(BepInEx) • Unity • UnityInjector • 個々のゲーム • .obj .ks 等のゲーム固有ファイル
  4. Sybaris/BepInEx • しばりす・Sybaris • カスタムメイド3D2向けのMODローダー • しばりす自身のインストール含め、事前にパッチプログラムの 実行が不要(ファイルを置くだけで動く) • 現在ではUnityゲーム向けの汎用MODローダーの方向に

    • BepInEx • MIT License で公開されているしばりす的なやつ • 元々はコイカツ等イリュージョン系ゲーム向け • ロード済みアセンブリへのパッチができる(しかも簡単)
  5. 書き換える… パッチ済みメソッドの作成 1. リフレクションAPIでILを読み出して、IL書き出しに使える形 に変換しながらコピー 2. 指定されたフックをコピーしたIL群の前後等に差し込み メソッドの差し替え 3. 対象のメソッドとパッチ済みメソッドそれぞれのJITコンパイ

    ル済み関数ポインタを取得 4. VirtualProtectAPIでメモリ空間の保護を解除 5. 元のメソッドの先頭部分に、パッチ済みメソッドにジャンプす る命令(普通にx86/amd64の機械語)を書き込む