2011-09-30 22 views
5

正如標題所說,我試圖從我在Cheat Engine的指針掃描中找到的地址讀取。但唯一的問題是我必須使用的唯一指針只是指針地址+偏移量。我使用的是Visual Studio 2010中的C#.Net 4.0。我想我記得以前看過這方面的內容,但我沒有多想,因爲它當時並不適用於我。如何從類似「進程名稱」+地址的指針讀取數據?

有關獲取進程或模塊ID並將其添加到指針地址,然後添加偏移量和從那裏讀取?但我不記得命令來獲得進程ID或模塊ID:/

這也是我正在使用的級別5指針,我只使用級別1或2指針,但我猜測它大致相同。只要從指針中讀取地址,直到我得到要寫入的基地址。

如果它幫助我的指針看起來是這樣的: 「ProcessName.exe」 + 003E6D98

「如果你說爲什麼在世界上,你需要從.NET指針發揮它可能會幫助」 - 約翰·桑德斯

我正在爲我的一款遊戲製作教練。我之前做過的只是沒有使用這種類型的指針,我忘記了如何處理這種類型的地址。我想我必須得到模塊的ID,但我已經忘記了。實際上,我對內存和指針非常滿意,我通常只有平均地址,而且旁邊沒有進程名稱。

+3

OpenProcess plus ReadProcessMemory –

+0

如果你說世界上爲什麼需要使用來自.NET的指針來玩,可能會有幫助 –

+0

您可以通過循環運行來查找進程名稱,從而創建對進程的引用程式。 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx –

回答

0

OP中回答過的問題 - 把爲CW答案

string sProcessName = "MyProcessName.exe"; 
Process[] MyProcesses = Process.GetProcessesByName(sProcessName); 
IntPtr hProcModuleBA = MyProcesses[0].MainModule.BaseAddress; 
IntPtr PointerAddr = new IntPtr(MyPointer.ToInt32() + BaseAddress.ToInt32()); 

這將通過您的流程搜索sProcessName,將其添加到陣列 'MyProcesses'。我選擇列表中的第一個來獲取BaseAddress。它是40000 :)

相關問題