How to launch the new auth without launcher ?

11/30/2019 09:37 0Lucifer0#1
Hey ;)
you may have noticed gameforge did some modification so we can't launch the launcher anymore with the parameter gf.

things i've noticed
- thin client is launching NostaleLauncher.exe with gf parameter
- the named pipe changed it's now GameforgeClientJSONRPC instead of GameforgeClientJSONRPCMS2

PS: don't put a link to the old thread about new auth because it doesn't work anymore. I'm here to figure out how to make it works again. Launchers that use to work a month ago doesn't anymore.
02/08/2020 00:18 Apourtartt#2
Up

What I can add is :
- Starting NostaleLauncher.exe with gf arg will cause a "gf fail init !" issue. So I guess there is another named pipe line ?
- Talking about it, I found one interisting, but can't reproduce it :
Name : GameforgeClientServiceJSONRPC
Packet :
Code:
{"id":9,"jsonrpc":"2.0","method":"ProcessService.startElevatedProcess","params":["C:/Program Files (x86)/Nostale/fr-FR/NostaleLauncher.exe",["gf","",""],"C:/Program Files (x86)/Nostale/fr-FR",{"_TNT_CLIENT_APPLICATION_ID":"...","_TNT_SESSION_ID":"..."}]}
but... Can't find any named pipe in NostaleLauncher.exe, so ?
- NostaleLauncher.exe, when started by ThinClient with "gf" argument + ... ?, will start NostaleClientX.exe with "gf" arg too.

But maybe I just did bad the whole way.
02/08/2020 00:56 WalrossGreat#3
@[Only registered and activated users can see links. Click Here To Register...]
If you just want to log in: [Only registered and activated users can see links. Click Here To Register...]
02/08/2020 01:38 Apourtartt#4
I already implemented it in what I wanted. But next week there will be an update prohibiting "normal" connection. I don't want to use their crap launcher, so I want to make mine. I am just missing the pipe managing.
Btw, here are all the GameforgeClientServiceJSONRPC packet :
- When you start GFLogin.exe :
Code:
{"id":4,"jsonrpc":"2.0","method":"RegistryService.doesRegistryKeyExist","params":["HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"]}

{"id":5,"jsonrpc":"2.0","method":"ProcessService.notifyClientAboutProcessChainTermination"}

{"id":6,"jsonrpc":"2.0","method":"RegistryService.doesRegistryKeyExist","params":["HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"]}

{"id":7,"jsonrpc":"2.0","method":"RegistryService.doesRegistryKeyExist","params":["HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"]}

{"id":8,"jsonrpc":"2.0","method":"RegistryService.doesRegistryKeyExist","params":["HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"]}

{"id":9,"jsonrpc":"2.0","method":"RegistryService.writeRegistryKey","params":["HKEY_CURRENT_USER\\SOFTWARE\\Gameforge4d\\GameforgeClient\\MainApp\\MigrationCompletedOnce",true]}
When you click Play :
Code:
{"id":10,"jsonrpc":"2.0","method":"ProcessService.startElevatedProcess","params":["C:/Program Files (x86)/Nostale/fr-FR/NostaleLauncher.exe",["gf","",""],"C:/Program Files (x86)/Nostale/fr-FR",{"_TNT_CLIENT_APPLICATION_ID":"...","_TNT_SESSION_ID":"..."}]}
I have been able to reget it just by trying again and again on starting GFLogin.exe.

So there is one packet to send to GameforgeClientServerJSONRPC (the one above) and one to GameforgeClientJSONRPC which 0Lucifer0 already coded in his non-working-anymore launcher, aka :
Code:
{"id":4,"jsonrpc":"2.0","method":"ClientLibrary.queryAuthorizationCode","params":{"sessionId":"..."}}
02/08/2020 11:15 Pumba98#5
Quote:
Originally Posted by Apourtartt View Post
Up

What I can add is :
- Starting NostaleLauncher.exe with gf arg will cause a "gf fail init !" issue. So I guess there is another named pipe line ?
- Talking about it, I found one interisting, but can't reproduce it :
Name : GameforgeClientServiceJSONRPC
Packet :
Code:
{"id":9,"jsonrpc":"2.0","method":"ProcessService.startElevatedProcess","params":["C:/Program Files (x86)/Nostale/fr-FR/NostaleLauncher.exe",["gf","",""],"C:/Program Files (x86)/Nostale/fr-FR",{"_TNT_CLIENT_APPLICATION_ID":"...","_TNT_SESSION_ID":"..."}]}
but... Can't find any named pipe in NostaleLauncher.exe, so ?
- NostaleLauncher.exe, when started by ThinClient with "gf" argument + ... ?, will start NostaleClientX.exe with "gf" arg too.

But maybe I just did bad the whole way.
First of all there are two named pipes (their names are in gameforge_client_api.dll):
1) GameforgeClientServiceJSONRPC
- Communication between the gf launcher and gf daemon service
- It tells the daemon to do things like check registry entries or start the game client.
- Important is that you don't forget the environment variables you see there
2) GameforgeClientJSONRPC
- Is just the known communication between daemon and game client
- if you do your own launcher you only need this