欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

逆向工程第002篇:打造自己的仙剑奇侠

来源:本站整理 作者:ioio_jy 时间:2015-03-08 TAG: 我要投稿

 众所周知,在国产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)就足够了。

[1] [2] [3] [4] [5] [6]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载