人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

Vb也瘋狂 -- 破解《南俠展昭痞子龍》圖像

Vb也瘋狂 -- 破解《南俠展昭痞子龍》圖像

更新時間:2022-09-28 文章作者:未知 信息來源:網絡 閱讀次數:

晚上在家,心情不好,懶得寫東西,就胡亂翻出抽屜里一張光盤《南俠展昭痞子龍》,游戲龍公司出品,絕對垃圾。一時為我枉花了五元錢于其上而懊悔不止,總得有些利用價值吧!剛好我最近需要些圖像資源,我們就去破解它吧!



先總結一下以前破解成功和失敗的經驗。

一般程序人員為了方便,圖像數據是不加密的。加密的數據我從沒破解出來。

一般處于效果和資源節省考慮,游戲所采用的顏色數和圖像數據的顏色數總是相同的。

一般圖像資源的文件名和內容是有聯系的。即使打包,他們也會利用文件名表或有明顯標示的指針表以便于調試。

一般程序人員是不會想到我們會采用刪除、修改、替換等極限方式來尋找他們的數據規律的。



然后就是這些經驗得出的結論。

不必擔心過于復雜的算法,目前最復雜地不過是rle。

只要檢查一下游戲所采用的顏色數,我們可以少走很多彎路。

用直覺和文件的字義去猜文件作用絕對是明智的做法。

你可以隨意刪除、修改、替換游戲中的文件來尋找數據規律。



呵呵,都是廢話。

接下來是vb破解全過程,成功破解所有ava文件。

第一步,找出圖像文件。這一步完全是廢話,因為這個游戲不像盟軍敢死隊和鐵血聯盟那樣將圖像打包,無需拆包(順便提一下,這兩個游戲我都將其完全拆包,但只將鐵血聯盟的loading界面破了幾十個出來,傲視三國的聲音好像是打包的,也完全拆開了)。而且其文件名起的可謂非常友好,還全部集中在image目錄中。我就直接找出了一個軟柿子,連驗證都沒有驗證一下(此處建議初學者不要像我這樣,應使用刪除、修改、替換大法來檢查判斷的正確性)。我選擇了 image\other\cursor.ava 一看就是光標啦,就是游戲中用來定位的小手。

第二步,截下欲破解圖像,就是抓圖,把有小手的圖像抓一幅下來,光圈選一個小手。

得到如下信息:游戲使用的顏色數16bit 小手尺寸 30*31,那就假定圖像文件使用16bit,那樣我們就是以一個雙字節為單位處理,方便了許多。截圖軟件使用方法此處不再贅述。

第三步,分析文件,用16bit編輯器打開圖像文件cursor.ava.,得到以下信息。文件長度:8470 ??????? 奇怪 30*31*2=1860 ,存小手只要1860個字節,怎么會這么多呢,恩,一定是多個光標放在一起了(猜測)

(在下面的處理之前,我用了一個非常變態的方法,將整個文件的數據以寬度為30,每兩個字節為一個16BIT顏色繪圖,發現最上邊的顏色和部分細節很像小手,下面還有其他光標,但是錯落的,就斷定,多個光標存放在一起,小手是第一個,而且使用了壓縮,這個代碼很簡單,就是以INT為單位逐個讀出文件數據,繪點,如果你懂后面的程序,這個就完全沒必要了)

這就是文件的前兩行.

06 00 00 00 1C 00 00 00 3A 06 00 00 56 0C 00 00

6A 11 00 00 B6 16 00 00 F8 1A 00 00 1D 00 1E 00

發現如下規律 位置1C 1E處的值 剛好是 1D = 30 1E=31,和小手的尺寸一樣.在 位置 1D 之前有7個LONG型整數,第一個是6,后面6個遞增.其中有一個似乎指示著位置1C,而且最大的 1AF8 =6904 也沒超過文件長度.

我們有理由相信,文件的第一個LONG值表示存放了幾幅圖片,后邊跟著的LONG值表示每幅圖片信息在文件中的位置.這個就叫做文件頭了,如果你是第一次干這種事的話,建議你利用這個文件頭把它拆成六個文件,我是不這樣做的,因為我經常干這種事.

第四步,分析圖像數據

我們的圖像數據就在從1C----639(16位)這個范圍內(3A 06 文件中是高位在后,就是63A,它的前一個字節就是小手圖像的結束639)共61D個字節,當然你要是把它拆開了,就是從零開始.

看我們的截圖,小手的第一行是兩個透明點,然后是三個一樣的顏色A4F,第二行是一個透明點,然后五個顏色 A4F FDEC FC81 FC81 A4F有時不太容易提取這個值,那就自己寫程序吧,如果用畫筆,可以查RGB然后換算. 16位顏色=(R\8) * 64*32 +(G\4)*32 +(B\8) (VB表達式,適用于16BIT 565模式) .

第二行 6A 11 00 00 B6 16 00 00 F8 1A 00 00 1D 00 1E 00

第三行 00 00 00 00 09 03 00 00 01 00 02 00 02 00 03 00

第四行 4F 0A 4F 0A 4F 0A 01 00 18 00 03 00 01 00 01 00

第五行 02 00 05 00 4F 0A EC FD 81 FC 81 FC 4F 0A 01 00

發現第四行第1\2\3個雙字節和小手第一行內容相符.

第五行第 3\4\5\6\7個雙子節和小手第二行內容相符.

其他字符明顯不是小手中的顏色,屬于控制字符.規則如下

01 00 +雙字 表示連續的透明點的數量.

02 00 +雙字 表示尾隨幾個顏色

03 00 表示換行.

(看上去好簡單,其實我也著實費了些功夫)

后面又進行了研究發現第三行第1\2個雙子和那個09 03 的作用:

第一二個雙子是表示小手的指針位置(小手的左上角是指針),在其他圖像中的作用不明.

09 03 是從第三行第五個雙字開始的雙字數量,可以做CRC驗證和計算壓縮率.

壓縮率=309/(1D*1E)=89.3%

第五部,寫程序導出,見例子

我的主要目的是給大家介紹一下破解游戲圖像的一般方法,例子程序純屬例子,毛糙之處請勿見怪.

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 邹平县| 皮山县| 泸溪县| 旅游| 威信县| 庆元县| 定西市| 汨罗市| 冷水江市| 耒阳市| 宽甸| 宁强县| 渝北区| 沙坪坝区| 龙陵县| 恩平市| 河东区| 龙南县| 昌邑市| 海口市| 蓬溪县| 丁青县| 蒲江县| 南和县| 华容县| 视频| 揭西县| 临沧市| 望奎县| 阜城县| 平潭县| 天镇县| 瑞丽市| 德州市| 洱源县| 沅陵县| 彰武县| 谢通门县| 衡阳县| 鹤峰县| 祁连县|