冲锋岛吧 关注:15,470贴子:131,647

国服C126客户端拆包尝试

只看楼主收藏回复

这么多年过去了,还是觉得冲锋岛最好玩,以前玩的时候觉得里面的剧情还是挺不错的,想回味一下,但是现在也没有相关的资料了。基于一个游戏不会把这种文本配置什么只丢在服务端的原则,尝试对客户端进行调试、拆包寻找里面剧情相关资料的蛛丝马迹。
大概10年前就有过想复活冲锋岛的冲动,但是当时的技术、认知不到位,最终不了了之。之前用过ExRpg的提取工具提取过客户端里面的data**.tv的文件,能对文件进行解包,但是现在好像这个工具的服务器已经没有了,也登录不上来使用了。之前解出来的数据中,核心部分的物品、技能、任务等各种文案都是加密的,没法用。只能自己硬着头皮去调试客户端看他的资源文件加载逻辑了。不过还好的是基于之前的经验,能得知冲锋岛存储的数据使用xml的格式来存,那么入手点就好找多了。
先用IDA载入客户端的exe进行静态分析,直接全局搜索xml关键字

发现TiXmlDocument关键字,去Gayhub搜索了一番,发现是一个叫TinyXml的xml文件解释库。基于这是一个十几年前的游戏,应该没有太骚的加密技巧,也不会去乱动这些第三方库,那么我只要在这个库去加载xml文件的时候跟踪下即可获取非加密的文件内容。然后基于一顿乱操作分析后,发现一个可疑的函数

记下这个函数的偏移地址,打开Ollydgb,载入客户端,在5A805D的地方下断点,运行,这过程会有很多报错……(毕竟这游戏啥都没有了,能跑起来才怪),然后我强行手动改掉部分的汇编代码,让逻辑往正确的地方跑。在经过一个下午的尝试后,程序终于停止在了我的断点中。

看了下堆栈数据,发现最近是在尝试读取./data/xml/string/field.xml的文件,这个文件刚好是被加密的,然后看到第一个参数Arg1貌似是一个完整的xml文件,不过这里看不到,我顺着这个数据的地址023DD4B0,找到这块内存,这时候感觉稳了,这不就是一个xml的格式嘛,虽然有乱码,不过也只是编码问题,先把这块内存完整dump出来看看。

看着像小地图的名字,所以field的含义就是小地图名字了,昔日的千年树城啊,怀念啊。
后续的断点也跟着dump了好几个文件出来,有些看着没啥用暂时没dump。

然后程序就结束了,没有继续去加载其他文件了。
我暂时把dump出来的文件整理在了一起
链接: https://pan.baidu.com/s/119NemEU6hT7Dl5d75uX2TQ?pwd=tenv 提取码: tenv
工作暂时就到这吧,后续的想法就是2个
1是按部就班研究文件的加载方式,搞清楚资源文件的组织形式,然后自己写解释程序来解包。对于加密的xml文件,也要研究清楚其加密的逻辑,反过来将其解密。
2是魔改程序流程,在资源加载完成后,强行去调用解释xml的函数,逐个去传入需要解释的xml,那么就可以一个一个拿到未解密的xml了。
应该不会鸽,毕竟还没有达到我的目的,任务描述还没有弄出来,现在只有任务名字


IP属地:广东1楼2023-06-09 16:11回复


    方案2是可行的,我在断点处把文件名换掉能正确解释出对应的文件内容,这里解了其中一个任务,看来带s的就是文案,不带s的是任务的配置。不过这样太麻烦了要一个一个改文件名来dump


    IP属地:广东2楼2023-06-09 16:45
    回复
      🐮哇


      IP属地:上海来自Android客户端3楼2023-06-09 16:51
      回复
        顶顶顶,求大神复活。


        IP属地:广东来自Android客户端4楼2023-06-09 17:30
        回复
          要不要和复活群群友一起研究一下


          IP属地:广西来自Android客户端5楼2023-06-09 18:47
          回复
            大哥牛逼。


            IP属地:湖北6楼2023-06-12 12:07
            回复
              你这头像的id好熟


              IP属地:广东来自iPhone客户端7楼2023-06-12 18:56
              收起回复
                牛逼,顶一波


                IP属地:广东8楼2023-06-13 15:03
                回复
                  楼主牛逼!!!
                  资源解包这个事情对二次开发意义重大,客户端xml都能解密的话,角色动作、地图、任务等都很有希望完全复原。


                  IP属地:四川来自Android客户端10楼2023-06-13 15:44
                  收起回复
                    大哥还在解密吗


                    IP属地:广东11楼2023-06-13 15:52
                    收起回复
                      研究了两天,换了个分析的工具,现在换了x64dbg去反编译,顺道学了学脚本的编写,现在脚本已经测试完毕了,在自动化跑一个一个文件解出来了,预计今天能跑完,晚点我压缩好上传上来,xml/spr 的部分由于是明文,暂时没解出来,我后续有时间整理一份完整的出来


                      IP属地:广东来自iPhone客户端12楼2023-06-13 17:55
                      回复


                        IP属地:广东13楼2023-06-13 17:57
                        收起回复
                          解密后的xml文件已经打包上传了
                          链接: https://pan.baidu.com/s/119NemEU6hT7Dl5d75uX2TQ?pwd=tenv 提取码: tenv
                          同一个链接,tenvi_out文件夹下的zip文件就是了,下班下班


                          IP属地:广东14楼2023-06-13 18:39
                          收起回复
                            链接: https://pan.baidu.com/s/119NemEU6hT7Dl5d75uX2TQ?pwd=tenv 提取码: tenv
                            国服全部资源已解压完毕。
                            xml的是全部重新导出的的,包含spr部分
                            all是全部资源的集合
                            按需自取


                            IP属地:广东15楼2023-06-14 13:32
                            回复
                              是时候 了 出来把 测试服


                              IP属地:广东16楼2023-06-18 17:48
                              回复