SL2 Analyzer
Read a FromSoftware .sl2 save and report what is in it
Loading...
Searching...
No Matches
sl2.keys Namespace Reference

Variables

 DS2_KEY = bytes.fromhex("599F9B699640A55236EE2D70835EC744")
 AES-128 key for Dark Souls II: Scholar of the First Sin.
 
 DS2_VANILLA_KEY = bytes.fromhex("B7FD463E4A9C1102DF1739E5F3B2A50F")
 AES-128 key for VANILLA Dark Souls II (the DX9 original, DARKSII0000.sl2), which is a different key from Scholar of the First Sin above.
 
 DSR_KEY = bytes.fromhex("0123456789ABCDEFFEDCBA9876543210")
 AES-128 key for Dark Souls Remastered.
 
 DS3_KEY = bytes.fromhex("FD464D695E69A39A10E319A7ACE8B7FA")
 AES-128 key for Dark Souls III.
 
 NR_KEY = bytes.fromhex("18F6326605BD178A5524523AC0A0C609")
 AES-128 key for Elden Ring Nightreign.
 

Detailed Description

Encryption keys. All of these ship inside the games; none is a secret.

Variable Documentation

◆ DS2_KEY

sl2.keys.DS2_KEY = bytes.fromhex("599F9B699640A55236EE2D70835EC744")

AES-128 key for Dark Souls II: Scholar of the First Sin.

Definition at line 4 of file keys.py.

◆ DS2_VANILLA_KEY

sl2.keys.DS2_VANILLA_KEY = bytes.fromhex("B7FD463E4A9C1102DF1739E5F3B2A50F")

AES-128 key for VANILLA Dark Souls II (the DX9 original, DARKSII0000.sl2), which is a different key from Scholar of the First Sin above.

From TKGP's SoulsFormats SFUtil.GetDS2SaveKey(). Verified on a real DARKSII0000.sl2: the character block decrypts to entropy 2.8 (the SOTFS key gives 7.99 noise), the name reads out, and every SOTFS field offset lands — see DS2_VANILLA_LAYOUT below.

Definition at line 12 of file keys.py.

◆ DSR_KEY

sl2.keys.DSR_KEY = bytes.fromhex("0123456789ABCDEFFEDCBA9876543210")

AES-128 key for Dark Souls Remastered.

Definition at line 16 of file keys.py.

◆ DS3_KEY

sl2.keys.DS3_KEY = bytes.fromhex("FD464D695E69A39A10E319A7ACE8B7FA")

AES-128 key for Dark Souls III.

Definition at line 20 of file keys.py.

◆ NR_KEY

sl2.keys.NR_KEY = bytes.fromhex("18F6326605BD178A5524523AC0A0C609")

AES-128 key for Elden Ring Nightreign.

From alfizari/Elden-Ring-Nightreign-Save-Editor (MIT), where it is misleadingly named DS2_KEY — it is not Dark Souls II's, which is DS2_KEY above and a different sixteen bytes. It does not need to be taken on trust: every Nightreign entry stores an MD5 of its own plaintext, and with this key all fourteen entries of the test save hash to the value they carry. A wrong key cannot do that.

Definition at line 30 of file keys.py.