The concept of a "proxy" is simply accepting an incoming connection, making an outgoing connection to the remote host, then simply passing data back and forth.
With Silkroad, and most games, you have to do a little more work because of the packet security implemented.
Here are some links to some of the stuff I've released:

- A primer for understanding what a Silkroad proxy is. You should find pretty much all the theory you need here.

- A really simple C# proxy

- My C# SilkroadSecurity API that includes another more verbose proxy.

- A really old version of my C++ SilkroadSecurity + a really old C++ proxy.
I do have more stuff scattered around other sites, but that should be enough to get you started. There's really no 'secrets" anymore with this stuff. If anything, the game protocol is usually the main obstacle for writing a complete proxy for anything. Games that use custom compression or really advanced non-public encryption can pose a problem too, but everything is figured out for Silkroad.