rpg加密
① rpg maker xp怎樣加密
很遺憾的告訴你,你的要求「誰也解不開」是做不到的。我曾經也探索過,但是失敗,因為有原理上的不可行。
如果你的素材不會有那麼多人搶著要,那麼其實不加密也可以,或者用自帶加密工具。當然,如果你的素材會引起大家稱贊,都想著要,那麼你得試試其他方法。
你可以對文件加密,但是你又要能玩,那必然是要求運行的游戲主程序中有解密演算法,來解開素材、音樂呈現在玩家面前。既然如此,你的程序就不能是MD5那樣的無法解密的演算法,而只要你可以解密,就有人也能解密。還有很多人可以直接反編譯或者反匯編你的主程序,從而得到你的解密演算法,直接解密。
因此,你可以做一個,而且短期內沒有人會破解出你的素材音樂,但是只要能玩,必有人有能力破解出來(但是需要時間)。
例如,很多大型單機游戲都設置了收費,不注冊是不可以的,那些游戲、包括加密演算法,都是大公司做的,必然非常精密,甚至聯網注冊什麼的,但是一段時間過後,仍然有破解版。
如果你要很長一段時間沒有人解密是完全不可能的,否則,請放棄RMXP,直接使用編程軟體編寫程序(大多數編程軟體所編程序是大多數人無法反編譯的,但是如果你的素材真的好,還是有人有破解能力)。如果你堅持給RMXP加密,而且加密完全,你必須學會Game.exe的運作方式,因為Game.exe學不會你的解密演算法,你必須用你的程序完全替代Game.exe,這是非常困難的。一般人難以做到。
所以,您的要求無法達到。
② 如何加密RPGXP游戲數據
方案一:使用自己的加密演算法
第一種加密方案是修改RGSS102J.dll中的解密演算法,然後自己把素材打包成RGSSAD格式。
此方案要求使用者對程序設計以及二進制文件的修改有一定的基礎。
由於我現在還沒有試過外掛dll這種技術,所以這里介紹一個相對簡單的方法——修改MagicKey的初始值。RMXP是使用0xDEADCAFE作為MagicKey的初始值,那麼我們把RGSS102J.dll中的DEADCAFE修改掉,然後自己打包就可以防範那些一般的解包工具。
當然,如果你覺得有必要的話,還可以給這個修改過的dll文件加一個強殼,然後隨游戲發布。
雖然安全系數不高,但足以應對全自動的提取工具。我寫了一個程序來自動修改MagicKey,並打包資源文件,我給它起名叫"紙老虎"。下載網頁 http://www.uushare.com/user/lingchen/file/1333250。
難度指數:★★
安全指數:★☆
·方案二:混淆文件名
第二種加密思路是混淆文件名。在Windows操作系統下,有 \/:*?"<>| 這9個字元是不能用作文件名的。除去\/表示文件目錄,我們還有7個特殊字元可用。如果在原有文件名中加入這幾個本來不能用的字元,那麼解包程序就會因為不能正常創建文件而提取失敗。
註:此方法需要自己打包資源文件,以及修改rxdata文件,工作量比較大。
混淆不能絕對保證自己的游戲不被盜用,它的主要目的是打擊盜用者的信心,讓他在還沒有導出全部素材的時候就已經垂頭喪氣,精疲力盡了。
難度指數:★★★★
安全指數:★★☆
·方案三 將整個游戲打包成一個可執行程序
這個方法很多人都在用,而且可用的工具比較多,與MoleBox類似的工具都可以做到。
難度指數:★★
安全指數:★★★
·方案四 給游戲加一個特殊的"殼"
此方法與方案三類似,並且與傳統概念上給程序加殼有所不同。這里所說的"殼"更類似用一個定做的程序給游戲當作中介,它通過HookApi或者別的什麼方法接管游戲讀寫文件的操作。因為是完全接管,所以資源使用什麼格式完全是由使用者決定的。此方法需要比較深的編程功底。
難度指數:★★★★
安全指數:★★★☆
·方案五 自製RGSS解釋器
這是所有方案中最有效的方案,但是如果真的要自製一個RGSS解釋器有兩個主要的障礙,
1、RMXP使用的文件格式
2、編寫RGSS腳本的解釋器
很顯然,障礙一要比障礙二簡單的多,但同樣是一個龐大的工程。(如果有RMXP的源代碼的話另當別論)
難度指數:★★★★★
安全指數:★★★★★
對於游戲而言,無論什麼樣的加密方案都只是增加破解者的工作強度,而不能真正保護自己的素材不被提取,因為素材終歸是要在游戲中使用的。
③ 關於打開加密魔獸RPG地圖..........
魔獸地圖加密原理
什麼是地圖加密
地圖加密就是通過特殊方法破壞地圖文件,使它可以在魔獸中運行,卻不能被World Editor讀取。
目前有哪些加密方法
現在已有很多種加密War3地圖的方法。
1: 破壞 MPQ 文件頭大小信息
魔獸爭霸III的地圖就像一個Zip文件。 首先是一個 512 位元組大小的地圖文件頭,它記錄了一些信息。然後附帶一個MPQ 檔案,
這個MPQ 檔案中包含了一個地圖所需的全部文件。 MPQ 文件的前4個位元組是一個標識符。它可以被識別為 』MPQ』。接下來的4個位元組
是文件頭大小,通常是16進制 hex 0x20 00 00 00的形式。 有些加密者將 0x20 00 00 00 改成一個隨機數值,例如hex 0xF6 6E BA 76這個
樣子。 目前多數 MPQ 程序因為大小錯誤而無法打開這樣的 MPQ 檔案。而 Warcraft3 似乎忽略了這種錯誤的文件頭大小,所以這些地圖
仍可以在魔獸中運行。
這種加密只要把數值改回 0x20 00 00 00就可以輕易破解掉。
為了能夠正常打開地圖並提取文件信息,本網站(wc3sear.ch)將自動修復這類加密文件。
(譯者:這一段的術語翻譯可能並不正確,因為我對文件結構本就知之甚少。望諒解)
2: 刪除地圖內的 war3map.wtg文件
war3map.wtg 文件中包含了地圖中所用到的變數,觸發,數組等必需信息。但這個文件只對World-Editor有用。
war3map.wtg 文件丟失或者被改動都將導致 World-Editor 無法讀取地圖。
當然,這種加密也可以完美地解除。 通過一個小程序你就可以利用war3map.j 文件中存儲的信息來重建 war3map.wtg 文件。
本網站忽略掉war3map.wtg 文件,而是直接從war3map.j 文件中提取諸如觸發數目,變數數目等信息。
你可能注意到,既然一個簡單的 PHP 腳本就可以提取出 war3map.j,那麼使用其它腳本就有可能重建war3map.wtg 文件。
2b: 刪除 war3map.w3c, war3map.w3s, war3map.w3r 文件
war3map.w3c 存儲了world editor的鏡頭設置。 war3map.w3s 存儲了world editor在地圖中所設置的聲音。 war3map.w3r 存儲了world editor中的區域設定。
這幾個文件同樣只對World Editor有用,而且同樣可以通過 war3map.j 文件進行重建。參見上面的 「刪除地圖內的 war3map.wtg 文件「 。
3: 隱藏 war3map.j 文件
有些耍小聰明的加密者找到了隱藏 war3map.j 的辦法,這樣我們就無法用一個網頁腳本來輕易將它解出了。
正規的地圖中 war3map.j 是直接保存在根目錄里的。而這些加密者發現把它移動到 「Scripts\「下面也可以正常運行。
只要知道了這一點,就很容易破解這種加密 ;-) 非常感謝 BahamutZERO 和Quantam 幫我解決這種方法。
4: 打亂war3map.j 文件
有些加密者認為自己很聰明,他們用隨機數字重命名了所有的變數和函數。這使常人很難讀懂 war3map.j 文件。但這對腳本是不起作用的。
我為這個網站所寫的腳本根本不在乎關鍵字,它只搜索模式,所以我仍然可以從地圖中提取我所需要的信息 ;-)
只要藉助能夠重建 war3map.wtg 的腳本,這種加密方法同樣可以破解。恐怕你唯一沒法改變的就是已經重命名的變數和函數。
但這並不重要,因為你仍然可以用world editor打開它。 ;-)
加密的安全性如何
正如你所讀到的,地圖加密也許可以避免菜鳥們用world editor打開你的地圖。
但事實是只要魔獸可以運行你的地圖,就有辦法修復它,從而可以用 World Editor打開它。
地圖加密的利弊
有利面:
- 讓菜鳥們不能打開你的地圖並篡改它。
- 讓你顯得很聰明
- 因為刪除了某些文件而使地圖變小。
不利面:
- 它實際上是沒用的
- 大家不能研究你的地圖
- 自己丟失原版後將無法對地圖進行修改
就我所知,魔獸地圖還有很多加密方法,解密的方法也各不相同.這個只是範例.
主要分3種加密
談加密地圖的原理, 破解加密地圖的可能及研究加密地圖的方法
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即可還原
最後講一下如何研究加密的地圖:
1.學會Jass語言
2.用mpq工具解壓出war3map.j(如果沒有則參見上面的第二條解壓Scripts\war3map.j), 注意如果mpq工具如果不能讀取則按照上面第3條的做法修復文件頭
3.結合所學的Jass看war3map.j, 就能知道對方地圖的處理過程
4.關於地形的獲得我還沒有好辦法, 我把別人的地形文件導進自己的地圖會出現讀取錯誤, 估計是有些選項必須符合, 考慮到有些人加密地圖就是為了保護地形不讓別人"盜版", 所以我也沒有多做研究, 只要知道war3map.j的內容就可以學習別人所有的地圖處理過程了
總結一下:
解密是很難的, 但是可以通過解壓war3map.j來分析別人的地圖, 希望這篇文章對大家關於加密解密的爭論能給出一個理論依據