🎉

windowsで共有ライブラリのシンボルを調べる

2023/11/04に公開

dumpbinコマンドをインストールする必要があります。
dumpbinはVisual Studioをインストールしないと使えないのでVisual studioをインストールします。
(Visual studio community 2019は配布されなくなりました。2019でないとダメな人は有償版を買うか、BuildToolsをインストールしましょう。)

winget install Microsoft.VisualStudio.2022.Community

こうするとdeveloper command promptを起動するかvisual studioのターミナル部分からdumpbinを実行することができるようになります。
が、Powershellやその他のツールからも実行したいですよね?

ということで環境変数PATHにdumpbinへのPATHを通します。

$Path = Get-ItemProperty HKCU:\Environment\ -Name Path

$Path.Path += ";C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\bin\Hostx64\x86"

# 値確認。
Write-Output $Path.Path

Set-ItemProperty HKCU:\Environment\ -Name Path -Value $Path.Path

結構不細工なコードになりますが、これが環境変数を操作する上で一番安全な操作です。
windowsには環境変数のバグがあるのでレジストリから環境変数を操作することをお勧めします。

これで下記のように実行するとシンボルを取得することができます。

dumpbin /exports C:\Windows\System32\Kernel32.dll

Discussion