我一直在研究這種使用windows dll中的hotpatching機制的API掛鉤方法。通過hotpatching掛鉤... DLL中的非導出類方法
http://www.codeproject.com/KB/winsdk/0xF9EB_Hooking.aspx
我想知道如果任何人會知道的一種方式,以便擴展到掛鉤非導出的函數,例如用於一個DLL的內部的內部類C++的構造函數。我已經通過dis-assembly知道了地址......我遇到的問題是如何設置正確的調用約定,以便我可以在我的hook函數中調用原始函數。
我已經到了我的鉤子函數被調用的地方......程序崩潰,因爲我不能返回調用原始函數的結果。
讓我們假設我們正在談論一個原型是這樣的掛鉤一個內部類的構造函數:
public __thiscall <class_name>::<class_name>(<single pointer arg to another object>)
不管你做什麼,都要避免Detours。免費版本(不是10美元版本)可能會導致各種有趣和創造性的段錯誤和其他崩潰(它在64位系統上也不起作用,即使在32位進程中也是如此)。 EasyHook雖然缺乏文檔,但卻是一個更穩定的選擇(並且有點安全)。 – ssube
@peachykeen:這就是爲什麼我說*類似於*的東西,因爲我不是繞道而行的粉絲,只是碰巧知道...... – Necrolis