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.
Telegram Bot TOP Search Promotion | SEO Optimization for Bots |
SMMTG.PRO
We promote Telegram bots to the TOP of search results — by keywords, topics, and countries.
What’s included:
• Promotion to the TOP of Telegram search
• Bot optimization for Telegram algorithms
• Competitor analysis and keyword selection
• Testing and securing stable ranking
Delivery time:
2–3 days per bot
Pricing:
Starts from $40 per bot
(final cost depends on competition level and target country)
We work with 50+ countries:
Russia • Ukraine • USA • Israel • Uzbekistan • Turkey • China • Thailand • Europe • India
Training is also available:
Telegram bot SEO optimization
Techniques & insights for reaching TOP search positions
Real-world cases and recommendations
Contact:
Telegram — t.me/smmtg_link
Our SMM panel: SMMTG.PRO
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:
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.
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
0 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now