[Release] NosTale Vendetta pre/post Packet Cryption

03/09/2019 21:27 BladeTiger12#1
Hello NosTale Community,

some days ago I reversed the new "cryption" of Vendetta.
Actually it is just a simple xor with a table.

How it works:

When Client sends a packet:
- Crypt the packet as always (standard online encryption login & game)
- Xor the encrypted packet

When Client receives a packet:
- Xor the received encrypted packet
- Uncrypt the packet as always (standard online encryption login & game)

They use two different tables for sent and received packets.
In the attachment is the xorTable file. (Every table has a size of 0x10000.)

I wrote two classes for C++ & C#:



Important: You have to create the class two times. The constructor accepts a boolean value. So true/false.

true = Encrypt
false = Decrypt

And you have to call reset when you connect to a new server.

C++ Test if your setup is correct (You should see at the end "Same! Crypt was successful")


That's actually it.
I Hope it's useful for someone.

Average reverse time: 3h. Was a lot of confusing bullshit asm code.

#Edit: Fixed C++ Class. (used "i" instead of "m_nTableIndex")
03/10/2019 00:58 Cryless~#2
Good job Bash. You will surely defeat NosTale hacking section with a Xor table. :rofl:
03/10/2019 02:15 FI0w#3
Quote:
Originally Posted by BladeTiger12 View Post
Hello NosTale Community,

some days ago I reversed the new "cryption" of Vendetta.
Actually it is just a simple xor with a table.

How it works:

When Client sends a packet:
- Crypt the packet as always (standard online encryption login & game)
- Xor the encrypted packet

When Client receives a packet:
- Xor the received encrypted packet
- Uncrypt the packet as always (standard online encryption login & game)

They use two different tables for sent and received packets.
In the attachment is the xorTable file. (Every table has a size of 0x10000.)

I wrote two classes for C++ & C#:



Important: You have to create the class two times. The constructor accepts a boolean value. So true/false.

true = Encrypt
false = Decrypt

And you have to call reset when you connect to a new server.

C++ Test if your setup is correct (You should see at the end "Same! Crypt was successful")


That's actually it.
I Hope it's useful for someone.

Average reverse time: 3h. Was a lot of confusing bullshit asm code.

#Edit: Fixed C++ Class. (used "i" instead of "m_nTableIndex")
Nice work <3
I tried it and it works fine.
03/11/2019 08:28 asasyn495#4
Can you create bot for vendetta?
03/11/2019 13:46 BladeTiger12#5
Quote:
Originally Posted by asasyn495 View Post
Can you create bot for vendetta?
Yes I can, for Sure. Which functions do you need?

[Only registered and activated users can see links. Click Here To Register...]
03/11/2019 20:16 asasyn495#6
All you can do :D
03/11/2019 21:06 FI0w#7
Quote:
Originally Posted by asasyn495 View Post
All you can do :D
I think he said it as a Joke...
06/30/2019 13:38 Rajmund1337#8
Good job bro