Skip to content

How to find Checksum information

Damián Parrino edited this page Oct 23, 2021 · 3 revisions

Originally by Ginger from ps3cheating.net

Every PS3 save data is different. Some save has checksum and some don't. To further complicate the process, every checksum is different also. There is still many unknown checksum information. Until there are known and converted to BSD format, the cheats will not work.

Let's take GoldenEye 007: Reloaded BLUS30755 as an example. Let's find checksum information for this save.

How did we get

; GoldenEye 007: Reloaded
; BLUS30755
;From Game Genie For PS3
 
:BLUS30755AUTOSAVE*\66600001.DAT
[Infinite Ammo]
80010004 5CABFACE
93000000 00000014
18000000 00007FFF
18000006 00007FFF
1800000C 00007FFF
set [crc32]:crc32
 
;:BLUS30755AUTOSAVE*\96600000.DAT
 
; dependency: SAVE.BIN
:BLUS30755AUTOSAVE*\SAVE.BIN
[Update CRC32 on SAVE.BIN (required)]
write at 0x18:[crc32]

CRC32 is a type of hash. BSD supports the following :

  • crc16
  • crc32
  • md5
  • md4
  • md2
  • sha1
  1. To find the offset, you must decrypt the original files using BSD.
  2. To calculate the crc32 of the data file (you can use Aldo's PS3 Game Integrity Tool or HashTab).
  3. Then search for these bytes in the dependency file with a hex editor to find the offset.
  4. The set [variable]:crc32 usually (but not always) goes at the end of the patches.

Note: These methods will/may not work for other saves that have a checksum.

There are number of tools out there that could assist in finding the checksum information. One such tool is Algorithm Tool It is for the XBOX community. But it also kinda works for use.

Let's take Lollipop Chainsaw BLUS30917 as an example.

How did we get?

[default:Update crc32 (required)]
set range:0x8,0x60BF
set [crc]:crc32big
write at 0x4:[crc]

Mini-guide from aldostools

  1. I started Algorithm Tool, and opened the PAYLOAD file from the save folder.
  2. Select: unknown hash, uncheck Single Algorithm Search, Start 0, +Position 1, Quick Search, Stop at First Result
  3. Press "Search" button and it will return something like:
############### CRC32_Bzip2 Found ! ######################
Hash (Hex)         = 99119EEF
HashLocation       = 4
Calculation Start  = 8
Calculation length = 24760
#############################################################

This is the code for BSD:

[default:Update crc32 (required)]
set range:0x8,0x60BF   <--- Calculation Start= 8 converted to hex = 0x8, see note below for the value of end of range
set [crc]:crc32big          <--- CRC32_Bzip2 seems to be CRC32 big endian
write at 0x4:[crc]          <--- HashLocation = 4 converted to hex = 0x4

Note: The end of range is: (Calculation Start + Calculation length - 1) converted to hex

  • Example: 8 + 24760 - 1 = 24767 = 0x60BF

This tool can be used just on few scenarios. Only some algorithms are covered: md5, sha1, crc16, crc32, crc32big (CRC32_Bzip2)


BSD includes the "BSD Patch Creator" that is a tool that I created to help to create BSD cheat scripts and to find the checksums.

To use it, the save must be decrypted (the file ~files_decrypted_by_pfdtool.txt must exists).

  1. From Bruteforce SaveData, select the decrypted SAVE file on the green box.
  2. Right-click on the file and select "Open Selected File on Patch Creator"
  3. On the HEX editor panel, select the first byte where the checksum is found. It's usually found at the top or at the end.
  4. Press Checksum button or press F7.
  5. The Search Checksum dialog has 2 modes of finding:
    • Press F3 to test all the algorithms in the current offset
    • Press Search button to test various calculation ranges with all the supported algorithms.

Here you must provide the initial range, the end of range and the stop offset (for the initial range or the end range if Reverse Search is checked). Uncheck Step 4 if the increment of the search address must be 1.

The calculated checksum for the current range and it's reflected value are displayed in a box.

Tip: Use the Up/Down buttons of the different parameters to search manually.

Once a matching checksum is found, a green box with a checkmark will be shown and a CODE button will appear. Press the CODE button to view the script code and copy it to the clipboard.

Clone this wiki locally