Vb也疯狂--破解《南侠展昭痞子龙》图像

2008-01-14  来源:   浏览次数 7

晚上在家,心情不好,懒得写东西,就胡乱翻出抽屉里一张光盘《南侠展昭痞子龙》,游戏龙公司出品,绝对垃圾。一时为我枉花了五元钱于其上而懊悔不止,总得有些利用价值吧!刚好我最近需要些图像资源,我们就去破解它吧!

 

先总结一下以前破解成功和失败的经验。

一般程序人员为了方便,图像数据是不加密的。加密的数据我从没破解出来。

一般处于效果和资源节省考虑,游戏所采用的颜色数和图像数据的颜色数总是相同的。

一般图像资源的文件名和内容是有联系的。即使打包,他们也会利用文件名表或有明显标示的指针表以便于调试。

一般程序人员是不会想到我们会采用删除、修改、替换等极限方式来寻找他们的数据规律的。

 

然后就是这些经验得出的结论。

不必担心过于复杂的算法,目前最复杂地不过是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有时不太容易提取这个值上一页 下一页

上一篇:DoEvents在VB中的..    下一篇:VB6.0自制Line控..

相关主题:

网友评论