[Release] Rappelz Auth Emu v4.0

05/04/2015 23:33 glandu2#1
Contents

Introduction

Here is an Auth Server emu that can fully replace the official one. It support many database (default configuration is for SQL Server), clients/GS since epic 5 (running fine with 5.2 GS (gameserver), 8.1 GS and with current official 9.1 GS) with additionnal support for epic 2 and 4 clients (just for proof of concept as there is no e2/4 GS or let me know where to find and support it :) )

I can compile it for several OS including linux, windows and also on raspberrypi (it's around 100 times slower but still more than adequate for a normal private server (it supports >200 user/sec))

The download archive contains auth.opt configuration file with comments (beginning with #) made to work with a default environment configuration.

If someone wants help to use it, just ask there :)


This server support any database that have an ODBC driver, this include:
For some of them you will need a correct connection string to give parameters to configure the connection. Connection string for almost all known database are available here: [Only registered and activated users can see links. Click Here To Register...] (for example, to get the connection string to a SQLite database, type "sqlite connection string odbc" in google, click on the first link and look for the driver you have in "ODBC drivers").
If you want to use a database but you can't make it works, just ask in this thread.

The list of available ODBC drivers can be retrieved with this tool:
On windows x64: C:\WINDOWS\SysWOW64\odbcad32.exe
On windows x86: C:\WINDOWS\System32\odbcad32.exe


Features

The server has most of the feature of the official auth server with some additional features:
  • Auth server using RSA/AES or DES
  • Auth server using IMBC autologin
  • Auto server reconnect to SQL database on failure
  • Guild icon server with an integrated mini webserver (can serve only JPG images)
  • Traffic dump (not enabled by default)
  • Support epic 5 to 9
  • Support GS reconnection without GS restart (in case of bad network connection between auth and GS or auth restart)
  • Support security password (for bank access, character delete, ...)
  • Optionnaly encrypted database password/connection string (both old DES and 9.1 encryption)
  • Send log to Log Server

New features since version 3.0:
  • Renamed executables to rzauth and rzbenchauth
  • GS auto reconnection tool included in this release (suggested by c1ph3r)
  • Security password support (suggested by pprfds)
  • IMBC autologin (used to make sframe auto login to auth without asking account infos) (suggested by ismokedrow)
  • Database password & connection string encryption (suggested by Aurorauser)
  • Database password hidden from logs
  • Send logs to Log Server (suggested by Gangor)
  • Changed login failure message in sframe to match official auth behavior
  • Fixed issue with rejected JPEG file for guild icon (reported by Anothers)
  • Many bug fixes
  • Some configuration variable are now hidden in config dump

Important note:
By default, authentication with accounts with other characters than letters or digits are refused.
Be sure that your sign up page does not allow other characters than these for the account name.
You can disable this restriction using auth.clients.restrictchars (see also in the auth emu usage guide).

Auth Server Emu Usage guide (rzauth)


Auth Server Benchmarking tool Usage guide (rzbenchauth)

rzbenchauth.exe is a tool to benchmark an auth server. The configuration system is the same as the Auth Emu.



Game Server auto reconnect tool Usage guide (rzgamereconnect)

rzgamereconnect.exe is a tool to handle network disconnections between the Auth emu and the Game server. The Auth emu in this thread must be used to use this tool (previous versions or official servers don't support it).

It acts as a gateway between the Auth emu and the Game server, so the Game server needs to connect to this tool and this tool need to connect to the Auth emu. It can also handle several Game servers.

The configuration system is the same as the Auth Emu. It use by default the following configuration file: rzgamereconnect.opt



Client IMBC autologin
IMBC autologin allow to start SFrame.exe with an account and password set in the command line. So the client does not ask for account & password when started, but directly authenticate the provided account in the command line.

The SFrame command line to use to enable this feature is this one:
Code:
/imbclogin /account:<account_name> /password:<password>
/!\ The password is in plain text. Be aware that the command line used to run an application is visible to any other program running on your computer.
This feature should be used along with a Launcher that does the player authentication and generate One Time passwords.

The idea is to make the password passed to SFrame.exe usable only once. To do that, you probably need to change the auth emu query to use another SQL table:
Code:
sql.db_account.query:SELECT * FROM one_time_passwords WHERE account = ? AND password = ?;
And all rows in the one_time_passwords table would be temporary. The one time passwords need to be hashed like a normal password, that is using MD5 and a salt like "2011".

Download

If Windows complains about missing msvcr100.dll or msvcp100.dll, install the [Only registered and activated users can see links. Click Here To Register...].
Ask if someone needs a Linux version (either here or via PM).

[EDIT] v4.1 fix the upload server for guild icons and now works
05/04/2015 23:36 tokesbowls#2
Thank you, Keep up the wonderful work
05/05/2015 19:47 nimoht#3
Thank you , great work !
05/07/2015 23:07 Questiontest#4
Thank you so much.

I am so sad that nflavor devs lost their way after 5 epic and I really wait the day that you can find a gs for epic 2, 3 ,4 they were interesting epics more than new epics.
05/08/2015 17:16 klosed#5
Hello, this is an amazing job, just today i was talking with a friend of mine, and we was going to buy a server, but we're not so good at this, so we were looking for something like that, if you want can you reply this 2 questions?
1: which server i have to buy^? Linux or Windows? and how much spaces of archiviement i need?
2: can i full costumize this server?
thankyou in advance for your reply :D
and sorry for my english
05/09/2015 09:09 mohamad512#6
great work man ^^
05/10/2015 01:43 glandu2#7
Quote:
Originally Posted by klosed View Post
Hello, this is an amazing job, just today i was talking with a friend of mine, and we was going to buy a server, but we're not so good at this, so we were looking for something like that, if you want can you reply this 2 questions?
1: which server i have to buy^? Linux or Windows? and how much spaces of archiviement i need?
2: can i full costumize this server?
thankyou in advance for your reply :D
and sorry for my english
The emu use around 4 MB itself (rzauth + rzgamereconnect + ssl DLLs)
If you have traffic logs enabled, it use around 8kB/account authentication

I can provide a Linux version but you need a Windows anyway to run the game server.

What you mean by "customize" ? What do you want to do ? ("customize" is too vague)
05/30/2015 17:15 glandu2#8
I decided to release the source code of this emu, so I added the source code for all projects around the auth emu (auth emu, chat gateway, auth benchmark tool, GS autoreconnect) here:
[Only registered and activated users can see links. Click Here To Register...]

The root project is [Only registered and activated users can see links. Click Here To Register...] and subprojects are these ones:
06/02/2015 10:07 Sherock#9
is it support 9.1 and 8.1 and 7.3 ?
is there any video to setup this ?
06/02/2015 12:50 eziorav#10
Quote:
Originally Posted by Sherock View Post
is it support 9.1 and 8.1 and 7.3 ?
is there any video to setup this ?
This is just a Auth emulator, it supports any version, also there is a step by step tuto in the original thread. Go look for it, its easy to find
09/10/2015 17:35 TheOnlyOneRaskim#11
Hi there,

i got a Problem with your Auth Emu. Im not sure if the Failure is on my side or if there's a Bug with that Emu.

I made proper Setting's for the Emu, started it and logged into the Game.

It let me log in into the Account, i can select my Character, but after That it stays like it is.

The Gameserver tells me that it recieved a Message from an "unlogined connection"

[Only registered and activated users can see links. Click Here To Register...]

Any tipps on how to solve that? :D


EDIT: In progress of debugging i noticed that i used the 9.2 SFrame.... xD
09/11/2015 05:09 Ghost Informatics#12
Quote:
Originally Posted by TheOnlyOneRaskim View Post
Hi there,

i got a Problem with your Auth Emu. Im not sure if the Failure is on my side or if there's a Bug with that Emu.

I made proper Setting's for the Emu, started it and logged into the Game.

It let me log in into the Account, i can select my Character, but after That it stays like it is.

The Gameserver tells me that it recieved a Message from an "unlogined connection"

[Only registered and activated users can see links. Click Here To Register...]

Any tipps on how to solve that? :D


EDIT: In progress of debugging i noticed that i used the 9.2 SFrame.... xD
You use SFrame 9.2 so you need 9.2 smp for telecaster to fix this problem i think.
04/24/2016 00:36 elbatouri#13
×_× i cant understand how the guild icon work whit you emu @@
04/24/2016 18:30 shroomtec#14
Your auth.opt should have something like this:
Code:
#Upload configuration, use "upload" folder for guild icons
upload.dir=X:\htdocs\rappelz\gicons
upload.clients.ip=127.0.0.1
upload.clients.port=4617
upload.iconserver.ip=127.0.0.1
upload.iconserver.port:5000

#Where the gameserver will connect (this is default values)
upload.gameserver.ip:127.0.0.1
upload.gameserver.port:4616
Then your gameserver.opt should match the above settings, like this:
Code:
S:io.upload.ip:127.0.0.1
S:io.upload.port:4616
S:game.guild_icon_base_url:http://127.0.0.1/rappelz/gicons/
S:game.url_list:guild_icon_upload.ip|127.0.0.1|guild_icon_upload.port|4617|guild_test_download.url|rappelz/gicons/|web_download|127.0.0.1:5000
Now, just change the IP and ports to fit your needs :)
04/25/2016 01:26 elbatouri#15
Quote:
Originally Posted by shroomtec View Post
Your auth.opt should have something like this:
Code:
#Upload configuration, use "upload" folder for guild icons
upload.dir=X:\htdocs\rappelz\gicons
upload.clients.ip=127.0.0.1
upload.clients.port=4617
upload.iconserver.ip=127.0.0.1
upload.iconserver.port:5000

#Where the gameserver will connect (this is default values)
upload.gameserver.ip:127.0.0.1
upload.gameserver.port:4616
Then your gameserver.opt should match the above settings, like this:
Code:
S:io.upload.ip:127.0.0.1
S:io.upload.port:4616
S:game.guild_icon_base_url:http://127.0.0.1/rappelz/gicons/
S:game.url_list:guild_icon_upload.ip|127.0.0.1|guild_icon_upload.port|4617|guild_test_download.url|rappelz/gicons/|web_download|127.0.0.1:5000
Now, just change the IP and ports to fit your needs :)
Thanks for reply dude @@ and this its my setting
i try to make your great emu work and yes he work but the problem was
the guild icon dasent work help please =D
gameserver.opt configuration
the auth.opt configuration

this problem show up in my log
Code:
2016-04-24 23:50:54 Debug UploadServer::ClientSession2: Upload from client 41.143.23.61:50279, client id 447232 with account id 2002 for guild id 1 on server Mystery
2016-04-24 23:50:54 Debug UploadServer::ClientSession2: Invalid client, otp given is 9368515