• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

Reversing a "peer to peer" game

Initiate Mage
Joined
Jan 9, 2020
Messages
1
Reaction score
0
Hello,

currently I am reversing a "peer to peer" game (gonna say more down why "), which is old and the servers shut down ages ago.

Why I say "peer to peer". Well the game is server-client build, via tcp connections, shop, inventory, character progression and so on are managed by the server.
But in the matchplay the hoster is kinda the "simulator" and the clients should be connected peer-to-peer wise.

My question here is, how I would go about reversing it properly. I know which multiplayer networking library the game uses, but it's tweaked a lot.
I can start a match via TCP but not via UDP (when trying to feed the client with Packets that should establish an UDP connection). What are the remarks/key points, and where should I look at, when reversing it, such kind of games?

As of TCP: You find traces of TCP Relay Servers of being in use.
As of UDP: There are three different traces. 2 of them take a host, port and one more other char type. The third one takes up to 4 IP addresses (4 because in a match there can be max 4 players) connecting to a hardcoded port.
But I don't find something, that would do an UPNP or NatPunchthrough or where ports should be opened for the hoster for the peer-to-peer story :/

Can there be a mix of it maybe? Any help, clue and so on, on how I can approach this would help.

If you have any questions, please ask, I will try to answer them the best, so you can help me out aswell.
The game I am talking about is Fantasy Tennis.

Thanks in forward!:D:

Edit: I am seeing that I might posted it in the wrong forum, so sorry if thats the case :blush:
 
Last edited:
Joined
Sep 27, 2006
Messages
557
Reaction score
88
Some tcp packet should have a host or client flag

host = 1
client = 2

from there your using recvfrom() .. read() .. sendto()

client 1 sends to client 2 ... server verifies that its possible for each client to do.

server assigns the host.. sends packet to create room.. other players joining (all server side)

host sets up match when peer to peer each client will connect to another Port which would accept 4 clients connecting to it.

Then its client1 to client 2.. 3.. 4.. back and forth.. host accepts them relays them to the server for validation.
 
Upvote 0
Back
Top