VRCSDKのdllに隠蔽された実装を確認する必要があったが、Windowsでやりたくなかったので、macOSでILSpy環境を用意した時のメモ
前提:過去バージョンの話
大筋は下記記事の通りだが、.NET6で扱う場合色々変更が必要なので色々。
ちなみに、.NET7だとまた話が変わるので注意。
基本的な流れ
リポジトリは昔から変わってないけど、最新版は.NET7を要求してくるので、.NET6環境では、過去のリリースを使う必要あり。
また、.NET6だとマルチアーキテクチャ対応の設定ファイルになっているため、-fオプションで指定が必須
まぁ、コマンド的にはこんな感じになる。
git clone https://github.com/icsharpcode/ILSpy.git
cd ILSpy
git checkout refs/tags/v7.2.1
cd ICSharpCode.Decompiler.Console
dotnet publish -c release -r osx-x64 -f net6.0
で、バイナリが
bin/release/net6.0/osx-x64/publish/ilspycmd
と生成されるので、適当に chmod +x で実行権限つけて、パス通った場所に配置しよう。
依存ツール
.csprojのPost処理で、PowerShellを使用しているため、 入っていないとエラーでビルドが止まります。
公式(https://learn.microsoft.com/ja-jp/powershell/scripting/install/installing-powershell-on-macos?view=powershell-7.3)の通りで多分大丈夫。
brew install --cask powershell
で入れましょう。
使い方
ilspycmd *.exe | *.dll
でソースを吐いてくれるので、適当にリダイレクトしたやつを、任意の静的解析に喰わせましょう。