I'm trying to make a tool which includes packet decryptation, however I'm stuck on decrypt results. My application gets KeyPacket and find the BF Key, then I use it with this formula:
public byte[] decryptRecv(byte[] raw, final int size)
{
if (!_isEnabled)
return null;
int temp = 0;
for (int i = 0; i < size; i++)
{
int temp2 = raw[i] & 0xFF;
raw[i] = (byte) (temp2 ^ _inKey[i&15] ^ temp);
temp = temp2;
}
int old = _inKey[8] &0xff;
old |= _inKey[9] << 8 &0xff00;
old |= _inKey[10] << 0x10 &0xff0000;
old |= _inKey[11] << 0x18 &0xff000000;
old += size;
_inKey[8] = (byte)(old &0xff);
_inKey[9] = (byte)(old >> 0x08 &0xff);
_inKey[10] = (byte)(old >> 0x10 &0xff);
_inKey[11] = (byte)(old >> 0x18 &0xff);
return raw;
}
This is the formula used by the emulators (gameserver part) but with the return of modified raw instead of void.
I checked if the hex key is fine, and it is.
Dunno if the conversion to byte is wrong, I'm using this:
public byte[] hexToBytes(String hex)
{
hex = hex.replaceAll(" ", "");
byte[] b = new BigInteger(hex, 16).toByteArray();
return b;
}
I'm comparing the decryptation results with PHX results. Once every 15 checks, it goes ok, but the others, some bytes are different from PHX.
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
to see how stupid you are, my friend, that you have nothing to do and you just want to speak your mind for some reason that I don't even care about you, you only care about the price, so you said it now, why are you talking, but fuck you, because you made us dizzy
I've reverse engineered the shit out of how L2 loads files in the past. It doesn't really matter if the files are located in System/Systextures/Textures whatever, based on my observations folders on L2 client exist only for hierarchy reasons ...
Now I am not sure if the client loads everything it finds even if its not used
Instead of making 10 crappy adverts, you could have done one good with full description and 350 for 0 java changes, no source, 20 euro or if server is realy nice i can pay 50 euro, no chance people will download system with no description(not talking about enchant rate and quest reward rate :D)
Question
KaL
I'm trying to make a tool which includes packet decryptation, however I'm stuck on decrypt results. My application gets KeyPacket and find the BF Key, then I use it with this formula:
This is the formula used by the emulators (gameserver part) but with the return of modified raw instead of void.
I checked if the hex key is fine, and it is.
Dunno if the conversion to byte is wrong, I'm using this:
I'm comparing the decryptation results with PHX results. Once every 15 checks, it goes ok, but the others, some bytes are different from PHX.
For example:
RequestAuthLogin of PHX
Now, the same packet on my application:
Bold hex are different of PHX. Also, the differences are always at these bytes.
What am I doing wrong?
Thanks
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.