Re: [問題]關於遊戲中動態記憶體的修改?

看板Programming作者時間18年前 (2006/09/04 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
K取得 取得他的pointer 用binary去讀寫它 這樣最快 ※ 引述《sealoe@kkcity.com.tw ( )》之銘言: > 做這行就是要玩game(誤) > 關於靜態(非變動位置)記憶體修改還算簡單(範例如附件, 想用的玩家可以拿去) > 但是, 對於動態(變動位置)記憶體 我就不知道要如何修改了 > 假設我用GM8抓到一個動態的位置 我要如寫些簡單的win32程式 > 去修改它呢? > -------------附件---------------------------------- > #include<windows.h> > int pet_skill=7; > long pet1_addr=0x046C6504;//自己改, 我好幾年前寫的, 現在不適用 > long pet2_addr=0x046C6580; > long pet3_addr=0x046C65FC; > long pet4_addr=0x046C6678; > long pet5_addr=0x046C66F4; > int main(void) > { > printf("\n版權屬:<博物館>肥仔工程師\n"); > printf("\n寵物7技外掛\n"); > HWND hwnd; > PDWORD phandle,sapid; > char *SAName = "StoneAge [達那1] via FreeCap"; > hwnd = FindWindow(NULL,SAName); > if(hwnd==0) > hwnd = FindWindow(NULL,"StoneAge [達那1]"); > if(hwnd==0) > printf("石器時代沒有開啟"); > GetWindowThreadProcessId(hwnd,&sapid); > phandle=OpenProcess(PROCESS_ALL_ACCESS,FALSE,sapid); > //pet skill > WriteProcessMemory(phandle,pet1_addr,&pet_skill,2,NULL); > WriteProcessMemory(phandle,pet2_addr,&pet_skill,2,NULL); > WriteProcessMemory(phandle,pet3_addr,&pet_skill,2,NULL); > WriteProcessMemory(phandle,pet4_addr,&pet_skill,2,NULL); > WriteProcessMemory(phandle,pet5_addr,&pet_skill,2,NULL); > CloseHandle(phandle); > } -- ▊▊█ ▊▊█ ██ 靜宜大學 水世界 Υ ▊▊█ ▊▊█ bbs.cs.pu.edu.tw ◢██◣ ◥◥◤ ◥◥◤ 140.128.9.94 ██◣◢ ※ 飄流自 :61-216-21-231.dynamic.hinet.net
文章代碼(AID): #14-nXW00 (Programming)
文章代碼(AID): #14-nXW00 (Programming)