Python ctypesを実装nm -D
または使用することは可能ですか?readelf -s
.so
ファイルのすべての動的シンボルを一覧表示したい。
前もって感謝します!
Python ctypesを実装nm -D
または使用することは可能ですか?readelf -s
.so
ファイルのすべての動的シンボルを一覧表示したい。
前もって感謝します!
私の答えは次のとおりです。いいえctypes
、ライブラリで使用可能なすべてのシンボルを列挙できる可能性はほとんどありません。
この理由は、主にctypes
Python モジュールとしてのスコープと、動的ライブラリ API のスコープ: POSIX dlopen
+dlsym
または Win32 LoadLibrary
+にありGetProcAddress
ます。これらの API の主なタスクは、DLL をロードし、シンボル名/序数によって呼び出し可能なアドレスを取得することです。これらは、シンボルの列挙用に設計されていません。それらを使用してシンボルをリストすることはできません。もちろん、 CPythonはそれらに依存してその機能を実装しています。
また、あなたが言及したnm
およびツールは、実行可能ファイルを独自に解析してシンボルリストを取得することも説明する必要があります。これは、ライブラリを実行可能モジュールとしてメモリにロードすることとはまったく関係ありません。したがって、それを行うには、たとえば次のような別の Python モジュールが必要になります。readelf
python-elf