請問 有人知道如果藉由記憶體位址
以If else 來寫出該做什麼事情的程式嗎?
就像是如果什麼程式被開啟了 讀取它的記憶體位址
再判斷要去做什麼事情
並且...要怎麼知道每個程式所代表的記憶體位址
是否有確定的定值 而不是變值?
要怎麼做呢?麻煩大大指點一下><"
2006-09-08 20:32:31 · 4 個解答 · 發問者 ? 3 in 電腦與網際網路 ➔ 程式設計
像是...GM08
可以讀取遊戲的記憶體位址
那程式的記憶體位址讀出來的有固定值嗎
還是同樣程式每次代表的記憶體位址都是不一樣的?
2006-09-09 03:06:44 · update #1
是沒錯啦...不太可能會相同
可是...遊戲內的血調指數的記憶體位址不是有固定值嗎?
不然怎麼依照那個條件來判斷要運行的事情
可是那些都算是遊戲裡面...
如果是針對電腦程式的話...
---不知道該如何判斷此程式是否已經執行
然後再確定要進行的下一步----
好像很難做到...
2006-09-09 06:54:22 · update #2
我對那部份並不太熟ㄝ
WriteProcessMemory
這個寫入的資料
是什麼像什麼資料?
2006-09-09 13:08:24 · update #3
回 答 者: 里 ( 初學者 3 級 )
回答時間: 2006-09-09 15:55:02
請問 有聯絡你的方式嗎?
2006-09-09 13:17:28 · update #4
用api之類的就好了啊,
用
EnumWindows , EnumProcesses ...等,可以做出使用中程式例表,
或是用FindWindow直接找你指定的程式,找不到就會回傳0。
以上的函式是要用來得到視窗的HWND。
然後用
GetWindowThreadProcessId和OpenProcess這兩個就可以得到
讀取目標的記憶體權限。
然後用
GetProcessMemoryInfo(要包含Psapi.h和Psapi.lib)
可以得到記憶體使用資訊,如占用的記憶體大小。
VirtualProtectEx 可以改變某段記憶體的狀態,如唯讀或可讀寫
WriteProcessMemory 可以寫入資料到記憶體
ReadProcessMemory 可以讀取資料
用這些就可以改記憶體裡的值了,函式詳細用法因為字太多了,
而且奇摩知識會把程式的符號改掉,所以請自行上網找
2006-09-09 17:42:38 補充:
WriteProcessMemory寫入的資料沒有分什麼類的,只是按照順序寫進去而已,如byte a[5];WriteProcessMemory(ph, 位址, a, 5, &size);只是把5bytes資料寫進去而已,記憶體裡沒有分什麼int char的,我不太會解釋。如果你用ReadProcessMemory找到了資料位址,就可以用WriteProcessMemory去改成你要的了。上面列出的函式是按照順序的,最好不要跳著學。聯絡方式 ? 似乎沒有的樣子 - ̄_ ̄
2006-09-09 11:55:02 · answer #1 · answered by ? 4 · 0⤊ 0⤋
寫入跟讀取記憶體算是比較簡單的部分
我們來探討一下如何得知記憶體位置的值
在撰寫程式時 一般我們會有區域變數 跟 全域變數
區域變數或者是new配置出來的記憶體空間
其記憶體位置是不固定的 因為是程式動態配置
而全域變數則記憶體位置固定
再程式執行時便自動配置
如果要想知道某一值 (如遊戲的HP MP 能力值) 的確切記憶體位置
一般都需要Debug該程式 用來了解該記憶體位置如何配置
或者再記億體配置時打上補丁 將該值另外指向一固定位置
便可以在該固定位置找到該值
至於寫入記憶體等等 由於已經有大大回覆便不在說明
只是說一下寫入的方式
WriteProcessMemory(
HANDLE hProcess, 要寫入的執行緒指引碼
LPVOID lpAddress, 要寫入的基底位置
LPVOID lpBuffer, 要寫入的資料
DWORD Size, 要寫入的大小
LPDWORD lpWriteSize, 儲存寫入的大小(可為NULL)
)
1.寫入Byte
char buf[10];
WriteProcessMemory(hProcess, 800000, buf, sizeof(buf), NULL);
2.寫入整數
int i;
WriteProcessMemory(hProcess, 800000, &i, sizeof(int), NULL);
不管該變數再記憶體佔據多少空間
它的指標永遠是指向第一個位元組的
所以不用在意是WORD或DWORD或BYTE
把指標指向該變數便可以正確寫入
有疑問在寄信給我吧
寄到Ku722003雅虎信箱
另外我並不會一步一步的教人做喔
先自己做做看 失敗了在把失敗的程式碼寄給我
我在告訴你問題在哪 畢竟我也還在學習
並不會有時間幫你架構整個程式
千萬不要請問XXX怎麼做 我會瘋掉(很多個這樣的)
2006-09-11 09:42:11 · answer #2 · answered by ? 4 · 0⤊ 0⤋
破解遊戲關卡與角色能力極限
這個只有 GameMaster 的專家才會解答
2006-09-09 10:50:28 補充:
我有接觸過 GameMaster ,但是他顯示的記憶體位址都不太相同(記憶體空間是由系統分配的,怎麼可能相同?!),但是詳細的細節還是得找 GameMaster 的專家來回答。
2006-09-09 06:45:30 · answer #3 · answered by Big_John-tw 7 · 0⤊ 0⤋
看不懂
2006-09-08 21:21:06 · answer #4 · answered by ㄚ旺 5 · 0⤊ 0⤋