2012-07-16 37 views
6

Tôi đang tìm kiếm thư viện thực hiện việc tháo gỡ mã nhị phân.Thư viện tháo gỡ được sử dụng bởi objdump

Tôi thấy rằng libdisasm thực hiện chính xác tác vụ tương tự như tôi muốn. Tuy nhiên, tôi đã tìm thấy một số liên kết chỉ ra rằng libdisasm không hoạt động đối với các tệp thực thi 64 bit. Nó có đúng không ?

Nhưng đầu ra của objdump cho thực thi 64 bit là đáng tin cậy (theo sự hiểu biết tốt nhất của tôi). Vì vậy, không objdump quá sử dụng một thư viện tương tự cho tháo gỡ ?? Ban đầu, tôi nghĩ rằng objdump sử dụng libdisasm.

Trả lời

10

objdump sử dụng libopcodes từ binutils. Nó là khá cơ bản, tuy nhiên, vì nó chỉ cung cấp văn bản đại diện và không có thông tin có cấu trúc về các hướng dẫn. Các lựa chọn khác:

+0

ok cảm ơn. Nhưng bạn có biết liệu libdisasm có hỗ trợ 64 bit hay không? –

+0

cảm ơn các liên kết - đọc thú vị. –

1

Đây chỉ là để làm rõ một câu hỏi được hỏi bởi các poster ban đầu trong một chú thích (Tôi không đủ điểm để bình luận).

Dự án libdisasm đã không được duy trì tích cực trong nhiều năm. Nó không hỗ trợ bộ chỉ lệnh x86-64 (64-bit) hoặc bất kỳ phần mở rộng x86 (32-bit) nào sau SSE3.

Dự án opdis là sự thay thế cho libdisasm. Tác giả của libdisasm đã viết opdis để tránh các cập nhật thường xuyên cần thiết để hỗ trợ các bộ chỉ dẫn liên tục thay đổi của Intel và AMD. Việc giải mã opcode thực tế trong opdis được xử lý bởi libopcodes từ GNU binutils (bộ tách rời được objdump sử dụng), với opdis cung cấp siêu dữ liệu hướng dẫn và các chức năng tháo gỡ mức cao hơn.

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