Tôi hiện đang sử dụng LLVM's
ObjectFile
(được ghi tài liệu here) để thể hiện tệp thực thi. Tôi đã đọc thành công trong một tệp thực thi với ObjectFile
và muốn xác định địa chỉ đích cuộc gọi nào trong tệp thực thi của tôi tương ứng với các tên biểu tượng có trong số symbol_iterator
thu được bằng một cuộc gọi đến hàm begin_dynamic_symbols()
. Lặp lại trên mỗi biểu tượng trong symbol_iterator
cho tôi tên của mỗi biểu tượng và địa chỉ của nó, nhưng vì các biểu tượng là động, địa chỉ của mỗi biểu tượng là -1; điều này cho biết rằng ObjectFile
không liên kết trực tiếp tên biểu tượng với địa chỉ đích cuộc gọi tương ứng của chúng.Độ phân giải biểu tượng động có thể thực thi bằng LLVM
Có cách nào để xác định địa chỉ đích cuộc gọi nào sẽ ánh xạ tới biểu tượng động nào trong ObjectFile
không? Tôi không muốn tính toán theo cách thủ công tất cả các bước nhảy qua PLT
và GOT
nếu tôi có thể tránh làm như vậy.
Tôi nghĩ bạn nên hỏi nó trong danh sách gửi thư của cfe-dev: http://lists.cs.uiuc.edu/pipermail/cfe-dev/ –