2
是否可以使用c中的動態加載(DL)庫來檢索庫的第一條指令的地址?換句話說,我想知道庫的加載地址。動態加載(DL)庫和第一條指令
是否可以使用c中的動態加載(DL)庫來檢索庫的第一條指令的地址?換句話說,我想知道庫的加載地址。動態加載(DL)庫和第一條指令
有幾個方法可以做到這一點:
使用glibc的擴展提供dladdr獲取有關從共享對象的任何導出函數的信息。不過,您需要使用導出符號的名稱才能執行此操作。 它返回一個Dl_info結構,其中包含其中已加載對象的基地址。有關更多詳細信息,請參閱「man dladdr」。
讀取並解析/ proc/self/maps,查找您的庫並注意具有可執行位集('x'權限)的段的起始地址。