[WIP] node-sr-proxy (NodeJS silkroad proxy)

07/30/2020 21:46 Otakanikaru#1
NodeJS based packet interceptor & middle-ware layer for MMORPG Silkroad Online Game Client <---> Server.

Public version repo: [Only registered and activated users can see links. Click Here To Register...]

Features
- Packet whitelisting
- Packet intercepting & manipulation
- Multi module
- Fully ECMAScript 9
- Basic middlewares:
  • Auto-Captcha (see config/Gateway.js)
  • AgentServer redirection
  • Client handshake blocker

Prerequesities
- NodeJS LTS: [Only registered and activated users can see links. Click Here To Register...]
- Silkroad Online game client & server (theoretically any version).
- Yarn package manager:
Code:
npm i -g yarn
- PM2
Code:
yarn add -g pm2
Setup
Install dependencies
Code:
yarn
- Configure module files accordingly at
Code:
src/config/
- Write middlewares by example from
Code:
src/controllers/.
Launch development mode
GatewayServer
Code:
yarn dev:GatewayServer
AgentServer
Code:
yarn dev:AgentServer
DownloadServer
Code:
yarn dev:DownloadServer
Launch production mode
GatewayServer
Code:
yarn GatewayServer
AgentServer
Code:
yarn AgentServer
DownloadServer
Code:
yarn DownloadServer
All at once
Code:
pm2 start
&&
Code:
pm2 dashboard
Production Build
Code:
yarn build
What else?
- packet docs [Only registered and activated users can see links. Click Here To Register...]
- silkroad-security [Only registered and activated users can see links. Click Here To Register...]

Wish to contribute?
- For bug reporting use issues.
- For code contributions do a pull request.

Built with ♡ by Artuuro @ [Only registered and activated users can see links. Click Here To Register...]
08/19/2020 17:34 Otakanikaru#2
[Only registered and activated users can see links. Click Here To Register...]

This is the private version running in production.
08/31/2020 20:10 lolixxx#3
Found one thingy, bug or not, which is, all users are being redirected to agent with proxy-server ip, which means you have to add proxy-server ip in privileged ip table in order to log in as admin, which means, anyone who knows admin login/password can log in game with it.
01/28/2021 20:15 kotsh23#4
Error: ENOENT: no such file or directory, open 'C:\Users\Administrator\Desktop\node-sro-proxy-master\data\IP_LOCATION.bin


any idea please ?
01/30/2021 16:59 Otakanikaru#5
Quote:
Originally Posted by kotsh23 View Post
Error: ENOENT: no such file or directory, open 'C:\Users\Administrator\Desktop\node-sro-proxy-master\data\IP_LOCATION.bin


any idea please ?
You need to download these files and extract in the data folder.
Read the gitlab README.md file, everything's explained.
01/30/2021 18:51 kotsh23#6
Quote:
Originally Posted by Artuuro_lv View Post
You need to download these files and extract in the data folder.
Read the gitlab README.md file, everything's explained.
yea i did thats but this file not found please check it
03/10/2021 19:16 kanka5252#7
how i cant compile it ? i downloaded jdk jse vs vs. but i cant make
05/13/2021 17:04 kotsh23#8
Hello bro :D
first i want to thank you for your hard work

i just learned somethings in Node js and i loved it

and when i saw your filter its impressive

i tried to make it work but i got error
Quote:
PS C:\Users\Administrator\Desktop\Node Filter\node-sro-proxy> yarn install:db
yarn run v1.22.10
$ cross-env MODULE=CreateDB npm-run-all dev
$ nodemon
[nodemon] 1.19.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): src\**\*
[nodemon] watching extensions: js
[nodemon] starting `yarn server:dev`
$ cross-env NODE_ENV=development npm-run-all server
$ babel-node ./src/index
[CreateDB]->(UnhandledRejection)->[object Promise]
[CreateDB]->(PromiseError)->Error: Error: Failed to retrieve SQL adapter instance!
[nodemon] clean exit - waiting for changes before restart

FIX : Create DB manual , SRO_PROXY_TEST
if you using special port for database connection , you have to edit constructor of , lib/SqlAdapter.js
we just add port var

Quote:
constructor({ host, database, username, password, port, dialect = 'mssql', pool }, models) {
this.models = models;
this.database = new Sequelize(
database,
username,
password,
{
host,
port,
dialect,
logging: false
},


);
}

and dont forget to add port value in Database.js object
Quote:
export default {
host: '127.0.0.1', // Remote or local hostname
username: 'DBUSER', // DB Username
password: 'DBPW' , // DB Password
port: '1234'
};
12/29/2021 11:41 asda2story2#9
any news ?
08/05/2022 05:49 Hoangnguyen1008#10
[Only registered and activated users can see links. Click Here To Register...] is dead.
Where can I download that data ?
08/08/2022 21:05 kotsh23#11
HELP PLEASE WE NEED DATA.RAR