Làm thế nào để liệt kê các biểu tượng nhập khẩu trong ELF thực thi?


Câu trả lời:


15

Hãy thử objdump -T 'tập tin ELF'


Tôi nghĩ objdump -T hoạt động chủ yếu trên các thư viện dùng chung ...
jim mcnamara

tốt ... không thực sự, nếu tôi làm: objdump -t / bin / ls, nó trả về: "SYMBOL TABLE: không có ký hiệu", với -T (liệt kê BẢNG BIỂU TƯỢNG NĂNG ĐỘNG) xuất ra rất nhiều dữ liệu, như: "00000000 DF UND 00000000 GLIBC_2.0 strchr "
Mr Shunz

5

Đầu ra từ objdump là một chút quá mức cho mục đích này và đòi hỏi một chút phân tích tốt để tìm nhập khẩu thực tế.

Tôi thích đọc cho mục đích này:

readelf -d dynamic-buffer-test

Dynamic section at offset 0x630a8 contains 23 entries:
 Tag                Type                 Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libstdc++.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libgcc_s.so.1]

Như bạn có thể thấy, các thư viện cần thiết được đánh dấu bằng "CẦN".


Nó chỉ phụ thuộc vào chế độ mà bạn gọi nó. Hãy thử objdump -p /path/to/binary | grep NEEDED.
sherrellbc

Điều này dường như chỉ liệt kê các thư viện, không phải biểu tượng.
cắm

5

Tôi thích readelf.

readelf -s <file>


Điều đó chỉ liệt kê các thư viện cần thiết. Câu hỏi là về những biểu tượng được nhập từ các thư viện nói.
Alcaro

1

Cùng với các câu trả lời khác được đăng ở đây tôi muốn đề xuất một câu trả lời khác. Các nội dung được in là một chức năng của định dạng tệp, trong đó ELF cho vay độc đáo để giải quyết vấn đề này.

objdump -p /path/to/binary | grep NEEDED

Grep chỉ đơn giản là trích xuất nội dung của Dynamic Section, nhưng định dạng của objdump -pđầu ra làm cho nó trở thành một giải pháp đơn giản.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.