相關:遊戲研發技術,做過外掛,也防過外掛。一句話概括遊戲修改器的原理:在既定的遊戲邏輯基礎上,插入新的邏輯或者修改邏輯對應的資料。這樣是不是太抽象了?來,咱先介紹一下游戲修改,或者說外掛的型別和原理。1. 輸入模擬模擬使用者的輸入,例如鍵盤、滑鼠、重力感應、搖桿等等。這種是最簡單的方式,並且,嚴格地說,這並不算外掛,只是輔助軟體。最著名的軟體要數PC上的按鍵精靈,早期網遊的掛機外掛,幾乎都是按鍵精靈變種而來的。這種外掛的防護方法最簡單也最困難。簡單在,只需驗證玩家是否是機器人,也就是驗證碼就能解決。難在不影響使用者體驗。還記得當年的盛大冒險島裡,打著Boss突然出來,讓人虎軀一震的驗證碼麼?(好像暴露年齡了?)2. 修改檔案資料就是修改遊戲過程中存在本地的資料。特別對於單機遊戲而言,玩家的金幣數、等級啥的,肯定得存在硬碟上的某個地方。但可能是加了密,不過只要儲存在本地,一定就能破解,對,一定。對應的嘛,XX存檔修改器之類的就是了。什麼,你問我有沒有不把資料存到本地的單機遊戲?---還記得當年FC的通關密碼麼?順帶回答題主的問題a. 難道沒有個人遊戲資料是儲存在本機上的嗎?有,儲存分兩類,一類是無關資料,比如你上次退出某個介面時,游標放在哪個按鈕上,這種無關痛癢的資料。另一類是遊戲資料,對,比如你的攻擊力、防禦力,為了提升計算速度、節省流量,這些東西可能會儲存在本地,但服務端一般都會做一次校驗,除非做遊戲的人腦袋秀逗了。b. 這些大量的資料遊戲公司真的有必要全部儲存嗎?有,遊戲,特別是網遊,資料表,或者說配置表,數量大到你難以想象。而且這些資料通常靜態資料,也就是大家都一樣,對服務端來說也不會是太大的壓力。舉個例子吧,如果你的寵物成長沒有隨機性,那麼同一個寵物同一個等級的所有資料都是一樣的。3. 修改記憶體資料程式執行過程中,資料都是在記憶體裡的。透過搜記憶體,即可直接修改遊戲資料(如果遊戲沒做防護措施的話)。常見的,金山遊俠、八門神器,甚至金手指,都是此類原理。4. 截包對於網遊來說,資料都是封裝在一個一個數據包裡,傳送到伺服器的。只要擷取從你電腦發出去的遊戲包,找到對應的資料,修改即可。但實際上,這是最困難的修改方式。原因很簡單,資料包是加密的,而且和本地資料的加密不同的是,資料包通常用的是非對稱加密演算法,例如RSA,不理解的可以擴充套件閱讀一下:RSA演算法原理(一)懶得讀的這裡解釋一下,非對稱加密演算法的特點是,加密密碼和解密密碼不一樣,天知道服務端用的是什麼密碼解密。5. Hookhook的意思是鉤子,可以這麼解釋,原來有一個函式,會返回你現在的金錢數,然後你把這個函式勾住,換成你自己的函式,返回一個
99999999
相關:遊戲研發技術,做過外掛,也防過外掛。一句話概括遊戲修改器的原理:在既定的遊戲邏輯基礎上,插入新的邏輯或者修改邏輯對應的資料。這樣是不是太抽象了?來,咱先介紹一下游戲修改,或者說外掛的型別和原理。1. 輸入模擬模擬使用者的輸入,例如鍵盤、滑鼠、重力感應、搖桿等等。這種是最簡單的方式,並且,嚴格地說,這並不算外掛,只是輔助軟體。最著名的軟體要數PC上的按鍵精靈,早期網遊的掛機外掛,幾乎都是按鍵精靈變種而來的。這種外掛的防護方法最簡單也最困難。簡單在,只需驗證玩家是否是機器人,也就是驗證碼就能解決。難在不影響使用者體驗。還記得當年的盛大冒險島裡,打著Boss突然出來,讓人虎軀一震的驗證碼麼?(好像暴露年齡了?)2. 修改檔案資料就是修改遊戲過程中存在本地的資料。特別對於單機遊戲而言,玩家的金幣數、等級啥的,肯定得存在硬碟上的某個地方。但可能是加了密,不過只要儲存在本地,一定就能破解,對,一定。對應的嘛,XX存檔修改器之類的就是了。什麼,你問我有沒有不把資料存到本地的單機遊戲?---還記得當年FC的通關密碼麼?順帶回答題主的問題a. 難道沒有個人遊戲資料是儲存在本機上的嗎?有,儲存分兩類,一類是無關資料,比如你上次退出某個介面時,游標放在哪個按鈕上,這種無關痛癢的資料。另一類是遊戲資料,對,比如你的攻擊力、防禦力,為了提升計算速度、節省流量,這些東西可能會儲存在本地,但服務端一般都會做一次校驗,除非做遊戲的人腦袋秀逗了。b. 這些大量的資料遊戲公司真的有必要全部儲存嗎?有,遊戲,特別是網遊,資料表,或者說配置表,數量大到你難以想象。而且這些資料通常靜態資料,也就是大家都一樣,對服務端來說也不會是太大的壓力。舉個例子吧,如果你的寵物成長沒有隨機性,那麼同一個寵物同一個等級的所有資料都是一樣的。3. 修改記憶體資料程式執行過程中,資料都是在記憶體裡的。透過搜記憶體,即可直接修改遊戲資料(如果遊戲沒做防護措施的話)。常見的,金山遊俠、八門神器,甚至金手指,都是此類原理。4. 截包對於網遊來說,資料都是封裝在一個一個數據包裡,傳送到伺服器的。只要擷取從你電腦發出去的遊戲包,找到對應的資料,修改即可。但實際上,這是最困難的修改方式。原因很簡單,資料包是加密的,而且和本地資料的加密不同的是,資料包通常用的是非對稱加密演算法,例如RSA,不理解的可以擴充套件閱讀一下:RSA演算法原理(一)懶得讀的這裡解釋一下,非對稱加密演算法的特點是,加密密碼和解密密碼不一樣,天知道服務端用的是什麼密碼解密。5. Hookhook的意思是鉤子,可以這麼解釋,原來有一個函式,會返回你現在的金錢數,然後你把這個函式勾住,換成你自己的函式,返回一個
99999999
的金錢,是不是發財啦?玩PC遊戲的看下游戲目錄下,是不是能發現很多DLL檔案?這些就是遊戲裡的一個一個函式,也許其中某一個,就放著返回你的金錢數的函式。對於盜版軟體的破解,這也是常用手法之一。6. 其他只有想不到,沒有做不到。自己去發現,也能有驚喜。例如,修改系統時間加金幣啥的。