2015-06-27 34 views
-2

我很想知道,如何重寫正在運行的進程在Linux中的功能,以便進程應該首先調用我的函數。在Linux中重載正在運行的進程的功能

我們可以使用LD_PRELOAD來重寫二進制中的函數,但在已經運行的進程中它不起作用。請提供任何建議。

回答

0

LD_PRELOAD允許您執行的操作是強制將共享對象加載到任何其他對象之前。所以如果這個自定義共享對象已經提供了一個函數,它將不會再從「標準」共享對象中加載。

在你的情況下,你想修改一個已經加載的函數。我相信這是不可能的。

這顯然是一個安全風險。

大多數操作系統都實現DEP和ASLR,這將防止修改和預測內存中的共享對象位置。

相關問題