逆向工程第002节:打造自己仙剑奇侠.pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
打造自己的仙剑奇侠 众所周知,在国产 RPG 游戏里面,《仙剑奇侠传》是永恒的经典。发布近二十年以来, 依旧话题不断。但是鲜有人对其进行逆向分析,只是听说多年之前曾有人为了探究其是否有 隐藏剧情,从而采取了某种逆向分析的手段。在此,我依旧以通过分析其存档文件的方式, 从最简单的修改金钱出发,以主角李逍遥为研究对象,逆向追踪物品、人物状态以及法术的 相对地址标志位,以无限制使用“酒神”为最终目标,从而实现打造自己的仙剑奇侠的目的。 图1 《仙剑奇侠传》游戏封面 一、观察游戏目录中的文件信息 《仙剑奇侠传》游戏目录中包含有两个文件夹以及35 个文件。两个文件夹分别用于存 储游戏说明文件(网页版)以及游戏音乐。剩下的35 个文件,包含有6 个AVI 格式的视频 文件,即游戏中的所有片头片尾及过场动画。包含6 个以RPG 为扩展名的存档文件,以0 至 5 作为文件名,对应于游戏中的5 个存档位置,其中0.RPG 文件可能仅作备份之用,因此实 际可用的存档文件为1.RPG、2.RPG、3.RPG、4.RPG 以及5.RPG 。只有在游戏中保存过进度, 这五个存档文件才会依次出现,否则游戏文件夹中初始只有0.RPG 。而存档文件也是本文重 点分析的对象。然后,还有14 个MKF 格式的文件,1 个ICO (图标)文件,4 个DLL (动态 链接库)文件,1 个INI (配置)文件,1 个DAT (数据)文件,1 个MSG 文件以及1 个EXE (可执行)文件,因为这些文件不对我们的修改产生影响,因此不作深入讨论。但是需要注 意的是,M.msg 文件保存有游戏中的所有旁白以及对话信息,可通过修改这个文件的内容来 达到修改游戏对话及旁白的目的。而 Word.dat 文件保存有游戏中所有的物品及法术等文字 信息,稍后会用到这个文件的内容。 图2 《仙剑奇侠传》游戏目录 二、修改游戏金钱 游戏金钱的修改可以说是一切的根本,是我们逆向研究的起点。通过对金钱的修改,可 以在游戏中的商店(武器铺、杂货铺及药铺等)随意购买任何物品,同时也可以无限制使用 “乾坤一掷”。但由于游戏初始的金钱数为 0 ,不好搜索,幸运的是很快苗人首领就给了我 们500 金钱。十进制的500 等于十六进制的1F4,由于是小端显示,因此在游戏存档文件的 十六进制代码中应该是以F401 的方式显示的,通过这个就可以迅速定位。经过测试可以知 道在相对地址 0x00028 至 0x0002b 这四个字节就是游戏中金钱的标志位。由于游戏中只能 显示六位有效的金钱数字,而如果超出六位,要么会只保留低六位显示,要么就是彻底不显 示。因此将金钱修改为999999 即十六进制的F423F (小端显示为3F420F )就足够了。 图3 金钱标志位 三、逆向追踪并修改物品 一般来说,RPG 游戏会有众多的各式各样的物品,那么我们的工作就是找到这些物品在 游戏中的编号以及相对地址。如果能够找到,那么就无需在游戏中购买物品,金钱的作用也 就仅仅是使用“铜钱镖”以及“乾坤一掷”了。游戏初始我们身上是没有任何物品的,但是 在李逍遥自己的房间可以找到止血草、净衣符、木鞋以及皮帽,这就已经足够了。在取得物 品前后分别存档,用文件二进制代码比较软件对这两个存档进行比较,那么就可以找到物品 的标志位。它起始于相对地址为0x006c0 的位置,以六个字节为一个单元表示一样物品(这 点比较特殊,一般别的标志位都是以两个字节为一个单元)。在这六个字节中,前两个字节 是物品的编号,第三个字节是物品的数量,之后再用三个字节的00 作为填充对齐之用。 图4 物品标志位 通过分析可以得知,止血草的编号为63 (十六进制),净衣符为40 ,木鞋为ec,皮帽为 c9 。有理由相信,游戏中的所有物品都是以某种顺序排列的,编号也是依次排列下来的。所 以在此需要分析之前提到过的Word.dat 文件。 图5 Word.dat 文件(部分内容) 可见游戏物品中排在第一位的是“观音符”,而“净衣符”排在第四位,那么依照顺序 可以得知,“观音符”的

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档