# Solana で特定のプログラムの BPF バイナリをダンプする方法 Solana で特定のプログラムの BPF バイナリを取得する方法は無いのかと思い、 [JSON-RPC](https://docs.solana.com/developing/clients/jsonrpc-api) を確認したのですがそのようなことを実現する API は存在しませんでした。公式の Discord で質問した結果、 CLI ツールから特定のプログラムの BPF バイナリのダンプは実現できることが分かりました。 CLI ツールの該当する処理はこちらです。 https://github.com/solana-labs/solana/blob/master/cli/src/program.rs#L1235-L1304 bpf_loader に色々とバージョンがあり、そのバージョンごとに処理を分けているようです。 以下を実行すると、 `accout address` 渡したプログラムの BPF バイナリを `output filepath` にダンプすることができます。必要に応じて、`solana config` で RPC URL を変更しておきましょう。 ```:bash solana program dump <account address> <output filepath> ``` 実際に Serum V3 Program のダンプを試みた結果が以下になります。  次に、出力されたファイルのシンボルテーブルを確認します。  `entrypoint` が定義されていることが分かりますね。 最後に、LLVMのツールを利用して、出力されたファイルの `objdump` をしてみます。  BPF バイナリがきちんと出力されていることが分かります。 ## 参考文献 - [eBPF assembly with LLVM](https://qmonnet.github.io/whirl-offload/2020/04/12/llvm-ebpf-asm/)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up