# Battle Cats Dat Decryptor
The Battle Cats Dat Decryptor (BCDD) is a tool made for decrypting, encrypting and hashing battle cats event data that is stored in the /files directory of the game data. I made this project in less than 2 hours so atm there is limited functionality but in the future I plan to be able to modify the data directly in the tool.
## How To Use
#### Prerequisites
- [Python](https://www.python.org/downloads/) for running and installing the tool
Run the following commands in command prompt or another terminal to install the tool - If you are not using windows you will need to use `python` or `python3` instead of `py`
#### Installation
```bash
py -m pip install -U bcdd
```
If you get an error saying `No module named pip` then run
```bash
py -m ensurepip --upgrade
```
#### Run
```bash
py -m bcdd
```
### Locating the .dat files
You will need a rooted android device to access the data stored in /data/data.
Then you will need to download and install a root explorer such as [root explorer](https://rootexplorer.co/download/RootExplorer.apk).
Then in root explorer in the `root` tab navigate to `/data/data/jp.co.ponos.battlecats{gv}/files` depending on what game version you are using:
- en: `jp.co.ponos.battlecatsen`
- kr: `jp.co.ponos.battlecatskr`
- tw: `jp.co.ponos.battlecatstw`
- jp: `jp.co.ponos.battlecats`
You need to have run the game and entered the cat base at least once to have the event data available.
The .dat file names are long and correspond to the following data:
- Sale data: `002a4b18244f32d7833fd81bc833b97f.dat` : `event_0`
- Gatya data: `09b1058188348630d98a08e0f731f6bd.dat` : `event_1`
- Daily reward data: `408f66def075926baea9466e70504a3b.dat` : `event_2`
- Ad control data: `523af537946b79c4f8369ed39ba78605.dat` : `ad`
If you're interested the file name is the md5 hash of `event_0`, `ad`, `event_2`, etc
Once you have located the files you need to get access to them on your pc, so copy them to a place that you can access without root (e.g Documents) and connect your device to your pc, or just send them to yourself.
### Decrypting Data
Now that you have the files you then need to run the tool (see above in the `Run` section).
Then select what game version you are using.
Then select the option to `Decrypt a .dat file`.
It will then ask you to select a .dat file to decrypt and then it will ask you where you want to save the decrypted file.
### Encrypting Data
Once you have finished editing the decrypted .dat data you then need to select the option to `Encrypt a .dat file`.
It will then ask you to select a .dat file to decrypt and then it will ask you you where you want to save the encrypted file.
After encrypting you then need to get the file back onto your device and then replace the original .dat file in the game folder with the new modified one. Then you can open the game.
### Interpreting event data
In the future I might add support for this directly in the tool but for now you'll need to use a text editor such as notepad++, or notepad if you want. You can then open the decrypted data in the text editor and modify what you want. You can read [this guide](https://www.reddit.com/r/battlecats/wiki/event_data/decoding_guide/) to help you figure out what sutff means.
## Install From Source
If you want the latest features and don't want to wait for a release then you can install the tool from the github directly.
1. Download [Git](https://git-scm.com/downloads)
2. Run the following commands: (You may have to replace `py` with `python` or `python3`)
```bash
git clone https://github.com/fieryhenry/bcdd.git
py -m pip install -e bcdd/
py -m bcdd
```
If you want to use the tool again all you need to do is run the `py -m bcdd` command
Then if you want the latest changes you only need to run `git pull` in the downloaded `bcdd` folder. (use `cd` to change the folder)
Raw data
{
"_id": null,
"home_page": "https://github.com/fieryhenry/bcdd",
"name": "bcdd",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "",
"author": "fieryhenry",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/d9/0e/850cbcc716f1898e9acbcb35f4ef3be1e79ab38255438e333df8d5c78a5b/bcdd-1.0.1.tar.gz",
"platform": null,
"description": "# Battle Cats Dat Decryptor\r\nThe Battle Cats Dat Decryptor (BCDD) is a tool made for decrypting, encrypting and hashing battle cats event data that is stored in the /files directory of the game data. I made this project in less than 2 hours so atm there is limited functionality but in the future I plan to be able to modify the data directly in the tool.\r\n\r\n## How To Use\r\n#### Prerequisites\r\n- [Python](https://www.python.org/downloads/) for running and installing the tool\r\nRun the following commands in command prompt or another terminal to install the tool - If you are not using windows you will need to use `python` or `python3` instead of `py`\r\n#### Installation\r\n```bash\r\npy -m pip install -U bcdd\r\n```\r\nIf you get an error saying `No module named pip` then run\r\n```bash\r\npy -m ensurepip --upgrade\r\n```\r\n#### Run\r\n```bash\r\npy -m bcdd\r\n```\r\n\r\n### Locating the .dat files\r\nYou will need a rooted android device to access the data stored in /data/data.\r\nThen you will need to download and install a root explorer such as [root explorer](https://rootexplorer.co/download/RootExplorer.apk).\r\nThen in root explorer in the `root` tab navigate to `/data/data/jp.co.ponos.battlecats{gv}/files` depending on what game version you are using:\r\n- en: `jp.co.ponos.battlecatsen`\r\n- kr: `jp.co.ponos.battlecatskr`\r\n- tw: `jp.co.ponos.battlecatstw`\r\n- jp: `jp.co.ponos.battlecats`\r\n\r\nYou need to have run the game and entered the cat base at least once to have the event data available.\r\nThe .dat file names are long and correspond to the following data:\r\n- Sale data: `002a4b18244f32d7833fd81bc833b97f.dat` : `event_0`\r\n- Gatya data: `09b1058188348630d98a08e0f731f6bd.dat` : `event_1`\r\n- Daily reward data: `408f66def075926baea9466e70504a3b.dat` : `event_2`\r\n- Ad control data: `523af537946b79c4f8369ed39ba78605.dat` : `ad`\r\n\r\nIf you're interested the file name is the md5 hash of `event_0`, `ad`, `event_2`, etc\r\n\r\nOnce you have located the files you need to get access to them on your pc, so copy them to a place that you can access without root (e.g Documents) and connect your device to your pc, or just send them to yourself.\r\n\r\n### Decrypting Data\r\nNow that you have the files you then need to run the tool (see above in the `Run` section).\r\nThen select what game version you are using.\r\nThen select the option to `Decrypt a .dat file`.\r\nIt will then ask you to select a .dat file to decrypt and then it will ask you where you want to save the decrypted file.\r\n\r\n### Encrypting Data\r\nOnce you have finished editing the decrypted .dat data you then need to select the option to `Encrypt a .dat file`.\r\nIt will then ask you to select a .dat file to decrypt and then it will ask you you where you want to save the encrypted file.\r\n\r\nAfter encrypting you then need to get the file back onto your device and then replace the original .dat file in the game folder with the new modified one. Then you can open the game.\r\n\r\n### Interpreting event data\r\nIn the future I might add support for this directly in the tool but for now you'll need to use a text editor such as notepad++, or notepad if you want. You can then open the decrypted data in the text editor and modify what you want. You can read [this guide](https://www.reddit.com/r/battlecats/wiki/event_data/decoding_guide/) to help you figure out what sutff means.\r\n\r\n## Install From Source\r\nIf you want the latest features and don't want to wait for a release then you can install the tool from the github directly.\r\n1. Download [Git](https://git-scm.com/downloads)\r\n2. Run the following commands: (You may have to replace `py` with `python` or `python3`)\r\n\r\n```bash\r\ngit clone https://github.com/fieryhenry/bcdd.git\r\npy -m pip install -e bcdd/\r\npy -m bcdd\r\n```\r\n\r\nIf you want to use the tool again all you need to do is run the `py -m bcdd` command\r\n\r\nThen if you want the latest changes you only need to run `git pull` in the downloaded `bcdd` folder. (use `cd` to change the folder)\r\n",
"bugtrack_url": null,
"license": "",
"summary": "A tool for decrypting and encrypting battle cats .dat files",
"version": "1.0.1",
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "05684be58ae3e3dc9a7318e7c75f87e87c9d2ae17c86f91034be6ecee7dc31b6",
"md5": "d7e8af8baab6e954c5630ca9772a1748",
"sha256": "1118e107f71dde9138cd1a4b4722395b57f72816f72ba74a6932bb4ee1dae3c7"
},
"downloads": -1,
"filename": "bcdd-1.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d7e8af8baab6e954c5630ca9772a1748",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 14487,
"upload_time": "2023-01-03T11:35:10",
"upload_time_iso_8601": "2023-01-03T11:35:10.912094Z",
"url": "https://files.pythonhosted.org/packages/05/68/4be58ae3e3dc9a7318e7c75f87e87c9d2ae17c86f91034be6ecee7dc31b6/bcdd-1.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d90e850cbcc716f1898e9acbcb35f4ef3be1e79ab38255438e333df8d5c78a5b",
"md5": "d248d77184324066dea400e310feee4c",
"sha256": "605b3f1977a92656ec048d3656eab098e3e04f28433524f0d8936319b677a4b5"
},
"downloads": -1,
"filename": "bcdd-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "d248d77184324066dea400e310feee4c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 14538,
"upload_time": "2023-01-03T11:35:12",
"upload_time_iso_8601": "2023-01-03T11:35:12.847899Z",
"url": "https://files.pythonhosted.org/packages/d9/0e/850cbcc716f1898e9acbcb35f4ef3be1e79ab38255438e333df8d5c78a5b/bcdd-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-01-03 11:35:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "fieryhenry",
"github_project": "bcdd",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "colored",
"specs": [
[
"==",
"1.4.3"
]
]
},
{
"name": "pycryptodomex",
"specs": [
[
"==",
"3.16.0"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.25.1"
]
]
}
],
"lcname": "bcdd"
}