简体   繁体   中英

Writing custom third party client emulators

I've been struggling with this question for years now. I've seen programs that emulate servers for example World of Warcraft private servers and client emulators for example botting programs.

Ultimately I want to be able to take a program (that is a client), rewrite it myself in C# and use it for my own needs. For example I started with the IRC protocol: I wrote a simple client that connected to a real IRC server and it worked perfectly standalone. I want to do this with any kind of program, may it be Spotify or a simple game like Terraria.

Since I didn't reverse the protocol of IRC myself I'm not able to take Spotify and write a custom client for it. I guess my next step would be taking Terraria, decompile it and take a behind the scenes look at it's client server protocol in order to create a standalone client that doesn't render a thing but does play the game by sending messages.

So my question is: How do people go ahead and reverse a program so they can do anything they want with it? Why does it take so long and why is it so hard?

If I were able to do this I would be able to make a custom Spotify client that streams music to a live stream and listen to incoming network messages for new songs.

Or a Terraria client for Android or iPhone,... the sky is really the limit when you are able to do this kind of things.

Another issue I have is the fact that I program in C#, there are other languages that are more appropriate for this kind of thing but I'm sure C# can do anything, maybe not as fast or as accurate. So most probably I will have to read blog posts that explain this stuff in C++ and convert it to C#.

Thanks in advance, Diede Apers

I'd start by linking to you to this Wiki Article: http://en.wikipedia.org/wiki/Server_emulator

It does explain that this is most probably against the End User License Agreement for whatever your planning to do it for.

Instead of trying to decompile their software, why not try to interpret the TCP streams used by the application? Your going to want to want something like wireshark or ethercap to capture these packets. They will give you what is being transfered by the software, its destination and the server replies received.

This is likely going to take you a long time - Lol

Good Luck

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM