Warhammer Chaosbane

Upload your cheat tables here (No requests)
User avatar
xacegod
Expert Cheater
Expert Cheater
Posts: 89
Joined: Sat Apr 15, 2017 9:23 am
Reputation: 37

Re: Warhammer Chaosbane

Post by xacegod »

Is there a way to get skill points? So that I can put stronger skills and add more skills to use.
And quality of gear? There is a skill that increases the drop change by +100% and also I am aware of using this table with difficulty set to 9 and one hit kill (since it is almost impossible to kill enemies when difficulty is set to 9), since it is changeable perhaps it can be found...
Reputation would also be nice to get just to speed up the grind.

How to use this cheat table?
  1. Install Cheat Engine
  2. Double-click the .CT file in order to open it.
  3. Click the PC icon in Cheat Engine in order to select the game process.
  4. Keep the list.
  5. Activate the trainer options by checking boxes or setting values from 0 to 1

acecel
Expert Cheater
Expert Cheater
Posts: 964
Joined: Sun Apr 09, 2017 1:32 am
Reputation: 163

Re: Warhammer Chaosbane

Post by acecel »

xacegod wrote:
Sat Jun 01, 2019 10:59 am
Is there a way to get skill points? So that I can put stronger skills and add more skills to use.
And quality of gear? There is a skill that increases the drop change by +100% and also I am aware of using this table with difficulty set to 9 and one hit kill (since it is almost impossible to kill enemies when difficulty is set to 9), since it is changeable perhaps it can be found...
Reputation would also be nice to get just to speed up the grind.
I agree about your question regarding skill points, the actual limit is way too low for my taste.

About item drops, you can edit some values in the configuration file adjust.cnf (you can also edit graphic settings and many other params) located :

Code: Select all

 ..\Warhammer Chaosbane\Data\GD\adjust.cnf
Search for

Code: Select all

Loot/gs_fMinQuality:4;[VALUE]
for example and set the value as you want (i don't know the min/max values so you have to try by yourself)
There is many values that can be edited, i didn't have time to try them all so good luck :mrgreen:

Edit : This is obvious but make a copy of the file (and your save) before modifying anything in this configuration file, just in case ;)
Edit 2 : And there is also SPOIL about bosses names and such, so if you want to avoid that be carefull
Edit 3 : Don't enable Bloom (3D/gs_EnableBloom:1;0 --> 3D/gs_EnableBloom:1;1), except if you have bad taste :cry:
Edit 4 : I enabled Screen Space Reflection(3D/gs_EnableSSR:1;1) because it was disabled by default but i haven't seen change yet.
Edit 5 : The list of graphic effects you can edit are : Bloom, DOF, HBIL, MLAA, SSAO, SSR, SSS, TAA, and things like saturation, sun power, ambient light, etc ..

acecel
Expert Cheater
Expert Cheater
Posts: 964
Joined: Sun Apr 09, 2017 1:32 am
Reputation: 163

Re: Warhammer Chaosbane

Post by acecel »

fearlessrevolution updated his trainer with an infinite skill points cheat, if you have the previous one there is a link directly on the trainer to the download page.

There is many files in the game folder which seems to be crypted, the extension is .ynm, does anyone have an idea of what is it and how to decrypt it ? There seems to be xml with params for everything in the game, all skills tree and such.

I only miss infinite favor point to max the "god's tree" thing :mrgreen:

leeweiquan
What is cheating?
What is cheating?
Posts: 2
Joined: Wed Dec 19, 2018 9:27 am
Reputation: 8

Re: Warhammer Chaosbane

Post by leeweiquan »

save Edit

[Link]

[Link]

Anglican
Expert Cheater
Expert Cheater
Posts: 119
Joined: Tue Mar 14, 2017 9:23 am
Reputation: 10

Re: Warhammer Chaosbane

Post by Anglican »

Can you give us a link for those who cannot understand Chinese?

User avatar
Rysefox
Table Makers
Table Makers
Posts: 862
Joined: Sat Jun 23, 2018 3:32 pm
Reputation: 918

Re: Warhammer Chaosbane

Post by Rysefox »

Anglican wrote:
Mon Jun 03, 2019 10:52 am
Can you give us a link for those who cannot understand Chinese?
Warhammer Chaosbane\Data\Save\SaveCharF_Public_slot*.ynm

Damage
Armor
MovementSpeed_Multiplier
CriticHitBonus
CooldownReduction
StaminaCostReduction
ArmorReductionTarget
Thorn_Damage
MaximumLife
MaximumStamina
CriticHitChance
Char_BonusGold
LifeRegenerationPerSecond
Char_BonusRarity

chusski
Cheater
Cheater
Posts: 45
Joined: Sat Sep 08, 2018 8:25 pm
Reputation: 6

Re: Warhammer Chaosbane

Post by chusski »

Rysefox wrote:
Mon Jun 03, 2019 10:58 am
Anglican wrote:
Mon Jun 03, 2019 10:52 am
Can you give us a link for those who cannot understand Chinese?
Warhammer Chaosbane\Data\Save\SaveCharF_Public_slot*.ynm

Damage
Armor
MovementSpeed_Multiplier
CriticHitBonus
CooldownReduction
StaminaCostReduction
ArmorReductionTarget
Thorn_Damage
MaximumLife
MaximumStamina
CriticHitChance
Char_BonusGold
LifeRegenerationPerSecond
Char_BonusRarity
We need a link to Download it, cant download from there

User avatar
r3zn4v4ts
Novice Cheater
Novice Cheater
Posts: 15
Joined: Tue Oct 16, 2018 5:31 am
Reputation: 2

Re: Warhammer Chaosbane

Post by r3zn4v4ts »

chusski wrote:
Mon Jun 03, 2019 11:30 am
Rysefox wrote:
Mon Jun 03, 2019 10:58 am
Anglican wrote:
Mon Jun 03, 2019 10:52 am
Can you give us a link for those who cannot understand Chinese?
Warhammer Chaosbane\Data\Save\SaveCharF_Public_slot*.ynm

Damage
Armor
MovementSpeed_Multiplier
CriticHitBonus
CooldownReduction
StaminaCostReduction
ArmorReductionTarget
Thorn_Damage
MaximumLife
MaximumStamina
CriticHitChance
Char_BonusGold
LifeRegenerationPerSecond
Char_BonusRarity
We need a link to Download it, cant download from there
agreed, I tried registering at the 3dm forums, but you cannot download/post in the forums until you bind your account to a phone number, sadly only mainland china +86 phone numbers are accepted.
can anyone help ?

chuwar
Cheater
Cheater
Posts: 37
Joined: Fri Mar 03, 2017 7:41 am
Reputation: 19

Re: Warhammer Chaosbane

Post by chuwar »

Here > [Link]
Source > [Link]

apollo1
Expert Cheater
Expert Cheater
Posts: 68
Joined: Sun Sep 16, 2018 6:17 pm
Reputation: 41

Re: Warhammer Chaosbane

Post by apollo1 »

chuwar wrote:
Tue Jun 04, 2019 4:55 am
Here > [Link]
Source > [Link]

Thanks!, works perfectly, dont even need the cheat table/trainer anymore. I just used the instant cooldown cheat, so i just gave myself 100% cooldown reduction on the gear. Oh and the lootdrop rate is really handy, i gave my gear 999,999% lootdrop and always get red gear drops now.

Coreinsanity
What is cheating?
What is cheating?
Posts: 1
Joined: Wed Jun 05, 2019 12:02 pm
Reputation: 0

Re: Warhammer Chaosbane

Post by Coreinsanity »

So it looks like someone posted source for decrypting save files and text assets over on the chaosbane subreddit:

Code: Select all

https://www.reddit.com/r/Chaosbane/comments/bwupx7/blood_for_the_blood_god/
figured I'd post this here as well so that someone can make use of it instead of being limited to some random Chinese binary. It contains a detailed description of how the saves and ynm assets are encrypted, and provides a simple proof of concept source to decrypting/re-encrypting them.

Edit: Somehow the link keeps screwing up, so I just put it in a code block.

Edit 2:

To save the post for future use, in case it gets removed:
So the save game format intrigued me. The save games, and the YNM text assets, are both encrypted with a fairly simple algo. This really only took me about a half day to figure out and write a quick proof of concept for.



Take the name of the file, remove the extension, and make it lowercase
Append EKO_SECRET:7373730! to the filename, ie: savecharf_public_slot0EKO_SECRET:7373730!
Pass the key string through an RC4 prepare_key function that results in a 256 byte key
Create a zeroed buffer the size of the input, and run the buffer and the new RC4 key through the RC4 algo
Use this 1:1 buffer and xor the input
Repeat the process to re-encrypt the file.



As I said, this will get you into both the saves, and the other ynm text assets. Possibly more, I didn't spend all that much time doing this and got bored after figuring out the encryption, that was the fun for me.



Save games are in <Steam Path>/steamapps/common/Warhammer Chaosbane/Data/Save as is some other files, like Common.ynm which contains your fragments and gold. Extra skill points can also be obtained by changing or adding the line <skills additionalPoints="1234"/> in common.ynm . You can more easily get to the game data folder by right clicking the game in steam, going to properties, Local Files tab, and hitting Browse Local Files.



Using this you can easily make extremely overpowered gear, as well. 100% cooldown, crit, crit damage, etc no problem. The files are just your run of the mill XML once you decrypt them. Remember to re-encrypt when you're done, the same goes for assets.



Here's an example of what you can do:



Here is the source for anybody who cares to make anything fun with this, I simply threw it together as a proof of concept and manually alter it to do what I want, I have no interest in making a full-blown save editor with this, someone else can have fun with that:

This was compiled using MSVC using C++17 standard, though should work in other stuff compatible with the C++17 standard.

Code: Select all

#include <iostream>
#include <string>
#include <filesystem>
#include <vector>
#include <fstream>


using namespace std;
namespace fs = filesystem;

struct rc4_key 
{
    uint8_t state[256]{ 0 };
    // uint8_t x; // Not used
    // uint8_t y; // Not used
};

void decrypt_or_encrypt_file(fs::path path, fs::path destination);

void cb_prep_key(fs::path path, rc4_key* key);

void init_key(rc4_key* out_key, const char* key, size_t key_size);
void rc4(rc4_key* key, uint8_t* block, size_t length);

void swap(uint8_t* a, uint8_t* b);
vector<uint8_t> read_bytes(fs::path file);
void write_bytes(fs::path path, uint8_t* data, size_t size);

constexpr char hard_key[] = "EKO_SECRET:7373730!";
constexpr char root_path[] = "<path to Steam>/steamapps/common/Warhammer Chaosbane/Data/Save";
constexpr char data_path[] = "<path to Steam>/steamapps/common/Warhammer Chaosbane/Data";
constexpr char extract_path[] = "./Path/To/Extract";
int main()
{
    /*
        The following will extract the data directory to a given path
    */

    fs::path extract = extract_path;
    for (auto& entry : fs::recursive_directory_iterator(data_path))
    {
        if (!entry.is_regular_file())
            continue;

        fs::path file = entry.path();
        fs::path extract_path = extract / file.lexically_relative(data_path);

        if (!fs::exists(extract_path.parent_path()))
            fs::create_directories(extract_path.parent_path());

        // Only decrypt ynm files, XML files are not encrypted.
        if (file.extension() == ".ynm")
            decrypt_or_encrypt_file(file, extract_path);
        else
            fs::copy(file, extract_path);

        cout << extract_path.parent_path() << " (rel: " << entry.path().lexically_relative(data_path) << ")" << endl;
    }


    /*
        The following will decrypt certain files in place.
    */

    fs::path files[]
    {
        fs::path(root_path) / "SaveCharF_Public_slot0.ynm",
        fs::path(root_path) / "SaveCharF_Public_slot1.ynm",
        fs::path(root_path) / "common.ynm",
        fs::path(data_path) / "Stats.ynm",
        fs::path(data_path) / "Skills_Slayer.ynm",
        fs::path(data_path) / "Skills_HighElf.ynm",
    };

    for (auto& file : files)
        decrypt_or_encrypt_file(file, file);

    return 0;
}

void decrypt_or_encrypt_file(fs::path path, fs::path destination)
{
    rc4_key key;
    cb_prep_key(path, &key);

    auto file = read_bytes(path);
    vector<uint8_t> xor_buffer(file.size());
    rc4(&key, xor_buffer.data(), xor_buffer.size());

    for (int i = 0; i < file.size(); i++)
        file[i] = file[i] ^ xor_buffer[i];

    write_bytes(destination.string(), file.data(), file.size());
}

void cb_prep_key(fs::path path, rc4_key* key)
{
    std::string keystr = path.stem().string();
    transform(keystr.begin(), keystr.end(), keystr.begin(), ::tolower);
    keystr += hard_key;

    init_key(key, keystr.c_str(), keystr.size());
}

void init_key(rc4_key* out_key, const char* key, size_t key_size)
{
    int index1, index2;
    uint8_t* state = out_key->state;

    for (int i = 0; i < 256; i++)
        state[i] = i;

    index1 = index2 = 0;
    for (int i = 0; i < 256; i++)
    {
        index2 = (key[index1] + state[i] + index2) % 256;
        swap(&state[i], &state[index2]);
        index1 = (index1 + 1) % key_size;
    }
}

void rc4(rc4_key* key, uint8_t* block, size_t length)
{
    int x = 0, y = 0;
    uint8_t* state = key->state;

    for (int i = 0; i < length; i++)
    {
        x = (x + 1) % 256;
        y = (y + state[x]) % 256;
        swap(&state[x], &state[y]);

        int xorIndex = (state[x] + state[y]) % 256;
        block[i] ^= state[xorIndex];
    }
}

void swap(uint8_t* a, uint8_t* b)
{
    uint8_t temp = *a;
    *a = *b;
    *b = temp;
}

std::vector<uint8_t> read_bytes(fs::path path)
{
    ifstream file(path, ios::binary | ios::ate);
    streampos size = file.tellg();

    std::vector<uint8_t> result(size);

    file.seekg(0, ios::beg);
    file.read(reinterpret_cast<char*>(result.data()), size);

    return result;
}

void write_bytes(fs::path path, uint8_t* data, size_t size)
{
    ofstream file(path, ios::binary);
    file.write(reinterpret_cast<const char*>(data), size);
    file.close();
}

onyxius
Cheater
Cheater
Posts: 34
Joined: Mon Oct 01, 2018 4:20 pm
Reputation: 1

Re: Warhammer Chaosbane

Post by onyxius »

So I changed the loot drop rate chance and quality to 99.99999 but nothing changed. I even changed the 4 to a 10 for testing but doesn't seem to have made a difference

Loot/gs_fMinQuality:10;99.999999
Loot/gs_fScaleFallPercent:10;99.999999

jcnguyen19
What is cheating?
What is cheating?
Posts: 3
Joined: Wed Jun 05, 2019 7:18 pm
Reputation: 0

Re: Warhammer Chaosbane

Post by jcnguyen19 »

Can someone please tell me how to add energy regeneration for my slayer? I don't want to use the trainer as I just want to add it into my stats if possible. Thanks.

onyxius
Cheater
Cheater
Posts: 34
Joined: Mon Oct 01, 2018 4:20 pm
Reputation: 1

Re: Warhammer Chaosbane

Post by onyxius »

jcnguyen19 wrote:
Wed Jun 05, 2019 7:20 pm
Can someone please tell me how to add energy regeneration for my slayer? I don't want to use the trainer as I just want to add it into my stats if possible. Thanks.
Have you used that editor tool a few posts up to open up yours ave file and change your character info there? If you use the tool, use the O option for open and S option for save. Make sure your game is fully closed out before modifying anything.

carl.simmer
What is cheating?
What is cheating?
Posts: 2
Joined: Thu Jun 06, 2019 12:34 pm
Reputation: 0

Re: Warhammer Chaosbane

Post by carl.simmer »

Made a Java version of the above C++ program. It works so have fun with it.

Code: Select all


import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.SecretKeySpec;

public final class Main {

	public static String decrypt(byte[] savegameData, String savegameName) {
		try {
			Cipher rc4 = Cipher.getInstance("RC4");
			rc4.init(Cipher.DECRYPT_MODE, makeKey(savegameName));
			byte[] decrypted = rc4.doFinal(savegameData);
			return new String(decrypted);
		} catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException
				| BadPaddingException e) {
			throw new RuntimeException(e);
		}
	}

	public static byte[] encrypt(String savegameData, String savegameName) {
		try {
			Cipher rc4 = Cipher.getInstance("RC4");
			rc4.init(Cipher.ENCRYPT_MODE, makeKey(savegameName));
			return rc4.doFinal(savegameData.getBytes());
		} catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException
				| BadPaddingException e) {
			throw new RuntimeException(e);
		}
	}

	private static SecretKeySpec makeKey(String savegameName) {
		byte[] secret = (savegameName.toLowerCase() + "EKO_SECRET:7373730!").getBytes();
		return new SecretKeySpec(secret, 0, secret.length, "RC4");
	}
}

Post Reply

Who is online

Users browsing this forum: admantx, akenoakira, Bing [Bot], LarabeJR, Majestic-12 [Bot], PrimaY, unown09, wahyu888, xXLashkeXx