Re: MU Online C# Emulator
hey dude, first of all what season are u interested in emulating?
if you are interested in latest season or for the last 3-4 for that matter you will have trouble with the encryption methods, although theres some documentation, mostly incomplete, around the development section
you can also contact the guy that started s11 (latest) development here for more info on this matter
now if you want info on communication protocol you can go ahead and browse some of the available source codes, preferably from a decompilation project, to get an idea of how webzen originally deals with those functions
if you're interested in starting a project after you figure those out, you can contact me
i'm not a c# coder, but a coder's a coder right?
cheers mate
Re: MU Online C# Emulator
You can use muemu source, but i dont recommend to make anything in c#
I am working on ASP MVC 4.5 website, before that I was working on a launcher based firewall system, It was totally bad in c#, but than in vb.net its totally working.
If you want to replace the serverside of the mu with c# emulator, ofc you can do it, but it will be unstable, you can belive me, I love new projects, but I spent weeks with c# projects.
Re: MU Online C# Emulator
Quote:
Originally Posted by
RevolGaming
You can use muemu source, but i dont recommend to make anything in c#
Quote:
Originally Posted by
RevolGaming
I am working on ASP MVC 4.5 website, before that I was working on a launcher based firewall system, It was totally bad in c#, but than in vb.net its totally working.
If you want to replace the serverside of the mu with c# emulator, ofc you can do it, but it will be unstable, you can belive me, I love new projects, but I spent weeks with c# projects.
seems like you had a really bad experience with C#, but I must totally disagree, C# can be as performant as C++ and it's not the language that makes something unstable, it's how you actually write the code.
@OP:
[C#] /// /// WoLfulus.com /// using System; using System.IO; using System.Linq - Pastebin.com
Also for networking:
https://github.com/Azure/DotNetty
Re: MU Online C# Emulator
Thanks @ wolfulus. That's exactly what I've been looking for. Which version of client/server range does it match ?
Re: MU Online C# Emulator
Quote:
Originally Posted by
Chern0byl
Thanks @ wolfulus. That's exactly what I've been looking for. Which version of client/server range does it match ?
won't work on newer versions since the protocol encryption changed, but I don't know exactly when it changed (which version)
Re: MU Online C# Emulator
Which files do I load keys from ? I know they come from .dat files, but that's all. Any samples for usage of this ?
Re: MU Online C# Emulator
if im not wrong there is already a connect server source on c# and the scfexdb source somewhere in this section so there you have part of the work already donde unless you want to do it from scratch
Re: MU Online C# Emulator
You need one instance for encoding and one instance for decoding.
And I've added embedded keys on the static variables (I didn't want to load .dat files)
Code:
var encoder = new Modulus();
var decoder = new Modulus();
// For client
encoder.SetEncryptionKey(Modulus.ClientEncryptionKeys);
decoder.SetDecryptionKey(Modulus.ClientDecryptionKeys);
// For server
encoder.SetEncryptionKey(Modulus.ServerEncryptionKeys);
decoder.SetDecryptionKey(Modulus.ServerDecryptionKeys);
Quote:
Originally Posted by
natzugen
if im not wrong there is already a connect server source on c# and the scfexdb source somewhere in this section so there you have part of the work already donde unless you want to do it from scratch
maybe it's my connect server? if it is, I REALLY don't recommend using it as a reference for anything.
Re: MU Online C# Emulator
Quote:
Originally Posted by
wolfulus
You need one instance for encoding and one instance for decoding.
And I've added embedded keys on the static variables (I didn't want to load .dat files)
Code:
var encoder = new Modulus();
var decoder = new Modulus();
// For client
encoder.SetEncryptionKey(Modulus.ClientEncryptionKeys);
decoder.SetDecryptionKey(Modulus.ClientDecryptionKeys);
// For server
encoder.SetEncryptionKey(Modulus.ServerEncryptionKeys);
decoder.SetDecryptionKey(Modulus.ServerDecryptionKeys);
maybe it's my connect server? if it is, I REALLY don't recommend using it as a reference for anything.
wolfulus, sorry for offtopic, but have you some way to decrypt new 3d bmd models... to old encrypt ?
Re: MU Online C# Emulator
Hey, great idea. All people who tried to write an emulator from scratch probably never finished ;)
I started my project in C# years ago, and believe me, getting the encryption to work is a key thing, but not very difficult.
My emulator (Season 6) is actually pretty far, and very flexible because almost nothing is hard coded but defined by data.
I wanted to put it on github since months, but somehow I didn't find the time to get the data persistence to a state with which I would be satisfied. I didn't want to use a full blown ORM like EF6, and every other ORM (incl. EFCore) I tried failed to meet my expectations.
If you want to know more about my project, search for my other posts ;)
If you're really serious and maybe find other experienced people (in C# and how MU Online works), I can prepare the project to put it on GitHub soon.
Re: MU Online C# Emulator
Quote:
Originally Posted by
nevS
Hey, great idea. All people who tried to write an emulator from scratch probably never finished ;)
I started my project in C# years ago, and believe me, getting the encryption to work is a key thing, but not very difficult.
My emulator (Season 6) is actually pretty far, and very flexible because almost nothing is hard coded but defined by data.
I wanted to put it on github since months, but somehow I didn't find the time to get the data persistence to a state with which I would be satisfied. I didn't want to use a full blown ORM like EF6, and every other ORM (incl. EFCore) I tried failed to meet my expectations.
If you want to know more about my project, search for my other posts ;)
If you're really serious and maybe find other experienced people (in C# and how MU Online works), I can prepare the project to put it on GitHub soon.
I'd love to do some PRs there ;)
Quote:
Originally Posted by
Kiosani
wolfulus, sorry for offtopic, but have you some way to decrypt new 3d bmd models... to old encrypt ?
It's probably not that hard, just need the new version's structures and algorithms... I just have old ones.