Main Site | Forum | Rules | Downloads | Wiki | Features | Podcast

NLSC Forum

A hub for everything related to NBA 2K17 modding. Releases, previews, requests, and other modding discussion belongs here.
Post a reply

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find

Wed Nov 30, 2016 8:26 am

I did actually hex edit an offline roster :D

Actually I did put "UNIFORM" block from one offline roster into another....then you just have to update the header at the start of the file (EOF position will change becouse roster size will change becouse uniform BLOCK size is different)...but game won't crash!

This mean:

a) They checksum every block not the whole file
b) They don't use strange encryption algorithm

The potential is actually huge.....this could (i just want to test more in the coming days...)mean we can edit roster that 2K ship with every update and use them as base for our rosters...

I will do some research now...as always stay tuned....

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find

Wed Nov 30, 2016 8:54 am

OMG !!!amazing job

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find

Wed Nov 30, 2016 8:58 am

Image

And every block just differs for some bytes at the beginning of the block itself...which means decoding how they checksum every block actually means we can hex edit any OFFLINE roster freely...

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find

Wed Nov 30, 2016 9:17 am

Crossing my fingers :crazyeyes:

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find

Wed Nov 30, 2016 12:09 pm

Maumau, that's indeed a huge find! Having a specific checksum for each block is something I wasn't expecting at all. So now I think it's close. I will try to help now that I got some spare time, but anyway, that was a huge step towards being able to edit RDAT files :applaud:

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find

Wed Nov 30, 2016 12:31 pm

I'm just going to pretend that I am not exciting. That way, I don't get my hopes up.

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find

Wed Nov 30, 2016 3:41 pm

(Y)

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find

Wed Nov 30, 2016 5:42 pm

CarolusXCI wrote:Maumau, that's indeed a huge find! Having a specific checksum for each block is something I wasn't expecting at all. So now I think it's close. I will try to help now that I got some spare time, but anyway, that was a huge step towards being able to edit RDAT files :applaud:


Two Stuff:

1) Always remember to edit the 2 -> 4bytes at the beginning of the ROSTER.RDAT...they must point to offset at the end of the file. If you insert a "UNIFORM" or "PLAYER" block that is bigger or smaller than original one you must update those bytes or game will CTD

2) I suppose that bytes after "BNDL" string should be something like block lenght or similar....I have to investigate and play with those bytes...

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find

Wed Nov 30, 2016 8:25 pm

maumau78 wrote:
CarolusXCI wrote:Maumau, that's indeed a huge find! Having a specific checksum for each block is something I wasn't expecting at all. So now I think it's close. I will try to help now that I got some spare time, but anyway, that was a huge step towards being able to edit RDAT files :applaud:


Two Stuff:

1) Always remember to edit the 2 -> 4bytes at the beginning of the ROSTER.RDAT...they must point to offset at the end of the file. If you insert a "UNIFORM" or "PLAYER" block that is bigger or smaller than original one you must update those bytes or game will CTD

2) I suppose that bytes after "BNDL" string should be something like block lenght or similar....I have to investigate and play with those bytes...


Mauro, what you are doing for this community is impressive my man! :bowdown:

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Wed Nov 30, 2016 8:29 pm

Holy shit. :bowdown:

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Wed Nov 30, 2016 10:47 pm

Wait so can you get a custom roster loaded in now or just stop the game from crashing when it's modified?

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Wed Nov 30, 2016 10:58 pm

PeacemanNOT wrote:Wait so can you get a custom roster loaded in now or just stop the game from crashing when it's modified?



"....I did actually hex edit an offline roster :D
Actually I did put "UNIFORM" block from one offline roster into another....then you just have to update the header at the start of the file (EOF position will change becouse roster size will change becouse uniform BLOCK size is different)...but game won't crash!..."


Translated: we now know how ROSTER.RDAT is structured and we know they hash/checksum per block...which can lead us/me into the right direction for having offline roster edited...

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Thu Dec 01, 2016 1:13 am

So basically we can't edit specific stuff in a sector until we find the checksum type of that sector right?

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Thu Dec 01, 2016 1:18 am

seanbarkley wrote:So basically we can't edit specific stuff in a sector until we find the checksum type of that sector right?


I'll be home in 3 hours....I'll do some test...

But I think yes the hash/checksum must be here at the beginning of the block....

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Thu Dec 01, 2016 2:01 am

CRC32 is my bet :)

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Thu Dec 01, 2016 2:30 am

seanbarkley wrote:CRC32 is my bet :)


IDK...looking at those 4-byte differences....they are really similar in terms of values...which is uncommon for CRC...I'll dig on this

2373341796 (first file)
3715606738 (second file)

3553460106 (first file)
4096904079 (second file)

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Thu Dec 01, 2016 4:34 am

Image

I found two roster with minimal uniform change...and the header only diff for this....this IMHO is the key

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Thu Dec 01, 2016 5:05 am

It could be CRC32 as it used to be in previous years... The thing is knowing exactly where the checksumed part ends...

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Thu Dec 01, 2016 5:13 am

seanbarkley wrote:It could be CRC32 as it used to be in previous years... The thing is knowing exactly where the checksumed part ends...


It start from the "01" of the previous picture and it goes till here:

Image

until here....I already checked...If i change just one byte it crash becouse CRC/Checksum is not re-computed

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Thu Dec 01, 2016 7:35 am

Hope I could help man, but I'm not at home these days. Have you tried Checksuming from the end of those 4 bytes till what you consider the end? You have us intrigued! :D

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Thu Dec 01, 2016 11:15 am

Maumau, after 42 4E 44 4C (that BNDL part), which bytes can be changed without crashing the game?

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Thu Dec 01, 2016 6:40 pm

CarolusXCI wrote:Maumau, after 42 4E 44 4C (that BNDL part), which bytes can be changed without crashing the game?



even some bytes before the "01" and the game will work....while If i change "01" to "02" it CTD...so I guess CRC starts here....

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Fri Dec 02, 2016 6:40 am

CarolusXCI wrote:Maumau, after 42 4E 44 4C (that BNDL part), which bytes can be changed without crashing the game?


Image

I've edited many bytes in the blue area changing them 00->01 no CTD at all....while starting from "01" game crash.....

while for end of block:

Image

if I edit last four bytes from 00->01 no CTD.....while changing 98->any value result into CTD

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Fri Dec 02, 2016 6:53 am

Image

the one in red are all offsets in the block....dunno what they point to...

Re: [Maumau78's & CarolusXCI] Roster Editing 29.11 Huge Find...

Fri Dec 02, 2016 2:46 pm

Image

The first four bytes seem to be the length of the section selected here, which ends at the last non-zero byte before the next BNDL. After the last non-zero byte at the end, there are four 00 bytes, so if you count that, you shift the beginning of that selected block four bytes to the right.
Last edited by CarolusXCI on Fri Dec 02, 2016 3:03 pm, edited 1 time in total.
Post a reply