Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Nostale
You last visited: Today at 12:03

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



NosTale Protocol Question

Discussion on NosTale Protocol Question within the Nostale forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2011
Posts: 10
Received Thanks: 2
NosTale Protocol Question

I'm trying to make a clientless bot but i'm stucked with the game server connection. I've made the login packet (encrypt/decrypt/hash/version) and it works correctly, in fact the server responds with NsTeST packet.

But now? What am I supposed to do? What I understood is that the first parameter of NsTeST is the session number, required to make a login request to the game server by sending it and then send id and pw but I can't understand what's the difference between sessionEncryption and GamePacketEncryption and I dont know which one I have to use.

Can someone explain me how the connection with the game server works step by step and whats the difference between the two encryptions?

Thanks and sorry for bad english.
Nokis97 is offline  
Old 07/12/2017, 19:17   #2
 
elite*gold: 0
Join Date: Apr 2014
Posts: 82
Received Thanks: 4
I haven't tried to do client-side login but maybe inject a packetlogger before logging in and try to login with few different parameters so you can distuingish what is what?
PMasta is offline  
Old 07/12/2017, 19:17   #3
 
Pumba98's Avatar
 
elite*gold: 55
Join Date: Jan 2011
Posts: 1,240
Received Thanks: 1,187
encrypt the sessionNumber with sessionEncryption and ID and PW with GamePacketEncryption...

Edit:
Which Crypto do you use?
Use this
Pumba98 is offline  
Thanks
2 Users
Old 07/12/2017, 19:36   #4
 
elite*gold: 0
Join Date: Apr 2011
Posts: 10
Received Thanks: 2
Quote:
Originally Posted by Pumba98 View Post
encrypt the sessionNumber with sessionEncryption and ID and PW with GamePacketEncryption...

Edit:
Which Crypto do you use?
Use this
Thank you so much for the fast reply!

I've translated that entire crypto to NodeJS because I would like to make an online tool for NosTale.

Another question. I've understood that I have to send 2 packets during the login to the game server: first the session encrypted and then a second packet "ID|PW" encrypted. Am I right?
Nokis97 is offline  
Old 07/12/2017, 20:40   #5
 
DarkyZShadow's Avatar
 
elite*gold: 0
Join Date: Nov 2015
Posts: 211
Received Thanks: 141
Quote:
Originally Posted by Nokis97 View Post
Thank you so much for the fast reply!

I've translated that entire crypto to NodeJS because I would like to make an online tool for NosTale.

Another question. I've understood that I have to send 2 packets during the login to the game server: first the session encrypted and then a second packet "ID|PW" encrypted. Am I right?
No, as I recall, 3 packets are send:
- Session
- Username
- Password

Best regards,
A random developer
DarkyZShadow is offline  
Old 07/12/2017, 22:08   #6
 
WalrossGreat's Avatar
 
elite*gold: 0
Join Date: Mar 2015
Posts: 871
Received Thanks: 1,229
Just open packetlogger and a real game and you will know everything
WalrossGreat is offline  
Old 07/13/2017, 15:18   #7
 
elite*gold: 0
Join Date: Apr 2011
Posts: 10
Received Thanks: 2
I did it, thanks to all

P.S: I have only a bug with the decryption of char "\n" but that's not a big problem


EDIT:
Quote:
Originally Posted by DarkyZShadow View Post
No, as I recall, 3 packets are send:
- Session
- Username
- Password

Best regards,
A random developer
For disclosure purpose that's how the game server auth works:
Only 2 packets are sent

PHP Code:
firstAuthPacket sessionEncrypt(session); //First packet is the session encrypted
sleep(1000); //You have to sleep 1 second
secondAuthPacket encryptGamePacket(user) + "|" encryptGamePacket(pass); // Send the second packet ID|PW 
Nokis97 is offline  
Old 07/13/2017, 16:43   #8
 
DarkyZShadow's Avatar
 
elite*gold: 0
Join Date: Nov 2015
Posts: 211
Received Thanks: 141
Quote:
Originally Posted by Nokis97 View Post
I did it, thanks to all
P.S: I have only a bug with the decryption of char "\n" but that's not a big problem

EDIT:

For disclosure purpose that's how the game server auth works:
Only 2 packets are sent

PHP Code:
firstAuthPacket sessionEncrypt(session); //First packet is the session encrypted
sleep(1000); //You have to sleep 1 second
secondAuthPacket encryptGamePacket(user) + "|" encryptGamePacket(pass); // Send the second packet ID|PW 
My current C++ code (working on the official FR server) :
Code:
packet = Crypto::encryptWorldPacket(to_string(session_id), session_id, true);
::send(this->sock, packet.c_str(), packet.size(), 0);
Sleep(200);
send(user_conf.username, session_id);
send(user_conf.password, session_id);

Edit (Packet logger output) :


Best regards,
A random developer
DarkyZShadow is offline  
Thanks
1 User
Old 07/13/2017, 17:05   #9
 
elite*gold: 0
Join Date: Apr 2011
Posts: 10
Received Thanks: 2
Quote:
Originally Posted by DarkyZShadow View Post
My current C++ code (working on the official FR server) :
Code:
packet = Crypto::encryptWorldPacket(to_string(session_id), session_id, true);
::send(this->sock, packet.c_str(), packet.size(), 0);
Sleep(200);
send(user_conf.username, session_id);
send(user_conf.password, session_id);

Edit (Packet logger output) :


Best regards,
A random developer
I dare say that it works in both ways.
Nokis97 is offline  
Thanks
1 User
Old 11/03/2017, 23:47   #10
 
elite*gold: 0
Join Date: Aug 2013
Posts: 2
Received Thanks: 1
Hi. Is this still working? I can't encrypt this session id, but much more likely that it is my fault.
So i login to this NsTeST server and get first number(for example 26053).
Now I should encrypt session id and send it but which function i should use?
I tried all of them and still can't get similiar result to that packet when i login through game client.
When I look at sent data on wireshark i can see 2 sent packets.
First one is like "9a 99 e4 xx xx xx xx xx" , generally is always similiar and looks like this, just a few changes.
second is my nickname and password, after decryption it looks like this: "1451(some random number, i believe i can just generate it and then increase by one) my_nickname1452 my_password".
But this first packet is the only that I can't decrypt. I believe it's this 26053 number but what kind of encryption i need to use to encrypt it properly? Thanks for help
olekolekolek is offline  
Old 11/04/2017, 00:31   #11
 
Pumba98's Avatar
 
elite*gold: 55
Join Date: Jan 2011
Posts: 1,240
Received Thanks: 1,187
Quote:
Originally Posted by olekolekolek View Post
Hi. Is this still working? I can't encrypt this session id, but much more likely that it is my fault.
So i login to this NsTeST server and get first number(for example 26053).
Now I should encrypt session id and send it but which function i should use?
I tried all of them and still can't get similiar result to that packet when i login through game client.
When I look at sent data on wireshark i can see 2 sent packets.
First one is like "9a 99 e4 xx xx xx xx xx" , generally is always similiar and looks like this, just a few changes.
second is my nickname and password, after decryption it looks like this: "1451(some random number, i believe i can just generate it and then increase by one) my_nickname1452 my_password".
But this first packet is the only that I can't decrypt. I believe it's this 26053 number but what kind of encryption i need to use to encrypt it properly? Thanks for help
just use the encryptGamePacket with is_session_packet = true
Pumba98 is offline  
Old 11/04/2017, 16:03   #12
 
elite*gold: 0
Join Date: Aug 2013
Posts: 2
Received Thanks: 1
Quote:
Originally Posted by Pumba98 View Post
just use the encryptGamePacket with is_session_packet = true
Thanks, i just forgot to add id packet to this packet with session id
olekolekolek is offline  
Thanks
1 User
Old 12/28/2019, 14:47   #13
 
elite*gold: 0
Join Date: Aug 2013
Posts: 18
Received Thanks: 1
Hello, would you mind sharing your NodeJS code? I have a really hard time understanding the package loggers in this forum since they are all written in c++ .
kurverwalter is offline  
Old 12/28/2019, 15:23   #14
 
Roxeez's Avatar
 
elite*gold: 0
Join Date: Jun 2019
Posts: 102
Received Thanks: 228
Quote:
Originally Posted by kurverwalter View Post
Hello, would you mind sharing your NodeJS code? I have a really hard time understanding the package loggers in this forum since they are all written in c++ .
Roxeez is offline  
Reply


Similar Threads Similar Threads
Question about Protocol
09/08/2008 - Lineage 2 - 13 Replies
hi good day i just want to ask, is there a way to get the protocol for l2sea? i mean is there such programs to get the protocol needed for l2walker-gracia?
new protocol version for l2walker offical server
07/13/2006 - Lin2 Exploits, Hacks, Bots, Tools & Macros - 2 Replies
new protocol from today is 665 put this in set.ini: LoginServerIP=L2authd.Lineage2.com LoginServerPort=2106 ProtocolVersion=665 ServerList=Bartz;Sieghardt;Kain;Lionna;Erica;Gust in;Devianne;Hindemith;Teon;



All times are GMT +1. The time now is 12:03.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.