Overview
Created proof-of-concept application that listens on a single TCP port and supports multiple TCP services simultaneously.
Link to application: https://projects.jason-rush.com/tools/protorouter/
Context
One day the thought crossed my mind that the client “speaks” first in many TCP-based service sessions. If the client “speaks” first, and has a standard string that communications always start with, I should be able to fingerprint what client is trying to talk to me. Extrapolating, if I can fingerprint what type of client is trying to talk to me in their first packet, and I have a list of known fingerprints, I can act as a proxy and forward those connections to the relevant services.
Project Overview
The goal of this project was to create a proof-of-concept application that would act as a router or multiplexer for incoming TCP-based applications. The application should run on a single port, and be able to serve many TCP-based services to multiple clients, simultaneously.
Impact
While this was a fun personal project, there was ultimately very little real-world impact. There is very little real-world application for this proof-of-concept, a version written in a compiled language (such as C) would greatly increase efficiency, and about six months after completion I located another project written in C that was more mature.

