资源破解,并不是很复杂,方法大致有3种 1,硬性破解 通过观察目标文件和反汇编代码,分析出资源压缩或者加密的格式,写程序读取改文件,并转换成一种自己可以识别的格式就OK了 这是自己动手解资源时最容易想到的做法 具体来说,也就是通过一些特定函数,譬如 fopen、createFile这样的文件相关函数,确定游戏的解资源函数,然后就拼命的分析汇编代码就OK了 我前期大部分资源都是这样破解的,最好先用UEDIT分析一下实际的文件,有些格式太简单了,通过文件大小,用看的就可以了:) 这种方法,我解过的最复杂的就是神奇传说系列,当时就感觉和GIF比较像,但又不太一样,因为对压缩算法没研究,所以就没深究了,不过后来从网上看到文章说,那是一个很通用的压缩算法,一些解压工具就可以可以解开的,◎#¥%……真是不爽(不过还好,我只花了几个小时就解开那个游戏而已:)) 2,Dump 等图片载入后,直接从内存中导出 这种做法也很容易想到的,主要难点在于内存中资源的格式问题,可能对3D游戏来说,这种解法比较容易一些,毕竟纹理渲染这些,是显卡完成的,不是软件实现的 我了解到的有些人解魔兽的资源就是这样解开的,hook OpenGL的一些函数:) 我这样解过一些游戏的文本(汉化用的文字),赛车游戏的,为了获取所有游戏文本,特地将那款游戏通关的说:) 3,直接调用游戏的解码函数解码 和第2种做法类似,但是主动调用函数,基本上可以一次将所有资源全部解开,不需要游戏通关:) 当然,不是让你调用游戏的解包模块,毕竟很多游戏都不是dll形式的 只能侵入到游戏进程内部,找一个合适的时机(一般是载入其他文件的时候,中断跳转一下,先把我们的事做完:)),调用内部函数,解开所有的资源 我解过一款游戏就是用这种方法,说起来,那款游戏的资源压缩率和rar差不多(我试着压缩过解开的文件,大小和rar压缩后的大小比较接近,不太清楚是什么算法,但要是用汇编来分析,想想就会觉得头痛的:)) 这个做法其实和第一种方法也有些类似,也是先找到解图函数(这个最好用IDA静态分析,因为它在函数跳转这些,比SoftIce要清晰很多,强烈建议大家配合使用:)),然后弄清楚参数,和输出格式,直接调用就可以了:) 这儿需要注意一下的事,函数外部相关变量的问题 我分析的那个游戏,是c++完成的(从汇编就可以很明显的感觉到,N多跳转),解包函数应该是独立封装成一个类,类内部的私有变量,其中有些,再解包函数中使用过的。这个分析起来应该会复杂一点的。 当然,要多动手试试,很多时候,不需要很清楚的知道它是做什么的,猜一下,能达到目的就OK了:)

上一篇:
下一篇:

相关文章:

Categories: 博客记录

0 Responses so far.

Leave a Reply