OutdatedDeadByDaylight Savegame Editor v1.5 (final)

Posts 115 of 45 · Page 1 of 3
DeadByDaylight Savegame Editor v1.5b (final)
Hi there,

The final version of the savegame editor. I also release the source-code so the community
can work on further enhancements if needed. For the ones who want to stash some items
for the case that the devs move things to the servers I upped the maximum item amount.

Here is how the main windows looks:


For beginners I recommend to only change amounts of items and maybe the UserId in the 'main values'
tab to use profiles from someone else..

Let me give you a few security hits against bans:
- Back up your save before you modify it!!!
- NEVER use this when DBD is running (ban risk)
- Do not hack in things you cannot obtain
- Disable the steam cloud

Also you need net 4.5.2 to run this.

Here are the virus scans:
https://www.virustotal.com/#/file/5c...1ed1/detection
https://virusscan.jotti.org/de-DE/fi...job/p6ciy8vwim

Enjoy and let me know what you think.

Changelog:
1.5b (final):
- Fix a bug introduced in 1.5 leading to mismatching tabs.

1.5:
- Release the source-code.
- Upped maximum item count to 2000 from 500.
- Added a function that quits the editor once the game is started (maybe this prevents some
bans if people leave it open on accident).
- Added new Freddy & Quentin name and items.
- Remove false "Wraith" tab.
- Slightly move buttons in order to avoid overlaps on systems with weird fonts.

1.4:
- Fixed dates being written to the profiles with a wrong format that is
a security issue (thx to billyhtchcoc who reported this first). I recommend everyone
to upgrade to this version if you plan to use the prestige feature.
- Disabled the prestige button for killers/survivors for which the 0001 date is invalid (thx to SteenGooier).
Note that you need to manually enter the correct date to prestige these slashers.
- Fixed a crash when pressing "Copy" without selecting any item.

1.3:
- Added a button that allows to copy&paste all selected items to other tabs.
- Added a new window that allows to change the level and prestige times of characters.
- Fixed a bug that disallowed changing the count of an item that occurs over 500 times.

1.2:
- Add new item button now displays all possible items & perks.
- Multiple items can be selected & modified simultaneously.
- Savegames that are in a path with chinese / cyrillic letters can now be read & saved.
- Added strings for Cannibal.

1.1:
- Items in tabs are now sorted.
- Fixed a bug that prevented the decryption of savegames.
- Added a warning if too many items are saved.

Note:
New topic to improve visibility.
DbdSavegameEditor1.5_mpgh.net.zip5.0 MB · 664 downloads Clean
DbdSavegameEditor1.5b_mpgh.net.zip5.0 MB · 448 downloads 1/52 malicious
Now We'll know what was the key to .profcje files.
Quote Originally Posted by morritz View Post
Now We'll know what was the key to .profcje files.
Actually this release only contains the source code to the savegame editor, which is basically a more convenient way to do changes to the JSON file.

The actual encryption / decryption takes place in the "DbdCrypter.dll" which is not included.
Anyways if you are interested in the format I can explain how this is done:

Code:
static std::string obfuscated_key  = "lEQWeCt51ET+MIuxdTs7Ig/gzVZP2vdkVZA1BDfz+L0=";
static std::string obfuscation_key = "6EF35759-454D-4EBC-8041-9A94CB99FD5D";
static std::string global_magic_inner = "DbdDAQEB";
static std::string global_magic_outer = "DbdDAgAC";
static std::string encryption_key = CryptoUtils::unreal_aes_decode(CryptoUtils::base64_decode(obfuscated_key), obfuscation_key);

std::string decrypt_savegame(std::string profile_file_content) {
	std::string magic_outer(profile_file_content.begin() + 0x4, profile_file_content.begin() + 0xC);
	std::string payload(profile_file_content.begin() + 0xC, profile_file_content.end() - 1);
	std::string raw_payload = CryptoUtils::base64_decode(payload);
	std::string decrypted_payload = CryptoUtils::unreal_aes_decode(raw_payload, encryption_key);
	for (std::size_t i = 0; i < decrypted_payload.size(); ++i) {
		decrypted_payload[i] += 0x1;
	}
	std::string magic_inner(decrypted_payload.begin(), decrypted_payload.begin() + 0x8);
	std::string payload_inner(decrypted_payload.begin() + 0x8, decrypted_payload.end());
	std::string raw_inner = CryptoUtils::base64_decode(payload_inner);
	std::string zipped_profile(raw_inner.begin() + 4, raw_inner.end());
	std::string unzipped_profile = CryptoUtils::zlib_decompress(gzipped_profile);
	std::wstring my_profile = StrUtils::interpret_str_as_wstr(unzipped_profile);
	return StrUtils::wstr_to_str(my_profile);
}
So basically the JSON is first compressed with zlib, then base64 encoded, encrypted with aes and then again base64 encoded.
Also the aes implementation is a special variant that can be found in the unreal sdk (not cryptographically secure).
The emperor is coming.
everybody praise the emperor.
You're the best, David Ze. <3
Thanks for all your work, David! Fantastic release, props for releasing the source code.
If anyone with a VAC ban could share me their games ,so i can dowload DBD original version(im on cracked) and cant get the .profcje file . So if anyone could allow me to dowload their dbd and then i can get a .profcje file in my userdata from the game. Anyone generous enough just add me - Tickle my pickle


Unless someone knows a way to get a .profcje file on cracked version then HMU
hey, is there anyway to change the amount of every item on the specific survivor/killer so we dont have to manually change each and every value? seems to take forever for each character. ive spent easily an hour lowering values. not trying to hate just asking great release btw! love the program!!
Thanks for explaining but i still find it hard as it is reverse engineering
Thanks dude!
Posts 115 of 45 · Page 1 of 3
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?