❶ 魔獸地圖解密技術
1.不可還原式刪除加密, 即破壞性加密
說明: 這種加密難度小, 方法簡單, 比較常用
原理: 魔獸的地圖是一個mpq壓縮文件, 裡面存放了一些游戲中和WE中要用的數據, 其中一部分數據是只有WE要用而游戲時不要用的, 我們可以將它們移掉, 造成啟動WE無法讀到相關數據
方法: 1.用Import Manager導入這些文件的替代空文件 2.用mpq工具刪掉這些文件
破解可能: 由於需要的文件已經被移掉, 而Jass->Trigger的還原難度非常大, 所以基本不能完全還原原來的地圖
2.可還原式移動加密,
說明: 這種加密比較復雜, 但可以利用一些密鑰還原
原理: 根據上面一種方法的原理, 我們把地圖里的一些文件改名為特殊的文件名或者移動到特殊的目錄去, 並且刪掉(listfile), 這個文件是用於獲取mpq格式的文件裡面的文件列表的, 這樣WE也無法讀取到這些文件從而無法啟動
方法: 根據一定的演算法把密鑰哈希成一個字元串, 然後把文件改名或者移動到用這個字元串生成的文件名里. 還原時只要有密鑰就可以找到移動後的文件並還原
破解可能: 這些演算法通常是md5等不可逆演算法, 或RSA等大素數可逆演算法, 加上我們根本連移動或改名後的文件名或路徑都不知道, 基本很難破, 除非你知道密鑰
3.可還原式破壞WE顯示加密
說明: 該方法簡單但如果被知道了了方法很容易破解
原理: WE啟動時和讀取地圖時會讀取一些模型, 音樂, 貼圖等, 如果我們導入一些錯誤的文件, 在WE讀取時會先讀地圖里的文件, 就會因為這些錯誤的文件而出錯
方法: 我自己不太清楚可以導哪些文件, 大家可參考以前的一些帖子
破解可能: 如果你知道這個方法, 那麼只要從地圖里刪除壞文件就可以了
然後講一下幾個加密中會用到的技巧:?'
1.刪掉(listfile), 這樣別人不能看你的文件列表, 無法知道你的加密方法
2.把war3map.j移動到Scripts\目錄下, 這樣仍然被游戲讀取, 但是一般人不知道就會無法解壓出這個文件>,
3.針對一些mpq工具可能會將文件頭部的一個數改掉導致mpq工具無法處理, 通常offset是0x218, 用16進制工具把這個位置改為20 00 00 00即可還原k
最後講一下如何研究加密的地圖:
1.學會Jass語言z>
2.用mpq工具解壓出war3map.j(如果沒有則參見上面的第二條解壓Scripts\war3map.j), 注意如果mpq工具如果不能讀取則按照上面第3條的做法修復文件頭
3.結合所學的Jass看war3map.j, 就能知道對方地圖的處理過程
4.關於地形的獲得我還沒有好辦法, 我把別人的地形文件導進自己的地圖會出現讀取錯誤, 估計是有些選項必須符合, 考慮到有些人加密地圖就是為了保護地形不讓別人"盜版", 所以我也沒有多做研究, 只要知道war3map.j的內容就可以學習別人所有的地圖處理過程了
總結一下:
解密是很難的, 但是可以通過解壓war3map.j來分析別人的地圖, 希望這篇文章對大家關於加密解密的爭論能給出一個理論依據
先把你自己地圖的腳本輸出.輸出的時候保存為:war3map.jx
然後新建3個空文件,依次命名為:
war3map.wtg war3map.wct(listfile) 然後輸入你的地圖,然後把4個文件的路徑改成
腳本: scripts\war3map.ja
空文件: war3map.wtg
空文件: war3map.wct
空文件: (listfile) 這個方法不是很好理解,運用起來也不方便
我得方法是||
1.只須建立一個空文件後不一定要改文件名,就是說無論任何文件名都是可以的
2.將空文件在輸入管理器中輸入
3.將自定義路徑改為war3map.wct或war3map.wtg就行了
4.war3map.wct或war3map.wtg只須存在任意一個就可以,
5.自定義路徑必須改為war3map.wct或war3map.wtg,改為###.wct或###.wtg無效!
6.之所以要建立一個空文件是應為輸入文件後,輸入的文件有多大(K)地圖的大小也會增加多少。所以原則上無論輸入任何格式、任何大小的文件都是可以的
-----------------------------------------
以上轉載於U9網