Dragon Ball Z Xenoverse 2
CUSA05088.savepatch
1. Decrypt save data AES CTR (Required)
Target File: SDATA*.DAT
set range:0x0020,0x009F
decrypt AES_CTR("PR]-<Q9*WxHsV8rcW!JuH7k_ug:T5ApX", "_Y7]mD1ziyH#Ar=0")
set [offset]:read(0x25, 0x01)
set [offset]:AND:0x04
set [offset]:[offset]+[offset]+[offset]
set [offset]:[offset]+[offset]+[offset]+[offset]
set [offset]:[offset]+0x3C
set [key_ctr]:read([offset], 0x20)
set [offset]:[offset]+0x20
set [iv_ctr]:read([offset], 0x10)
set range:0x00A0,EOF+1
decrypt AES_CTR([key_ctr], [iv_ctr])
2. Update Custom checksum (Required)
Target File: SDATA*.DAT
write at 0x0034:0x0000000000000000
set [checkdbz]:dbzxv2_checksum
write at 0x0034:[checkdbz]
3. Encrypt save data AES CTR (Required)
Target File: SDATA*.DAT
set [offset]:read(0x25, 0x01)
set [offset]:AND:0x04
set [offset]:[offset]+[offset]+[offset]
set [offset]:[offset]+[offset]+[offset]+[offset]
set [offset]:[offset]+0x3C
set [key_ctr]:read([offset], 0x20)
set [offset]:[offset]+0x20
set [iv_ctr]:read([offset], 0x10)
set range:0x00A0,EOF+1
encrypt AES_CTR([key_ctr], [iv_ctr])
set [checkdbz]:dbzxv2_checksum
write at 0x0034:[checkdbz]
set range:0x0020,0x009F
encrypt AES_CTR("PR]-<Q9*WxHsV8rcW!JuH7k_ug:T5ApX", "_Y7]mD1ziyH#Ar=0")
4. Update MD5 Hash (Required)
Target File: SDATA*.DAT
set pointer:EOF+1
set range:0x0020,pointer
set [hash]:MD5
write at 0x0010:[hash]