Poseidon
(Redirected from poseidonServer)
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.txt
for 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
poseidonServer
andposeidonPort
parameters in thecontrol\config.txt
file match to thequeryserver_ip
andqueryserver_port
values from thecontrol\poseidon.txt
file.
Launching a fake Poseidon server
There are two choices:
- Start
start-poseidon.exe
- This application reads settings from a
control\poseidon.txt
file, then runs thesrc\Poseidon\poseidon.pl
script. No Perl is required to run the script.
- This application reads settings from a
- Start
src/Poseidon/poseidon.pl
with 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.txt
file (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.txt
for 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_port
andserver_type
, no file will be loaded. - If neither
file
nor 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.