单机 amp; 弱联网手游 防破解、金币改动 简单措施
手游經(jīng)常使用破解方法
對于一個(gè)弱聯(lián)網(wǎng)或者單機(jī)游戲,能夠從下面方面去破解:
1、找得到存檔文件的,直接破解改動(dòng)存檔文件。
2、找不到存檔文件,就在游戲執(zhí)行時(shí)借助一些軟件來改動(dòng)數(shù)值,比方用各種改動(dòng)器手游助手來改動(dòng)金幣。
3、找不到存檔文件、數(shù)值還改動(dòng)不了,就直接反編譯,Java就看Java、C#就看IL、C++就看匯編。
文章轉(zhuǎn)自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
手游防破解對策
好了。防破解我們也從以上方面來做 (或者還有其他的)。
1、對于破解改動(dòng)存檔文件的。
首先我們能夠聰明一點(diǎn)。存檔名字不要寫成SaveData、Config、Cundang、等這樣的非常傻瓜的名字。
難道存檔文件就不能命名為mp3、jpg嗎?把存檔文件扔到一堆jpg里面,這是簡單有效的方法。
然后就是加密。字節(jié)偏移 、上上下下左左右右交換都能夠。僅僅要自己能認(rèn)得出來。
2、軟件改動(dòng)數(shù)值,是這次我要測試的。
首先我們要明確市面上各種改動(dòng)器的原理。隨便哪一款改動(dòng)器都是教你先找到一個(gè)數(shù)值,比方金幣 5000,然后搜索這個(gè)數(shù)值,再去改變這個(gè)數(shù)值,再搜索改變后的數(shù)值。
那么相應(yīng)于這樣的方式,我們要做的就是,讓 顯示的數(shù)據(jù) 和 我們實(shí)際用于計(jì)算的數(shù)據(jù) 并不一樣。比方玩家攻擊力是100。那么我從存在存檔中的就寫 101。然后計(jì)算傷害的時(shí)候用
101 -1 =100 這樣去計(jì)算,可是顯示在屏幕上的還是 100 。這樣玩家用改動(dòng)器去搜索 100 這個(gè)數(shù)值。然后攻擊力 +1 的時(shí)候顯示101,可是事實(shí)上我們的變量中存儲(chǔ)的是 102.自然就搜索不到了。
以下我用Unity做的一個(gè)Demo,然后用燒餅改動(dòng)器來測試改動(dòng)數(shù)據(jù),測試 不加密 和 加密? ( 指的就是上面的 100+1 ) 的 情況。
文章轉(zhuǎn)自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
首先Unity的project下載:
http://pan.baidu.com/s/1hqD4yyg然后以下是用來測試的普通場景的代碼:
以下是用來測試 加密的代碼:
對照上面的兩個(gè)代碼。就會(huì)明確這次加密的原理。
好了,以下是我用燒餅改動(dòng)器測試的結(jié)果。
不加密秒破解
破解不加密游戲開始,攻擊力初始為0
點(diǎn)擊 普通賦值 ,賦值 100
用燒餅改動(dòng)器搜索 100
搜索到非常多值為? 100 的內(nèi)存地址
返回游戲,點(diǎn)擊 改動(dòng)傷害值 button。數(shù)值 + 1 =101.
再次搜索 101
這次僅僅搜索到 2 個(gè)值為 101 的數(shù)據(jù)。我們把這兩個(gè)數(shù)據(jù)都進(jìn)行改動(dòng)? 為 7777 。
提示改動(dòng)成功,同一時(shí)候我們看到游戲中顯示的數(shù)值變了,那么數(shù)據(jù)是否真的變了。
回到游戲。再次點(diǎn)擊 改動(dòng)傷害值,顯示 7778 。
至此游戲已經(jīng)被改動(dòng)破解。
加密后破解變難
破解加密游戲開始。初始值為 0
點(diǎn)擊 加密賦值 ,給初始攻擊? 100
然后在燒餅改動(dòng)器中搜索 100
搜索到非常多個(gè)
返回游戲 ,點(diǎn)擊 改動(dòng)傷害值 后。傷害值顯示為 101 。
繼續(xù)在燒餅改動(dòng)器中搜索 101 。
僅僅搜索到1個(gè)。
我們改動(dòng)成 66666。
提示改動(dòng)成功,可是我們看到,游戲中的數(shù)據(jù)并沒有變化。
返回游戲,點(diǎn)擊 改動(dòng)傷害值? ,發(fā)現(xiàn)一切正常。
破解加密失敗。
文章轉(zhuǎn)自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
為什么普通的能搜索到 2 個(gè)101,而加密的僅僅能搜索到 1個(gè) 101?
由于加密的游戲,在那個(gè)時(shí)候,的確僅僅有一個(gè)數(shù)據(jù)是101,就是屏幕顯示的。
存儲(chǔ)用于計(jì)算的數(shù)值,是 102 。改動(dòng)器改動(dòng)的僅僅是用于屏幕顯示的一個(gè)數(shù)字,并且改動(dòng)之后立即又被真實(shí)的數(shù)值替換了。所以并沒有改動(dòng)成功。
3、對于反編譯游戲代碼的,我們能夠?qū)Υa進(jìn)行混淆加密。
Unity反編譯又一次打包的流程??匆韵碌娜沼?。
Unity3d 反編譯破解游戲 簡單演示樣例 (使用ildasm反編譯DLL改動(dòng)然后又一次編譯DLL)
話說假設(shè)真有高人來破解你的游戲,無論怎么做,都會(huì)被破解掉的。
我們能做的就是盡量增大破解難度。或者,做成網(wǎng)絡(luò)游戲。
轉(zhuǎn)載于:https://www.cnblogs.com/mthoutai/p/7085217.html
總結(jié)
以上是生活随笔為你收集整理的单机 amp; 弱联网手游 防破解、金币改动 简单措施的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝牙Android_Lightblue调
- 下一篇: C++: 内存对齐