本節(jié)教大家如何用基礎(chǔ)編程語(yǔ)言C語(yǔ)言寫(xiě)簡(jiǎn)單的游戲修改器。 用到的工具: 1.VC++6.0(上機(jī)通常都會(huì)用的) 2.CE 5.4(任何版本都行) 3.當(dāng)然要一款游戲這里我就用我臨時(shí)寫(xiě)的C語(yǔ)言小游戲來(lái)作為實(shí)驗(yàn)對(duì)象,。 教程開(kāi)始: 首先我們肯定要設(shè)計(jì)一個(gè)界面: 這里我用while循環(huán),,方便后面程序執(zhí)行完指令后不會(huì)退出。 在介紹重點(diǎn)部分時(shí),,我首先得介紹下涉及的專(zhuān)有名詞 句柄,、PID 句柄:這個(gè)嘛,是一種特殊的智能指針 ,。當(dāng)一個(gè)應(yīng)用程序要引用其他系統(tǒng)(如數(shù)據(jù)庫(kù),、操作系統(tǒng))所管理的內(nèi)存塊或?qū)ο髸r(shí),就要使用句柄 ,。我就引用百度詞條的解釋,。 PID:不管什么程序被運(yùn)行后都會(huì)被操作系統(tǒng)分配一個(gè)唯一標(biāo)識(shí)這個(gè)程序的ID。 如果想看具體每個(gè)程序的PID(任務(wù)管理器,,隨便選定一個(gè)進(jìn)程右擊,,選擇轉(zhuǎn)到詳細(xì)信息,就可以查看了,。(這里我是居于win10操作系統(tǒng)下)),。 如果實(shí)在不理解就把他們當(dāng)作現(xiàn)實(shí)生活中的學(xué)生證和身份證,有了這兩個(gè)就能證明你的身份,。程序一樣,。 介紹完句柄、PID的概念后我們正式開(kāi)始教程: 先定義個(gè)全局變量: HWND hwnd; //這就是句柄的變量定義 DWORD Pid; //這就是PID的定義 定義完變量后,,就要獲取要修改的游戲的進(jìn)程句柄 這里我們用到FindWindow(NULL,,“模擬的貪吃蛇游戲”)“”這里面就填寫(xiě)你要獲取的窗口(這里我就填寫(xiě)我的游戲窗口名) 當(dāng)然這個(gè)函數(shù)是有返回值的 hwnd = FindWindow(NULL,“模擬的貪吃蛇游戲”) 就用剛剛的句柄變量接收 獲取完句柄后其次就是獲取PID: 這里PID的獲取就利用我們前面獲取的窗口句柄獲?。?/p> //形參一:從什么地方獲?。ň浔?/p> 形參二:獲取到的PID存放處 前期工作都做完后: 定義個(gè)新的類(lèi)型變量
這個(gè)變量的作用就是接受進(jìn)程訪問(wèn)的許可 hprocess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,Pid); //PROCESS_ALL_ACCESS 意思是獲取全部訪問(wèn)權(quán)限,; 講完前面的現(xiàn)在 我們需要獲取要修改的游戲分?jǐn)?shù)存放的地址 地址獲取方式就用ce 1.打開(kāi)游戲進(jìn)程 如圖 2.搜索分?jǐn)?shù)信息,,讓信息改變,再次搜索 這里我們就找到游戲分?jǐn)?shù)的地址 0x00328400 后面回到我的編程界面定義新的變量 DWORD score; //要修改的分?jǐn)?shù) 令score = 999,; 利用函數(shù)WriteProcessMemory(hprocess,(LPVOID)ADDR,&score,4,0);將修改后的地址注入到原來(lái)的地址中 到處就大功告成?。?/p> 最后附上源碼:
|
|
來(lái)自: GhostTrees > 《編程語(yǔ)言》