




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第Python修改游戲內(nèi)存的方法目錄前言游戲的安裝思路一句話總結(jié)大概的思路實(shí)戰(zhàn)確定修改哪一款游戲的數(shù)據(jù)代碼地址的尋找視頻教程修改數(shù)據(jù)代碼效果完整的源碼所有的軟件下載包
前言
大家好,我叫善念。上篇文章我許了一個(gè)愿,就是想讓大家多多關(guān)注我,然后我的粉絲就蹭蹭的漲了好幾百,謝謝大家的厚愛(ài)??墒俏野l(fā)現(xiàn)粉絲是漲了,三連變少了,謝謝大家這次給我三連,我一定再接再厲。有問(wèn)題留在評(píng)論區(qū),我會(huì)一一回復(fù),謝謝大家!
這次要做的是修改一款單機(jī)游戲的數(shù)據(jù),學(xué)過(guò)C語(yǔ)言的朋友肯定經(jīng)常會(huì)看到有些老師講這個(gè)案例,就是《植物大戰(zhàn)僵尸》這個(gè)課題,不過(guò)此文我將帶大家利用Python來(lái)實(shí)現(xiàn)(2025原創(chuàng)課題,附視頻教程)。
游戲的安裝
關(guān)于安裝的這一塊....我以前是在網(wǎng)站上下載的,現(xiàn)在再去找估計(jì)隨便百度下載一個(gè)就可以了,這里就用我之前的吧
鏈接:/s/1Ydiy1Q9QqKNxoyAkIlzp7Q
提取碼:1234
安裝下載后切記要避免點(diǎn)到一些廣告上去,和一些瀏覽器的鎖定勾選記得取消掉。進(jìn)入游戲是全屏,不方便我們觀察效果以及編寫(xiě)程序,可以在選項(xiàng)中取消勾選全屏
思路
一句話總結(jié)
我的理解就是,所有的程序的本質(zhì)都是變量與數(shù)值的集合。
比如說(shuō)咱們玩的游戲它也是一個(gè)程序吧,游戲的角色血量、藍(lán)條是不是都是一個(gè)數(shù)值儲(chǔ)存在變量?jī)?nèi),那么如果我們找到存放這個(gè)數(shù)值的變量(也可以叫做地址),修改這個(gè)變量的值,那么是不是就可以做到給咱們得人物加血量、修改人物等級(jí)的一系列操作。
大概的思路
首先確定修改哪一款游戲的數(shù)據(jù),然后確定修改游戲的哪一個(gè)數(shù)據(jù),然后去尋找這個(gè)游戲內(nèi)這個(gè)數(shù)據(jù)的地址,然后去修改這個(gè)數(shù)據(jù)。
聽(tīng)起來(lái)有點(diǎn)繞。好吧,是我的語(yǔ)文學(xué)習(xí)的太差啦
實(shí)戰(zhàn)
確定修改哪一款游戲的數(shù)據(jù)
這里需要利用到一個(gè)句柄查看工具這里我給大家已經(jīng)下載好了。
鏈接:/s/1ubpe7bmIsojbcX3z_24CxA
提取碼:1234
把放大鏡拖動(dòng)到游戲的標(biāo)題上,就可以查看到這個(gè)窗口的所有信息
可以看下咱們?nèi)蝿?wù)管理器中的進(jìn)程ID是否也是39156
代碼
importwin32process
#進(jìn)程模塊
importwin32gui
#none窗口的類(lèi)名窗口的ID
window_handle=win32gui.FindWindow(None,"植物大戰(zhàn)僵尸中文版")#Pyspy++窗口句柄win32gui.
print(window_handle)
process_id=win32process.GetWindowThreadProcessId(window_handle)[1]#取進(jìn)程ID
print(process_id)
process_handle=win32api.OpenProcess(0x1F0FFF,False,process_id)#進(jìn)程句柄
#進(jìn)程句柄是否可以被子進(jìn)程繼承,一般選false(不可被繼承)
##這種是用線程內(nèi)核對(duì)象的默認(rèn)安全屬性,子進(jìn)程不能繼承父進(jìn)程的句柄,不可以繼承,
#則子進(jìn)程是不可以通過(guò)句柄訪問(wèn)改內(nèi)核對(duì)象。
print(process_handle)
關(guān)于這個(gè)代碼我講解一下,如何確定一款游戲是由進(jìn)程的句柄來(lái)判斷的,而我們手動(dòng)取到游戲的窗口ID與類(lèi)名后,可以得到進(jìn)程ID,由進(jìn)程ID可以得到游戲句柄。
地址的尋找
陽(yáng)光總值150,種植一個(gè)豌豆需要100,非常不夠用。咱們現(xiàn)在需要實(shí)現(xiàn)的功能是無(wú)限陽(yáng)光,達(dá)到無(wú)限種植豌豆的效果。這里需要用到CE軟件,我給大家提供。
鏈接:/s/1mkEmVUonDBS6zBjJjYDFSQ
提取碼:1234
視頻教程
Python永遠(yuǎn)的神,實(shí)戰(zhàn)開(kāi)發(fā)游戲內(nèi)存輔助!
修改數(shù)據(jù)
由于咱們是用Python這門(mén)編程語(yǔ)言來(lái)實(shí)現(xiàn)的,這里需要用Python去調(diào)C,用到動(dòng)態(tài)鏈接庫(kù),所以要配置一下內(nèi)核模塊(動(dòng)態(tài)鏈接庫(kù)kernel32.dll),C:\Windows\System32\kernel32.dll放到這個(gè)目錄下,我這里也給大家下載好了。
鏈接:/s/1kAwg7PE_zZP_sqkaluD4QA
提取碼:1234
importwin32api
#系統(tǒng)模塊
importwin32process
#進(jìn)程模塊
importwin32gui
importctypes
#C語(yǔ)言調(diào)用類(lèi)型
#python中使用ctypes模塊可以在python中直接調(diào)用C/C++。首先要將C/C++編譯成動(dòng)態(tài)庫(kù)
#(.dl或.so),之后python中調(diào)用即可。
#C類(lèi)型調(diào)用約定
#kernel32.WriteProcessMemory(int(process_handle),0x1C0A4F98,byref(c_int(1000)),4,byref(c_int(0)))
kernel32=ctypes.windll.LoadLibrary(r"C:\Windows\System32\kernel32.dll")#加載內(nèi)核模塊動(dòng)態(tài)鏈接庫(kù)
date1=ctypes.c_long()
kernel32.ReadProcessMemory(int(process_handle),0x006A9EC0,ctypes.byref(date1),4,None)#None讀取的一個(gè)數(shù)據(jù)的大小尺寸長(zhǎng)度
#緩沖區(qū),各種語(yǔ)言的文本要求不一樣,為了兼容,那么自定義一個(gè)文本
#地址會(huì)變,但是里面存儲(chǔ)的數(shù)據(jù)不會(huì)變。
print(date1.value)
date2=ctypes.c_long()
kernel32.ReadProcessMemory(int(process_handle),date1.value+0x768,ctypes.byref(date2),4,None)
print(date2.value)
date3=ctypes.c_long()
kernel32.ReadProcessMemory(int(process_handle),date2.value+0x5560,ctypes.byref(date3),4,None)
print(date3.value)
sun=input("請(qǐng)輸入你要改變的陽(yáng)光值:")
#kernel32.WriteProcessMemory(int(process_handle),date2.value+0x5560,ctypes.byref(ctypes.c_long(int(sun))),4,None)
kernel32.WriteProcessMemory(int(process_handle),date2.value+0x5560,ctypes.byref(ctypes.c_long(int(sun))),4,None)
#關(guān)閉進(jìn)程
kernel32.CloseHandle(int(process_handle))
效果
完整的源碼
#!/usr/bin/python3
#-*-coding:utf-8-*-
#@Time:2025/4/3016:00
#@Author:善念
importwin32api
#系統(tǒng)模塊
importwin32process
#進(jìn)程模塊
importwin32gui
importctypes
#C語(yǔ)言調(diào)用類(lèi)型
#python中使用ctypes模塊可以在python中直接調(diào)用C/C++。首先要將C/C++編譯成動(dòng)態(tài)庫(kù)
#(.dl或.so),之后python中調(diào)用即可。
#none窗口的類(lèi)名窗口的ID
window_handle=win32gui.FindWindow(None,"植物大戰(zhàn)僵尸中文版")#Pyspy++窗口句柄win32gui.
print(window_handle)
process_id=win32process.GetWindowThreadProcessId(window_handle)[1]#取進(jìn)程ID
print(process_id)
process_handle=win32api.OpenProcess(0x1F0FFF,False,process_id)#進(jìn)程句柄
#進(jìn)程句柄是否可以被子進(jìn)程繼承,一般選false(不可被繼承)
##這種是用線程內(nèi)核對(duì)象的默認(rèn)安全屬性,子進(jìn)程不能繼承父進(jìn)程的句柄,不可以繼承,
#則子進(jìn)程是不可以通過(guò)句柄訪問(wèn)改內(nèi)核對(duì)象。
print(process_handle)
#C類(lèi)型調(diào)用約定
#kernel32.WriteProcessMemory(int(process_handle),0x1C0A4F98,byref(c_int(1000)),4,byref(c_int(0)))
kernel32=ctypes.windll.LoadLibrary(r"C:\Windows\System32\kernel32.dll")#加載內(nèi)核模塊動(dòng)態(tài)鏈接庫(kù)
date1=ctypes.c_long()
kernel32.ReadProcessMemory(int(process_handle),0x006A9EC0,ctypes.byref(date1),4,None)#None讀取的一個(gè)數(shù)據(jù)的大小尺寸長(zhǎng)度
#緩沖區(qū),各種語(yǔ)言的文本要求不一樣,為了兼容,那么自定義一個(gè)文本
#地址會(huì)變,但是里面存儲(chǔ)的數(shù)據(jù)不會(huì)變。
print(date1.value)
date2=ctypes.c_long()
kernel32.ReadProcessMemory(int(process_handle),date1.value+0x768,ctypes.byref(date2),4,None)
print(date2.value)
date3=ctypes.c_long()
kernel32.ReadProcessMemory(int(process_handle),date2.value+0x5560,ctypes.byref(date3),4,None)
print(date3.value)
sun=input("請(qǐng)輸入你要改變的陽(yáng)光值:")
#kernel32.WriteProcessMemory(int(process_handle),date2.value+0x5560,ctypes.byref(ctypes.c_long(int(s
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《物業(yè)管理招標(biāo)投標(biāo)》課件
- 民房變賣(mài)協(xié)議書(shū)
- 急救知識(shí)培訓(xùn)教材
- 借款合同延期還款合同
- 水稻飛防協(xié)議書(shū)
- 初級(jí)會(huì)計(jì)培訓(xùn)宣傳
- 商業(yè)推廣和營(yíng)銷(xiāo)合作協(xié)議
- 廚師臨時(shí)用工合同
- 幼兒園聘用保育員勞動(dòng)合同
- 兩人合作經(jīng)營(yíng)協(xié)議書(shū)
- 《漢字書(shū)寫(xiě)筆順》課件
- 2024年中級(jí)社會(huì)工作者職業(yè)資格備考資料
- 生命的起源小學(xué)生課件
- 2025年統(tǒng)計(jì)學(xué)期末考試題庫(kù):綜合案例分析題解題技巧試卷
- 城投企業(yè)面試題庫(kù)及答案
- 酒吧督察管理制度大綱
- 2025高級(jí)鐵路車(chē)輛鉗工核心備考試題庫(kù)及答案(濃縮300題)
- 2024年大學(xué)生就業(yè)力調(diào)研報(bào)告-智聯(lián)招聘-202405
- 腰椎間盤(pán)突出癥護(hù)理講課
- 體檢中心知識(shí)試題及答案
- 項(xiàng)目一廢舊物品變折扇(教案)-2024-2025學(xué)年皖教版(2023)勞動(dòng)四年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論