我正在開發一個項目,我需要使用LD_PRELOAD
將一些庫加載到內存空間中。加載時間期間Dumpout進程內存佈局
這就像:
LD_PRELOAD="./libapp.so" ./my_app
由於某些原因(我在實際工作中的一些二進制黑客攻擊),我必須知道的某些功能(內存地址(不是符號)讓我們說,foo
)在libapp.so
中,並在執行前測試my_app
的二進制代碼。
但是,由於ASLR
(地址空間佈局隨機化),每次libapp.so
將被加載到不同的內存地址,並且在執行之前我無法知道foo
的內存地址。
我想以某種方式攔截加載時間,讀出的libapp.so
的內存地址,在my_app
與foo
內存地址進行一些儀器,然後加載到my_app
的內存空間。
所以這裏是我的問題:如何截取加載過程並獲取libapp.so
的內存地址?