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