我想攔截一個.net可執行文件(第三方可執行文件,我無法訪問源代碼)中的CLR函數調用以進行調試。我一直在尋找一些hooking apis(deviare,easyhook,mhook)等,但我認爲他們只支持鉤入簡單的函數,如xxx.dll!函數名,而不能記錄構造函數調用對象等我想要知道他們是否有能夠在.net可執行文件中輕鬆記錄函數調用的任何庫,例如,如果進程調用函數File.ReadAllText(@"C:\name.txt");
,我將使用參數c:\ name.txt記錄函數File.ReadAllText。如何攔截/覆蓋.net可執行文件中的函數調用?
這裏有一些事情我已經試過/看過但沒有做我想做的事情。
Deviare
Mhook
EasyHooks
微軟痣
展鵬螞蟻探查器(這一次是真的很近。它記錄所有的CLR函數的調用,我只需要它來記錄如果你知道這將如何解決我的問題)
好問題。可能不是微不足道的,但如果你的第三方EXE沒有簽名,你應該能夠用ildasm反彙編它,以某種方式用日誌記錄調用源代碼,然後用ilasm重新組裝。 – 2013-04-03 21:05:05
你看過[Castle DynamicProxy](http://www.castleproject.org/projects/dynamicproxy/)嗎? – Romoku 2013-04-03 21:06:21
謝謝。我正在看DynamicProxy,看起來我需要訪問源代碼。我更新了我的問題,以表明它是沒有src訪問權限的第三方可執行文件。 – james123 2013-04-03 21:20:06