BallanceRecordChanger/zh

来自Ballance Wiki
(重定向自排行榜分数修改工具
跳转至: 导航搜索
Ambox-AuthorEdition.png 参与者编辑的条目
这个条目已经被作者或条目相关人物进行了巡查或编辑,因而内容可信度很高。
BallanceRecordChanger
BallanceRecordChangerResult.png
经过BallanceRecordChanger修改后的高分榜单(同时使用了与之无关的材质包
基本信息
作者

文件加密分析:Gamepiaynmo[1]
文件结构分析:
Gamepiaynmo(基础结构)
yyc12345(被丢弃的字段)

主程:
Gamepiaynmo(C++版本)[2]
jxpxxzj(C#第一版)
yyc12345(C#第二版和第三版)
适用于 BallanceDatabase.tdb文件
依赖 运行库需要.Net Framework 4
发布时间 2018年10月5日
项目地址 Github仓库
开发状态 开发停滞

BallanceRecordChanger是一款能够解码,修改和复原Database.tdb文件的程序。其主要功能是修改排行榜成绩,或者强制解锁全部关卡。但是它同时也可以修改一部分设置,例如游戏中的按键键位等,这是由于Database.tdb文件也同时存储了这些数据。

2014年8月25日,Gamepiaynmo于贴吧发帖称已经解密了Database.tdb文件并附上了加解密的程序与C++源码,jxpxxzj随后花费一些时间将其转为C#代码并随后将其应用到了Score Manager中。

2018年10月5日前,yyc12345想要将Score Manager中的记录榜读取部分代码单独抽取出来并开源,并希望通过自身努利将之前为了防止修改排行榜而未书写的数据库写入函数完成。此后通过对读取代码的分析和对文件格式的探究,在两天的时间内写完了数据库写入函数并在包装后进行了开源。

2020年1月3日,yyc12345在编写ScoreManager-Magic时无意中发现了代码中的一个Bug,该Bug影响了修改第13关关卡的数据。在稍早之前,jxpxxzj曾诉说:“这个程序的数据库读取部分是在没有意识到C#有成熟的数据读取类时盲目地使用C语言的思想写出来的程序。”且事实上,代码在经过几轮修改后已经杂乱不堪,可扩展性也难以做到,支持v1.0版本的Database.tdb也是有一些困难。故yyc12345通过一些时间的研究,在完全弄清Database.tdb文件的结构之后完全重写了程序的核心。修复了Bug,同时支持了v1.0版本的Database.tdb文件读取和写入。

下载

兼容性

使用.Net Framework 4作为运行库,支持运行自Windows XP以来的所有的Windows系统上。

安装与使用方法

下载完成后,直接运行BallanceRecordChanger.exe,然后程序会启动一个终端,并输出Please put your Database.tdb in this app's folder. Then press any key to read it.此时需要在程序运行文件夹下放置要被读取的Database.tdb文件,然后在终端中回车,一段时间后。

程序将输出Database file has been decoded into Database.json. Please modify it. Then press any key. This app will encode your modified file into new Database.tdb.,此使程序会生成一个DecodeData.json,您需要在此使编辑DecodeData.json,直到您满意为止。如果您不了解Json格式,请查阅此网站;且相关数据的含义已经由字段名称描述清楚了,也可参阅Database.tdb条目查看含义。修改完成后需要保存文件,然后回到终端中按下回车。

一段时间后程序输出New Database.tdb file has been written into Database.new.tdb. Press any key to quit app.,此使可以按回车或者直接关闭来退出程序,新生成的数据库文件名为Database.new.tdb(请尽量在上一步回车之前确保此文件不存在),此数据库文件即为按照您修改后的Json文件生成的数据库文件,可以自由地被加载。

注释

  1. Gamepiaynmo于2014年8月25日发表的帖子:https://tieba.baidu.com/p/3254431621
  2. 这一版本并非隶属于BallanceRecordChanger,标明只是为了指明代码源头