在 Linux 上编译的 PE 的动态符号 Table
Dynamic Symbol Table for PE compiled on Linux
我正在尝试获取已编译的 c 文件
的动态符号 table 的内容
#include<stdio.h>
int main(){
printf("Hello, World!");
return 0;
}
as portable executable (PE) on Linux with
i686-w64-mingw32-gcc hello_world.c -o hello32
x86_64-w64-mingw32-gcc hello_world.c -o hello64
我正在使用 objdump:
objdump --dynamic-syms hello32
并得到输出:
hello32: file format pei-i386
objdump: hello32: not a dynamic object
DYNAMIC SYMBOL TABLE:
no symbols
我希望 table 中有类似 printf 的函数。它适用于 gcc 和 ELF 二进制文件。
有谁知道如何正确编译文件以获得动态符号 table 和内容?
动态符号 的概念似乎在 PE-targeting binutils 中有点丢失。使用 objdump -p <file>
或 objdump -x <file>
并在输出中查找 import tables。我还没有找到更好的 binutils 解决方案。来自 LLVM 的 llvm-readobj --coff-imports <file>
。如果你想在运行时查看符号的来源,ntldd 是一个很好的工具。
我正在尝试获取已编译的 c 文件
的动态符号 table 的内容#include<stdio.h>
int main(){
printf("Hello, World!");
return 0;
}
as portable executable (PE) on Linux with
i686-w64-mingw32-gcc hello_world.c -o hello32
x86_64-w64-mingw32-gcc hello_world.c -o hello64
我正在使用 objdump:
objdump --dynamic-syms hello32
并得到输出:
hello32: file format pei-i386
objdump: hello32: not a dynamic object
DYNAMIC SYMBOL TABLE:
no symbols
我希望 table 中有类似 printf 的函数。它适用于 gcc 和 ELF 二进制文件。
有谁知道如何正确编译文件以获得动态符号 table 和内容?
动态符号 的概念似乎在 PE-targeting binutils 中有点丢失。使用 objdump -p <file>
或 objdump -x <file>
并在输出中查找 import tables。我还没有找到更好的 binutils 解决方案。来自 LLVM 的 llvm-readobj --coff-imports <file>
。如果你想在运行时查看符号的来源,ntldd 是一个很好的工具。