Poseidon
		
		
		
		Jump to navigation
		Jump to search
		
Poseidon is a counter-measure for nProtect GameGuard (HackShield).
- Original game client (with HackShield) connected to Poseidon server provides data for OpenKore connected to real game server.
- The RO server sends a packet to the client, and the client must response with an appropriate packet.
- Servers like cRO, kRO, jRO, twRO and vRO use GameGuard.
Overview
- Poseidon works like this
- 1. Poseidon sets up a fake RO server (let us call it PoseidonRO).
- 2. RO client connects to PoseidonRO.
- 3. Poseidon sets up another server socket for communication with OpenKore.
- 4. OpenKore connects to real RO server and Poseidon.
- 5. Real RO server sends GameGuard query to OpenKore.
- 6. OpenKore sends GameGuard query to Poseidon.
- 7. Poseidon sends GameGuard query to RO client.
- 8. RO client sends a reply.
- 9. Poseidon sends reply to OpenKore.
- 10. OpenKore sends reply to real RO server.
Fluxogram
Configuration
Poseidon server
The basic settings of the Poseidon server are in the control\poseidon.txt file:
- ragnarokserver_ip=127.0.0.1
- ragnarokserver_port=6900
- Here you'll define the IP Address and the Port where Poseidon will keep waiting for your ragnarok online client to connect.
- queryserver_ip=0.0.0.0
- queryserver_port=24390
- Here you'll define the IP Address and the Port where Poseidon will keep waiting for OpenKore to connect and send the GG/HS queries.
- server_type=Default
- Here you have to specify your current server type in order to the poseidon operate properly! See src\Poseidon\servertypes.txtfor available servertypes.
- debug=0
- Enable debug messages
Ragnarok Client (Ragexe)
Use the clientinfo.xml file to connect the Ragnarok client to the Poseidon server.
- You can use the following commands to start the Ragnarok client with the required parameters
- cRO: Ragexe.exe 1rag1 /account:poseidon.xml
- jRO client: Ragexe.exe 1rag1 -w -u:12345RO -p:be407f3a32e47d2b5cef6acb8f14724146a720cd /account:poseidon.xml
- kRO client: Ragexe.exe 1rag1 -t:DummyToken DummyUser G Ragnarok /account:poseidon.xml
- kRO Zero client: Ragexe.exe 1rag1 -t:DummyToken DummyUser G RagnarokZero /account:poseidon.xml
- twRO: Ragexe.exe 1rag1
- vRO client: Ragexe.exe 1rag1 User=DummyUser Token=DummyToken BToken=DummyBToken /account:poseidon.xml
- See examples for connecting OpenKore
OpenKore
- Make sure your server connection settings have "gameGuard 1" (check tables/servers.txt).
- Make sure that the values of the poseidonServerandposeidonPortparameters in thecontrol\config.txtfile match to thequeryserver_ipandqueryserver_portvalues from thecontrol\poseidon.txtfile.
Launching a fake Poseidon server
There are two choices:
- Start start-poseidon.exe- This application reads settings from a control\poseidon.txtfile, then runs thesrc\Poseidon\poseidon.plscript. No Perl is required to run the script.
 
- This application reads settings from a 
- Start src/Poseidon/poseidon.plwith parameters. You need Perl to run the script, or you can use:start.exe ! src\Poseidon\poseidon.pl- You can use the following arguments:
- --file=<string>
- specify the location of the poseidon.txtfile (default:control\poseidon.txt)
- For example: src\Poseidon\poseidon.pl --file=control\twRO\poseidon.txt
- --ragnarokserver_ip=<address>
- --ragnarokserver_port=<port>
- Starts the Ragnarok Server (where the Ragnarok client will connect) at given address and port
- --queryserver_ip=<address>
- --queryserver_port=<address>
- Starts the Query Server (where openkore client will connect) at given address and port
- --server_type=<string>
- Selects a server type (see src\Poseidon\servertypes.txtfor available servertypes)
- --debug=<boolean>
- Interesting for developers, poseidon will now output some extra info
 
- For example:
- Windows: start start.exe ! src\Poseidon\poseidon.pl --file=control\poseidon_02.txt
- Linux: src\Poseidon\poseidon.pl --server_type=twRO_2021-06-21 --ragnarokserver_ip=192.168.1.5 --ragnarokserver_port=6900
 
- You can use the following arguments:
- Notes
 - You can use any combination of those
- If you provide ragnarokserver_ip,ragnarokserver_port,queryserver_ip,queryserver_portandserver_type, no file will be loaded.
- If neither filenor all the necessary command line arguments are given, poseidon will default to the default behavior of trying to load../../control/poseidon.txt,./control/poseidon.txt, or./poseidon.txt-- in that order.
- Command line arguments have priority over the configuration file. For instance, if you use --ragnarokserver_ip=<address>, the Ragnarok Server will be hosted at that address, not the one in the configuration file.
- This feature is only available after PR #1273 (15 Oct 2017)
 
 
Notes
- If game client protection detects OpenKore binaries, run Poseidon without binaries (install Perl) or on another (maybe virtual or WSL) machine.

