2012-01-20 65 views
6

在Windows上,創建「代理DLL」代替原始DLL並轉發呼叫(根據需要執行任何其他操作後)或多或少是常見的。例如,您可以閱讀有關它herehereELF的代理共享庫(sharedlib,shlib,so)?

然而,Linux下的shlib消耗文化是完全不同的。首先是LD_PRELOAD是Linux下的ld.so內置功能,它簡單地將單獨的shlib注入進程,並使用它定義的任何符號作爲覆蓋。而這種「注入」技術似乎定義了整個思維方向 - 這裏是a typical ELF hacking toolthis question,其中紳士似乎與我具有相同的用例,但開始時詢問他如何修補現有的二進制文件。

不,謝謝。我不想注入或修改一些不屬於我的東西。我想要做的就是製作一個獨立的代理shlib,它將向原始代碼發出呼叫。理想情況下,將會有一個工具可以用原始的.so文件來創建,並創建一個C源代碼,它將重定向到原來的功能,同時讓我輕鬆地覆蓋任何我想要的東西。那麼,這樣的工具在哪裏? ;-) 謝謝。

回答

0

apitrace是一個工具,它涵蓋了許多平臺的圖形庫(OpenGL,DirectX)調用的詳細跟蹤。這對於通用解決方案來說可能過於詳細和複雜,但至少可以提供一些參考和親和力。

相關問題