2014-03-31 20 views
0

在編寫要注入正在運行的進程的代碼,並隨後從該應用程序內調用函數時,有時您需要創建函數指針(如果您想調用該應用程序本身提供的函數)基於計算機的培訓應用程序或電腦遊戲破解等。如果知道函數的偏移量,函數指針在C++中很容易。如果您正在使用的應用程序經常更新,那麼查找這些偏移量會成爲耗時的部分,因爲應用程序的更新可能會更改偏移量。定位函數偏移量以用作函數指針的替代方法?

是否有自動跟蹤這些偏移的方法?我似乎回想起有關指紋識別方法的知識,或者試圖自動爲您定位功能的東西。有關這些的任何想法?

+0

這可能有所幫助:http://stackoverflow.com/questions/21478942/re-ida-finding-function-offset –

+0

不一樣的事情。我可以在IDA找到東西,沒問題。問題是,一旦找到我有一個偏移量,但如果程序更新,然後偏移量可能會改變。我只是想知道是否有任何技術來定位功能,如果他們的地址已經改變。 – Ryan

回答

0

這非常依賴於你注入的內容和你正在運行的環境。

如果您在Windows環境中的時候,我想這給通過 x86 code injection into an x86 proccess from a x64 process

在Linux類型的環境,你可以做全局偏移表的東西讀?

你總是可以做基於簽名的方法來找到函數。或者也許有一個導出的函數調用你想要鉤住的函數。你可以跟蹤邏輯。