An single python server emulator of MMORPG game WindSlayer also known as WS1.

Overview

PySlayer

An single python server emulator of MMORPG game WindSlayer also known as WS1.

Requirements

  • Python >= 3.7
  • Old windslayer client (Korea Yahoo! ver.)

Installation

  1. 윈드슬레이어 야후 버전(MD5:209dfadadbd83badaab2f85d075accae)을 구해서 /patch/WS1Yahoo.xdelta 패치를 적용합니다. 서버를 로컬호스트로 돌리고, 야후로 리다이렉션 되는것을 막아줍니다.

  2. 윈드슬레이어 야후 버전의 Fireway.dll파일을 드래그해 /utils/get_xorkey.py 파일 위에 드래그 합니다. 자동으로 _key.py 파일이 생성되면 이를 server.py가 있는 폴더와 동일한 경로에 놔둡니다.

  3. run.cmd 파일을 실행하면 자동으로 서버가 실행됩니다. 이후 패치된 야후 윈드슬레이어 클라이언트를 실행하면 됩니다.

What can we do for now?

지금 현재는 인게임밖에 안됩니다.

TODO

  • 패킷 분석 및 문서화
  • 로컬 데이터베이스 구축
  • UDP 패킷 통신 분석 및 에뮬레이션
  • 멀티플레이어 활성화

Why we cannot play on multi?

제가 파이썬이란 언어를 선택한 이유는 가장 익숙하기도 하지만 빠르게 오고가는 통신을 쉽게 확인하고 조작하기 쉽게 하기 때문이었습니다. 다만 파이썬은 멀티쓰레드를 구현하기 복잡하고, 현재 CSNsocketSingleton Pattern으로 구현하였기 때문에 여러 사람이 오게 될 경우 백이면 백 DeadLock이 옵니다.

About CSNsoceket

윈드슬레이어는 기본적으로 Fireway.dll 이라는 파일에서 통신을 진행하고, 이때 사용되는 클래스가 CSNsocket이라는 겁니다. 클라이언트 입장에서 패킷을 받을 땐 암호화가 진행되지 않지만, 패킷을 보낼 땐 XOR 암호화가 진행됩니다. 이를 에뮬레이션한건 /lib/csnsocket.py에 있습니다.

About Copyright

제가 작성한 소스코드 중 단 하나라도 윈드슬레이어 클라이언트 혹은 실제 서버 코드를 이용해 작성한 적이 없습니다. XOR키 또한 유저가 클라이언트에서 직접 추출하게 하므로, 저작권엔 아무 문제가 없습니다. 다만 이를 통해 상용 서버를 열고, 변조된 클라이언트를 배포하게 된다면 저작권에 저촉될 가능성이 존재합니다. 이에 대한 불이익 및 처벌에 대하여 저는 아무런 책임을 지지 않습니다.

About License

현재 이 프로젝트는 GPL License를 따르고 있습니다. 제 소스코드를 수정할 경우 이를 공개할 의무가 있습니다. 제 프로젝트에 대한 Contribute는 언제나 환영합니다.

Special Thanks

  • Riuga for help reversing CSNsocket and build some server-side packets.
Owner
mirusu400
2020.09.21~2022.06.20 군대와서 코딩더열심히하는사람
mirusu400
Repository containing documentation about the Minecraft Legacy FUI file structure

Repository containing documentation about the Minecraft Legacy FUI file structure

Miku-666 6 Dec 29, 2022
Code infrastructure and player algorithms for the Codenames board game.

Codenames Code infrastructure and player algorithms for the Codenames board game. This is the active fork of mkali-personal/codenames. Intro This is b

Asaf Kali 1 May 18, 2022
Database of relevant Minecraft OG usernames

Introduction In this repository we want to collect names and words that get the "OG Name" badge on laby.net. We want the community to be able to contr

LabyMod 19 Dec 02, 2022
A fun, casual and strategic game made using Python!

Steve's Pixels A fun, casual and strategic game made using Python! Prerequisites See requirements.txt Demo video demo.mp4 Usage python -m steves_pixel

Jaivardhan Bhola 9 Sep 17, 2022
Wordle-prophecy - The comprehensive list of all Wordle answers, past and future

About This repo contains the comprehensive list of all Wordle answers, past and

Hayden Moritz 2 Dec 15, 2022
To solve games using AI, we will introduce the concept of a game tree followed by minimax algorithm.

To solve games using AI, we will introduce the concept of a game tree followed by minimax algorithm.

Vaibhaw 7 Oct 13, 2022
A python project to help you solve the Wordle game.

A python project to help you solve the Wordle game.

Jia Ping Chu 2 Feb 06, 2022
This is an amazing game make using pygame.

This is an awesome balloon game. It is made in python using Pygame library. It is a project game while learning game development.

Rishikesh Kumar 2 Oct 10, 2021
Este repositorio es creado con el fin de brindar soporte a las personas que están en el proceso de aprendizaje MISIONTIC 2022 en la universidad de Antioquia

Este repositorio es creado con el fin de brindar soporte a las personas que están en el proceso de aprendizaje MISIONTIC 2022 en la universidad de Antioquia. Hecho por los estudiantes para los estudi

Andrés Mauricio Gómez 11 Jun 22, 2022
Aftermath is an anti token grabber written in Python3.

🎈 Aftermath 🎈 Aftermath is an anti token grabber written in Python3. This tool with a GUI setup is checking the Downloads folder to search for token

Billy 39 Dec 16, 2022
A very simple 3D maze game with ray tracing.

PytracingMaze MOST RECENT VERSION: Pytracing Maze.py Also, executable for Windows available on itch.io Simple ray tracing game in Python, based on my

FinFET 15 Dec 20, 2022
Dontdie-minecraft - A python program that causes your computer to bluescreen whenever you die in Minecraft

Don't Die - A Python Program A python program that causes your computer to blues

3 Apr 19, 2022
Chess - A python gui application

Chess Python version 3.10 or greater is required to play. Note This is a gui application, and as such will not run inside WSL.

Jonxslays 1 Dec 16, 2021
a simple keyboard game

Maxwell-Demon-Game Powered by Taichi. a simple keyboard game This is hw2 of Taichi course, as a basic exercise of class. Rigid 2d bodies and resolve c

8 Feb 01, 2022
Replicating Minecraft World Generation in Python

Minecraft World Generation in Python This is an attempt to replicate Minecraft world generation in Python. This is part of an article published on Med

Bilal Himite 159 Dec 19, 2022
Given some input, spit out the possible words for a Wordle puzzle

Wordle Helper, because why not. Given some input, spit out the possible words for a Wordle puzzle First time setup # Download the dictionary to a file

Richard Duarte 1 Jan 25, 2022
A game made similar as space inveders with pygame

space-inveders-pygame a game made similar as space inveders with pygame . . . if you are using it make sure to change audio and imgs file i do no own

Volt_L18 2 Dec 26, 2021
Tekken-python-ml - A project of playing tekken game using python

Tekken Python Description Hi this is new project of playing tekken game using py

Programminghut 13 Dec 30, 2022
EL JUEGO DEL GUSANITO

EL JUEGO DEL GUSANITO El juego consiste en una línea que no para de moverse, el usuario lo controla con las flechas de: → derecha ← izquierda ↑ arriba

Valeria Saidid Miranda Ibarra 0 Dec 19, 2021
Simple program to play Metamon automatically

Getting Started Radio Caca Important disclaimer This software is intended for use by individuals familiar with Python programming language. It uses se

Metamon Island 35 Dec 28, 2022