# Prep: Build a Proxy in Python

## Motivation

In general an online game has two types of exploits:

* <mark style="color:red;">**"Client-side" exploit**</mark>: we reverse the game client and tamper computer memory, such as DLL injection and aimbot.
* <mark style="color:red;">**"Server-side" exploit**</mark>: we build a proxy, host it on a proxy server (I use Ubuntu VM) and tamper the network packets between game client and game server.

In this section we are going build a proxy in Python and set it up on the Ubuntu VM. For now this proxy only captures and forwards packets, but in the future we will tamper with the packets.

The prototype of this proxy is made by LiveOverflow:

{% embed url="https://github.com/LiveOverflow/PwnAdventure3/tree/master/tools/proxy" %}

Of course we can't just copy and paste it, we won't learn anything from doing that. Instead, we will be analyzing it in detail and make improvements if needed. In this section we are going to analyze `proxy_part9.py` and `parser_part9.py`.

## Step 1: Software design











## Step 2: class Proxy2Server















## Step 3: class Game2Proxy











## Step 4: class Proxy













## Step 5: Complete the script









## Step 6: Set up the proxy in Ubuntu VM





