一旦要做鉤子,那么就必須獲取函數地址。由于我原先設計的鉤子的目標函數,都是Delphi的內部函數,也就是說,這些函數在編譯之后,很難找到。
當然了,也是有幾種方式可以找到的:
將代碼植入到系統中,編譯的時候可以直接找到。
編譯的時候,帶上Map文件,可以通過Map找到函數地址。測試框架以Dll的方式遠程注入。
Delphi中的包,可以公布這些函數的地址
前兩種方式,有一個最大的缺點,在于必須為自動化測試,特別編譯一個版本。雖然說可以接受,但顯然不是最好的方案。第三種方案雖然好,但是前提是系統必須構建在帶包編譯的基礎上。
幸好,我們目前的測試的系統就具備這樣的條件。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/