3

是否可以实现nm -Dreadelf -s使用 python ctypes?

我想列出.so文件的所有动态符号。

提前致谢!

4

1 回答 1

2

我的回答是:,它极不可能ctypes为您提供库中所有可用符号的枚举。

原因主要在于ctypes作为 Python 模块的范围,以及动态库 API 的范围:POSIX dlopen+dlsym或 Win32 LoadLibrary+ GetProcAddress。这些 API 的主要任务是加载 DLL 并通过符号名称/序号获取可调用地址。它们不是为符号枚举而设计的。您不能使用它们列出符号;当然, CPython依赖它们来实现其功能。

还需要说明的是,您提到的工具nm和工具自己解析可执行文件以获取符号列表。这与将库作为可执行模块加载到内存中非常相切。因此,您将需要一个不同的 Python 模块来执行此操作,例如。readelfpython-elf

于 2012-08-07T09:49:09.653 回答