2017-03-05 34 views
0

我已經在多個程序上完成了DLL注入,但是這個是對我的挑戰。無論我嘗試了多少次,我都找不到我需要的值的靜態偏移列表。此外,這些值可以在數量上發生變化,因此直接訪問所有函數會更有效。如何找出函數在C++中訪問的地址?

在Cheat Engine中,我能夠找到直接寫入這些地址的函數的地址。我使用了「查找此函數訪問的地址」選項並找到了我需要的所有地址。但是,我需要用C++編程來完成這個任務,並且不知道從哪裏開始。而且我還無法在該主題上找到任何Google搜索結果。

任何信息將非常感激!

更新:萬一它是有用的功能訪問他們一次一個。在同一個電話中不是多個。

編輯:操作碼是mov [esi],ebxebx是從哪裏複製的,而esi是複製到的地方。所以我需要知道函數調用時的值esi。希望這有助於讓我的問題不那麼廣泛。

+0

不確定這是如何這是太廣泛。我問了一個具體的問題。如何找出函數以編程方式訪問的地址。不要成爲一個聰明的人,但有人可以啓發我嗎? –

+0

當在這種情況下,一個好的答案太長時,通常會使用「太寬泛」的關閉原因。這樣做沒有直接的方法。 –

+0

@HarryJohnston啊,好的。我明白,謝謝你的澄清。 –

回答

1

您可以簡單地啓動反彙編程序並跟蹤所有的mov edimov esilea和其他內存訪問指令裏面的函數。你也可以使用coff從dll中獲取這些信息。如果在繼續執行時地址正在改變,請嘗試使用調試器和cpu視圖。 策略是您需要訪問調用堆棧和寄存器狀態。這是我在網上找到的也許這將幫助你 https://www.gironsec.com/blog/2013/12/writing-your-own-debugger-windows-in-c/