2012-05-07 44 views
5

Định dạng ELF lưu trữ tên của hàm được nhập ở đâu? Có luôn liệt kê tất cả các tên nhập, như đối với các tệp thi hành PE không?Nhập tên trong mã nhị phân ELF

Ví dụ: nếu mã nhị phân đang sử dụng printf, bạn có thể cho biết điều đó, chỉ bằng cách phân tích tĩnh của chính tệp nhị phân?

Trả lời

7

Trong ELF chúng được gọi là biểu tượng không xác định. Bạn có thể xem danh sách các biểu tượng không xác định bởi:

  • nm -D <file>|grep -w U

  • objdump -T <file>|grep "\*UND\*"

file ELF không chỉ định mà những biểu tượng xuất phát từ đó thư viện; nó chỉ thêm một danh sách các thư viện được chia sẻ để liên kết tới mã nhị phân ELF và cho phép trình liên kết tìm thấy các biểu tượng trong các thư viện.

+0

chúng ta không thể nhận được từ thư viện được chia sẻ nào, chúng tôi có các chức năng đó? –

+0

Lưu ý rằng một biểu tượng đã xác định cũng có thể được nhập. Bạn cần phải xem xét các bảng di chuyển để xem các biểu tượng nào được sử dụng. – ysdx

+0

@AnwarMohamed: không phải vì chúng không được gắn với một thư viện được chia sẻ cụ thể trong ELF. – ysdx

Các vấn đề liên quan