首页
社区
课程
招聘
[求助]请问逆向提取游戏资源的步骤是?
发表于: 2012-11-19 19:55 7207

[求助]请问逆向提取游戏资源的步骤是?

2012-11-19 19:55
7207
游戏的资源是这样的,游戏的所有资源都是单独文件,比如图片文件后缀就是 .x ,3D模型就是 .y

我的想法如下:

1)找到游戏格式读取函数。ida或OD 找到关键call。(关键代码找到了)

2)将游戏里特殊格式转换为Windows下可用一般工具打开的图如BMP等格式。

我现在疑惑的就是,第二步怎么做?希望知道的朋友能够解惑。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 425
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我也想知道,如何删除游戏的资源文件里面不需要的东西,可以多开,懂的啊,
2012-11-19 23:04
0
雪    币: 3758
活跃值: (3337)
能力值: ( LV15,RANK:500 )
在线值:
发帖
回帖
粉丝
3
2 编写XNView的插件, 把读取和写入的都写了, 就可以借助XnView或者XnConvert来批量转换出去再转换回来了.
模型的话可以写max或者是milkshape的插件

http://my1993.com/blog/%E4%BB%8A%E6%97%A5%E3%81%AE%E3%81%BF%E3%81%AA%E3%81%BF%E3%81%91%E5%8D%97%E5%AE%B6%E9%A4%90%E6%A1%8C%E8%B5%84%E6%BA%90%E5%90%B8%E5%87%BA%E5%92%8C%E6%B8%B8%E6%88%8F%E7%B3%BB%E7%BB%9F%E7%A0%94%E7%A9%B6/

我以前写过一个笔记, 你可以参考下
2012-11-19 23:45
0
雪    币: 3758
活跃值: (3337)
能力值: ( LV15,RANK:500 )
在线值:
发帖
回帖
粉丝
4
封库文件的解析是另一套流程了, 基本都是判断文件头, 判断文件列表加密方式, 还原出文件流的地址和大小(可能没有大小, 要前后排列后相减), 然后内容直接使用或者解密.
有的文件列表是在封库文件的头部, 有的在尾部(例如彩虹岛), 还有的是分开的(这个记不清了, 貌似有些日本游戏和奇迹都是两个一套)
2012-11-19 23:49
0
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
黑屏的话就已经节省了不少内存了,要想更好的多开,可以优化游戏地图加载,删除掉无甘紧要的NPC模型和人物模型。
2012-11-19 23:49
0
雪    币: 29
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
请问游戏资源图片在屏幕上显示,是不是把 .x 文件读入内存中,然后从内存中显示出来呢?意味着比如 100KB 的图片信息都可在内存中找到?

如果我要转成 .bmp 格式,是不是需要:

1. 找到游戏中 .x 显示在内存中的位置,以及它的各种参数(结构体?)
    我发现每个 .x 文件后面都会出现相同的 call ,后面就接着又是下一个 .x 文件,继而相同的 call,是不是意味着调用这个 call 函数之后,.x的内容会显示在屏幕上?我该从哪个方面入手呢?
2. 将内存的数据保存为 .bmp格式。

非常非常感谢你帮我回答。
2012-11-20 03:13
0
雪    币: 3758
活跃值: (3337)
能力值: ( LV15,RANK:500 )
在线值:
发帖
回帖
粉丝
7
这个前提就是游戏需要一次性解出整张图片, 不一定总是如此, 人家论行读就麻烦了.
且不问你这效率如何 游戏不显示的还可以替换参数来强行把每个文件都解析一次,
转回去怎么办啊 游戏可没有这种功能, 想hook也没地方啊.

入手当然是静态IDA, 分析差不多了上OD, 验证无误写代码, 代码写好吃火锅
从你描述来看 只有一个可以确定. 你所说的"相同的 call", 肯定不会跟显示有关系.
2012-11-20 03:45
0
雪    币: 29
活跃值: (30)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
thanks
2012-11-20 11:24
0
游客
登录 | 注册 方可回帖
返回
//