The SW Proxy: A Hidden Gem

Jarrian McLean
4 min readFeb 12, 2019

--

Proxy

A proxy server is an application/server that serves as a conduit for clients that need resources from another server without directly communicating with the server it needs a response from. There are several different types of proxy servers used for different tasks, just to name a few :

Typical client server relationship

Anonymous Proxy — Is a proxy server that does not make the original IP address of the client making the request available. This gives a veil of anonymity for its user.

Reverse Proxy — Are mostly used to make request on the internet through firewalls created by private networks. They ensure a safe network traffic between the client and backend server that’s trying to be reached.

Distorting Proxy — A proxy used to conceal the clients original IP address protecting the Users information while on the internet. It hides the users IP address by creating a fake one.

Tunneling Proxy — Also known as “Gateway Proxy” store and forward internet services to the client. Passing unmodified request and responses between the server and the client.

Typical relationship between a User, Proxy & a Server

Why do we Proxy

There are several reasons as to why clients would want to use a proxy server.

Users can share internet connection on the same LAN(local access network). Users may also be able to hide their IP address so that they may peruse the web anonymously. This isn’t used to hide what the client wants to view but to protect their information from individuals with unregistered access. To implement bandwidth control, time spent online, and an inter-web filter to restrict or allow access to only particular servers. To coat IP in order to access foreign webpages that would normally be blocked if your IP address is one from out of the country. We can also use proxies to gather files from the server we are trying to access.

SW Exporter

Turn based strategy game developed by COM2US

The SW proxy is a exporter created by Xzandro, it is used to parse data captured from the Summoners War server when a user opens their application. The exporter then makes a copy of certain files on that users game profile such as the monsters and runes that a player owns. In this game monsters are how you fight, and the runes you choose to put on them increase their capabilities. Yes it’s very fun and competitive but the math starts to get intense after a while. Any monster can have at most 6 runes on them at a time. But me being the average player I encountered an issue. How is it possible for me to find the best 6 runes for my monster in a box of 700 runes with different stats. This is where the magic of the SW proxy comes in.

Example of the stat bonuses a monster can have based on runes.
All runes can have up to 5 different sub-stats

Now that we know a little more about the game maybe now we can begin to appreciate the magic that is at work here. So the first step is to download and open the SW exporter @here. The next step is to change the wifi settings on your mobile device to match the IP of the computer your running the proxy on and also changing the port to the same as your computers. Afterwards start the proxy and open your application. While your application is loading your data files, the SW exporter will make a copy of the rune & monster data as a JSON file and save it to your computer. ITS THAT SIMPLE. Outside of the mountain of code written using React, kudos Xzandro!

Our next step is to take a journey over to https://tool.swop.one/. Here is where we can import our JSON file to view our runes and monsters in a more user friendly format.

Format for optimizer showing potential rune combinations and their stats.

This is just one great example of how proxies can be useful to clients requesting any type of response from a server. A challenge to myself is to try and build a proxy that can do something similar with other mobile games especially games where character optimization is a big part of progression. The gaming community plays a big part in whats keeping me interested in writing code, and I’d love to opportunity to give back to the community like Xzandro. Im still not privy to how all the inner-machinations of building a proxy works but thats all part of the fun in building one. One concern I do have regarding proxies is what kind of information can be tunneled out of a server and if the server you're trying to access has enough encryption around your information to keep it safe, I’ll keep doing my research into the world of proxy and share my first proxy on Medium soon!

Ciao!

--

--