Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Reverse Engineering Android Servers

crh

Initiate Mage
Joined
Sep 12, 2019
Messages
1
Reaction score
0
While it is self evidently an extremely complex procedure to sniff packets and write a server for Massive 3d MMO's, with TCP/UDP protocols, simple question:

How complex is it, in comparison, to do that with simple Android games, which use HTTP (restful) or web-sockets? Games like Portal Quest, Idle Heroes (which has a huge private server) or even the Adventure Communist/Capitalist games- these don't have any real-time elements to them.

I know decent Java, a friend has worked on projects building the backend of not so simple apps. We are willing to learn the things required to build the servers. Or, at least have the full ability to build the servers.

Thanks!
 
Joined
Jun 10, 2009
Messages
658
Reaction score
140
As no one has replied to this thread yet let me try to explain it to you.

In my opinion sniffing packets is the easy part. It can be done in either of these 2 ways
  • Capturing packets from network node using Wireshark
  • Adding a proxy like ProxyCap between the client and server to capture packet before being sent

As you specifically asked for HTTP traffic you can also like Fiddler as HTTP proxy too. Android game reversing would require you to proxify your Bluestack (search guides for the same it is easy to find).

Let us come to the hard part now. Hard part would be understanding communication protocol between the server and client. Packets might be encoded/encrypted using standard/non-standard algorithms to make it hard for normal users to manipulate it. Hence figuring that out to decode/decrypt would be required.

Once communication protocol has been figured out, you can start emulating the server. Java has lot of libraries and resources to build any kind of server you want to build and hence it should not be that difficult to code.

All the best :thumbup:
 
ThuGie.NL - Webmaster
Joined
Apr 16, 2006
Messages
607
Reaction score
55
Actually for quite some games, you can just decompile the client.
Some use some libs though like some games i messed around a bit with,

Did that but used encrypted lua files, but if you try enough and disassemble the libs a bit you can get the key,
Decrypt them and just find all packets you might need also to look for what packet encryption it uses if it has it, and what the keys are.
 
Joined
Feb 22, 2012
Messages
2,100
Reaction score
1,271
For Android devices it should be pretty easy compared to iOS devices. In my opinion, you can do almost the same as you would in a computer environment.

You can use remote debuggers just as you can on the computer, decompile/deobfuscate (e.g. Habbo uses Flash on the mobile - http://forum.ragezone.com/f353/habboair-air63-201708251331-359388093-crack-1147564/ ), recompile.

On iOS it will be harder but you can still use IDA Pro/Frida.re to try and understand the protocol, plus Apple only allows AoT compilation on their devices, so you can't run flash, or other languages such as C# etc (it will compile natively everything to the main binary or maybe a dylib (?)).
 
Back
Top