Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Silkroad Online > SRO Coding Corner
You last visited: Today at 04:32

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

Advertisement



[Development] ModuleFilter

Discussion on [Development] ModuleFilter within the SRO Coding Corner forum part of the Silkroad Online category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jan 2009
Posts: 314
Received Thanks: 686
[Development] ModuleFilter

Hello, I've been working with @DevTekVE; and we've completely rewritten his to make it less goofy.


The new plugin system allows us to write code specific to their modules and packets accuring between them. We still have a lot of work to do, like UI to distinguish between modules and their packets but the current state already allows us to redirect and therefor analyze or filter every connections between any module in one application.

We're aiming to replace the original GatewayServer and AgentServer with custom ones (replaces filter) and the analysis of this data will let us accomplish that in near time. We still don't know the FULL capabilities of the modular injection, but so far we can say that will allow us to modify more of the server behavior without the need of ASM.



We are hoping you contribute to the project as this is a way to start developing a much bigger and stable framework that all of us can us for our servers, for researches and developments. Let's try to give to the Silkroad development community a new focus, and a new purpose.

Here is an example of how the architecture looks like:


Please use this thread for questions & discussion regarding development.
DaxterSoul is offline  
Thanks
21 Users
Old 06/25/2016, 20:48   #2
 
elite*gold: 0
Join Date: Oct 2014
Posts: 19
Received Thanks: 74
#Reserved
devtekve is offline  
Thanks
1 User
Old 08/10/2016, 16:56   #3
 
asdqaz's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 377
Received Thanks: 118
nice release 2 notes tho, in PluginBase.cs
Code:
//SPOOF
parentNode.NodeType = redirect.MachineID; // <-- remove the comment from this line
was useful to me to be able to spoof the NodeType too
and as i've noticed, for csro-r files at least the AgentServer does not certify against the GameServer, it's the other way around any ideas ? did ya try using a multi-agent and multi-game setup ?
asdqaz is offline  
Old 08/10/2016, 18:47   #4
 
elite*gold: 0
Join Date: Jan 2009
Posts: 314
Received Thanks: 686
Quote:
Originally Posted by asdqaz View Post
nice release 2 notes tho, in PluginBase.cs
Code:
//SPOOF
parentNode.NodeType = redirect.MachineID; // <-- remove the comment from this line
was useful to me to be able to spoof the NodeType too
Spoofing NodeType was just debug code. I had problems certifying when hosting the ModuleFilter on a dev machine.

Quote:
Originally Posted by asdqaz View Post
and as i've noticed, for csro-r files at least the AgentServer does not certify against the GameServer, it's the other way around any ideas ?
Not familiar with CSRO-R but the architecture should be similar if not the same. A mistake your certification would be my first guess.

Quote:
Originally Posted by asdqaz View Post
did ya try using a multi-agent and multi-game setup ?
No, but it should work by adding related services. That's how the structure was planned.

Yet, this application is not usable outside of development scope as dispatched encrypted packets (for example 0x704C - ITEM_USE_REQ) are incorrectly handled by current implementation. Iwa's bypasses this problem being a hook instead of a proxy.
DaxterSoul is offline  
Old 08/12/2016, 03:12   #5
 
asdqaz's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 377
Received Thanks: 118
sry for the late reply
Quote:
Originally Posted by DaxterSoul View Post
Spoofing NodeType was just debug code. I had problems certifying when hosting the ModuleFilter on a dev machine.
works perfectly fine, i've just tested it tho i have it configured on the same machine ... for ex i have my gameserver on machineid 2 and the shard on machineid 1, the filter will be on machineid 2 so it's spoofin the 1 into 2

Quote:
Originally Posted by DaxterSoul View Post
Not familiar with CSRO-R but the architecture should be similar if not the same. A mistake your certification would be my first guess.
No, but it should work by adding related services. That's how the structure was planned.
i've kinda miss-worded the problem, i didn't mean anything about the actual certification i was referring to the server cords more specifically the parent - child relation and well i've just tested it running 2 agentservers and 3 gameservers the only configuration that works is having each of the gameservers be child to farm, shard and the 2 agentservers and the agentservers be child to farm, shard and the other agentserver note it won't work if it's as u have it now (agentserver being child to gameserver not the other way around) if there are more than 1 gameservers or agenservers

Quote:
Originally Posted by DaxterSoul View Post
Yet, this application is not usable outside of development scope as dispatched encrypted packets (for example 0x704C - ITEM_USE_REQ) are incorrectly handled by current implementation.
sadly didn't know that and seems u guys have given up on it will give it a few more tries myself tho

le: got it workin most likely ur packet didn't get accepted and u got dc due to not padding it
asdqaz is offline  
Old 03/24/2020, 13:54   #6
 
gigola123's Avatar
 
elite*gold: 0
Join Date: Jun 2007
Posts: 722
Received Thanks: 390
Hi, sorry for bumping this thread, but I get interessted by filter packet between module, I got the idea by reading your post. My main purpose was to spawn monster without any char logged in. We know that the /spawnmonster_all command is run by the Shard which send the information to the GameServer so I decided to sniff packet between them,

Like @ said, it's really fun to handle 0xA003 packet then spoof any port

The main problem using this method is:
- All monster spawn with Unique Status
- All monster spawn with the message "[Monster] has appared.."

And you can spawn NPC also, so for making event is pretty nice system without using any bot for TP then spawn ect..

Here: as you can all unique in radar + Npc spawn from the function



Here the packet structure which I sniffed:

SR_GameServer -> SR_ShardManager Service
PING_PACKET
0x7CDC
1 byte uk

SR_ShardManager Service -> SR_GameServer
PONG_PACKET
0xBCDC
empty



+ Bonus spawning 400 NPC

gigola123 is offline  
Thanks
6 Users
Old 03/26/2020, 00:40   #7
 
elite*gold: 0
Join Date: Jan 2009
Posts: 314
Received Thanks: 686
Unintentionally leaking an exploit

While this tool helps to sniff packets I'd advice against using it for a real server. Insert a new custom module into the server certification architecture and just send your packets to which ever module you want.
DaxterSoul is offline  
Thanks
2 Users
Old 08/04/2020, 09:35   #8
 
elite*gold: 0
Join Date: Jul 2011
Posts: 69
Received Thanks: 38
I would like to know what are those packets mean if you have a documentation or smth, as i get this randomally which causes shardmanager to crash

Code:
[SR_ShardManager] 	MsgID : 0x0 	 21

[SR_ShardManager] 	MsgID : 0x1 	 1

[SR_ShardManager] 	MsgID : 0xE 	 1

[SR_ShardManager] 	MsgID : 0x385F 	 19

[SR_ShardManager] 	MsgID : 0x3864 	 14

[SR_ShardManager] 	MsgID : 0x7005 	 9

[SR_ShardManager] 	MsgID : 0x78F7 	 5

[SR_ShardManager] 	MsgID : 0x7C80 	 14

[SR_ShardManager] 	MsgID : 0xBC80 	 1

[SR_ShardManager] 	MsgID : 0xBCDC 	 317915
Kai· is offline  
Old 08/04/2020, 10:22   #9
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 16,841
Received Thanks: 4,675
Code:
SERVER_FORTRESS_NOTIFY = 0x385F
SERVER_PARTY_DATA = 0x3864
CLIENT_LEAVE_REQUEST = 0x7005
The others should be some ShardManager > GameServer packets, which are not public
Devsome is offline  
Thanks
1 User
Old 05/19/2022, 14:19   #10
 
elite*gold: 0
Join Date: May 2009
Posts: 27
Received Thanks: 1
great project
asuradoll is offline  
Reply




All times are GMT +1. The time now is 04:32.


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.