是否有用於處理x86/x64機器碼的任何C庫?具體來說,我想在運行時修改程序地址空間中的函數。用於在運行時操作機器代碼的庫?
例如,我有功能foo
和bar
,對此我有自己的內部運作的來源或知識,但不能重新編譯他們所在的庫,和我有功能baz
我寫我自己。現在我希望能夠說出如下內容:「在功能foo
中,查找對bar
的呼叫,並在其前注入baz
的說明。」該工具必須相應地調整程序中的所有相關地址。
我知道所有的零碎都存在,例如有工具可以做hotpatching的功能。由於優化等原因,我想可能會有一些限制,但基本功能應該是可能的。我無法找到這樣的東西,有沒有人有一些鏈接?
優化您的Google搜索以包括諸如「代碼編織」,「代碼注入」和「面向方面的編程」等術語。 – 2013-04-27 23:06:41
@Brendan:這是一個有點假設的問題。但是在某些情況下,您無法在技術上(無法替換系統庫)或法律上(由於授權)進行此操作。 – jdm 2013-04-28 08:41:46