Focusing on packet validation right now. I'm going to try and figure out the actual data of packets a bit later.
Okay, I need a little help here. Does anyone (@berkay2578, @
[Only registered and activated users can see links. Click Here To Register...] ???) know for sure what type of encryption the game uses for packets? Is it AES-256 or something else?
I've managed to find all of the different functions for validation (at least I
think I have), some of them are
insane to say the least.
I also got IDA's debugger to work without freezing the game, so I can use breakpoints and stuff.
In case anyone wants to know some of the functions to find in IDA:
sub_767B80 = where it begins
sub_5AAA40 = first new function that's called from sub_767B80,
if a condition is true (won't go into detail)
sub_767960 = I'm not quite sure
sub_7676B0 = Also not sure about this one
sub_5B20E0 = simple helper function, returns the input value plus 12, as a DWORD pointer
sub_59AEB0 = I don't even want to talk about it. It's just insane.
sub_767650 = Seems to return the 2nd parameter? Not sure off the top of my head if it does anything with it
sub_5AC320 = Yet another helper, returns input + 4 as a DWORD pointer
sub_59B120 = Not sure.
sub_59AA30 = References OpenSSL a few times. Not quite sure what it does yet, though
sub_59AB90 = Haven't investigated yet.
If anyone wants to help, look for those functions, and try to figure out what they actually do. There are a lot of them, so be prepared to spend a while on this if you decide to help.
This is progress, though.