Diablo II LOD 1.11v Hacking
This website was started @ August 08, 2005.
This website was last updated @ August 09, 2005
This website is about Diablo II hacking with patch 1.11.
My role model is ericjwin.
- A linux and windows Diablo II hacking editor for 1.11 (open source).
- To fully understand the checksum algorithm scheme used on Diablo II saved files (.d2s).
Feel free to email me at <firstname.lastname@example.org> (I'd love to hear what you're thinking!)
Does this website look bad? TELL ME PLEASE (just the browser name and version would be cool)
Want me to clarify on something? Am I missing some points? Email me!
You can't just go into the .d2s file and edit your brains out.
If you edit something (or ANYTHING) in the file, then you'll probably get this:
I know isn't that horrible? :(
ericjwin spoke of a checksum algorithm. I've emailed him to ask for help, hopefully he still uses the email address...
Click Here For The Definition of a Checksum
Chapter I: Mysterious Values
Ok get a hex editor and start a new D2 character in patch 1.11.
Open up the D2 character in the hex editor (.d2s file)
Should look something like this:
Now things start to heat up...
Run Diablo II, open your character, immediately ESC->Save Character and Exit.
Now reload the character in your hex editor, you'll notice something fishy...
VALUES CHANGE...and that's really weird because you did absolutely nothing.
These values can be many different things:
A) It's a number that increments everytime you play.
C) A variable that holds how much time you've been playing
G) A and B
There's also something called a checksum, that also probably changes values depending on the contents of the rest of the file.
It's a key to the rest of the file's contents. The checksum is unique to the rest of the file's data.
This is a screenshot of the values that change (not always, but surely), without doing A THING.
Our goal now is to find out exactly WHY things are changing and HOW the checksum is working.
Let the left side represent the 0x highlighted changes and the right side represent the 30x highlighted changes.
(Look at the left side of the image above, to figure out what I'm talking about)
At this current moment this is what I think the values represent:
#1: 4-bit checksum
#2: 8-bit checksum
#3: 8-bit checksum
#4: Time (See Chapter II)
It seems to me that #3 is completely random! So I'm assuming it's part of the file's checksum!
#2 is also pretty strange...
This is a pattern table for #1 excluding the last 1010:
1100 @ 12
1110 +2 @ 14
0111 -7 @ 7
0101 -2 @ 5
1100 +7 @ 12
1001 -3 @ 9
1000 -1 @ 8
0011 -5 @ 3
0011 @ 3
1001 +6 @ 9
0111 -2 @ 7
0110 -1 @ 6
0100 -2 @ 4
0010 -2 @ 2
This is just so weird! No relationships, must be part of the checksum, I guess.
Chapter II: What does #4 represent?
Well my hypothesis is that it deals with time, how long you have been playing.
Let's get out some data to work with: