Posts Tagged ‘yEnc Decoder’

Other uses for a yEnc decoder proxy

Wednesday, October 29th, 2008

A properly written yEnc decoder proxy should be a true, unblocking TCP proxy underneath.  What this means is that even if the proxy is waiting for a response from a server, you can continue to send it data.  In addition, if it is waiting for the user to send it data, it will still receive data from the server.

This allows you to use the proxy as a raw TCP proxy to route other TCP traffic.  yProxy can be used as a raw TCP proxy in such a manner simply by disabling the “yEnc Decode” feature, which turns it into a pure TCP proxy.

yProxy as a web proxy

For example, try the following setup in yProxy:

Be sure to set the port numbers also, and click the Start button to start the proxy server.  Then try entering this URL in your browser address bar:

http://localhost

You’ll see Google’s homepage show up.  What you’ve done is load Google’s homepage through the proxy.  Actually, you’ve got a little bit more work to do if you want to keep going through the proxy at this point because anything you click on goes to a google.com address instead of “localhost”, but you’ve gotten the point that yProxy can be a down and dirty proxy for redirecting TCP traffic.

yProxy’s TCP proxy options would be best used for other types of TCP traffic like email or FTP, where the client doesn’t try to make connections to other domains.

yProxy as a remote web proxy and port obfuscator

The above example doesn’t really make much practical sense, but imagine that your school or work attempts to blocks all web traffic by blocking all traffic on outgoing port 80, but they do allow SSH traffic over port 22.  Leave yProxy running at your home with the following configuration:

Disable yProxy’s ”Run Locally Only” option and, as before, click Start to start yProxy.

Then from your school or work computer enter the following URL into your browser’s address bar:

http://10.2.0.96:22

You’ve just loaded Google from your home over port 22.

Note: I cheated in my example.  10.2.0.96 is actually a private IP address.  You’ll need type your public IP address into your web browser.  If you’re behind a NAT router at home, you’ll have to find out what your public IP address is and enable port forwarding or plug your computer into the DMZ port.  To find your public IP address, go to http://ifirefly.com.

yProxy as a remote FTP proxy

What if your friend is running an FTP server, but for security purposes, he only allows you to connect from your home IP address.  You’re going to be on the road though, and you still need to access the FTP server, but you don’t want to bother your friend to change his server’s configuration.

Use the following configuration for yProxy:

Well, FTP uses a second port for data, so you’ll need another instance of yProxy running to actually download anything:

Again, you need to turn off the “Run Locally Only” option for yProxy and press the Start button to start the proxy servers.

Now, you can enter this address into your FTP client or web browser:

ftp://10.2.0.96

Your computer at home is connecting to your friend’s FTP server, and you’re connecting to your computer at home, so as far as your friend’s server is concerned, you’re still at home.

yProxy is more than just a yEnc decoder

There are other legitimate uses for a TCP proxy.  Please let me know what you come up with.

yProxy stands apart from other yEnc decoders.  yProxy is a true TCP proxy underneath.  Have fun.

yEnc Decoder Proxy

Friday, September 5th, 2008

When I invented the yEnc Decoder Proxy in 2002, yEnc was still new and hadn’t yet saturated Usenet.

The binary groups I frequented started getting a fair amount of yEnc posts.  About 10% of the posts were yEnc encoded.  I couldn’t read yEnc encoded attachments with my existing newsreader, so I simply conceded to the fact that I would miss out on the content.  However, as more and more of the valuable content was yEnc encoded, I either had to find a yEnc decoder, or keep missing out on the yEnc content.

My news reader, Forte Agent, did not decode yEnc attachments.  It only handled MIME and UUE.  I downloaded yEnc32.  In order to decode attachments with yEnc32, I had to first export the messages to text files, then processes those text files with yEnc32.  While this wasn’t very difficult to do, it was time consuming.

I am a software developer, and one of my specialties is developing web and network utilities.  As a network developer, I was able to apply the pipelining and streaming paradigm to this problem, yielding a proxy as a solution.

What is a Proxy?

A proxy is a generic term in networking for a utility that sits between a client and a server and acts on behalf of the client.  Generally, a proxy filters and/or caches some type of traffic that flows between the client and server.

The most common type of proxy related to the Internet is a caching web proxy.  A caching web proxy intercepts all web requests and attempts to fulfill the request from its cache.  For example, one person might request a photo from the Internet.  The web proxy retrieves the photo from the Inernet and delivers it to the client.  The second person that requests the photo from the proxy is sent a copy of the photo that had been saved to memory or disk.  This saves Internet bandwidth.

yEnc Decoder Proxy

A yEnc decoder proxy also sits between the server and the client, sending requests on behalf of the client.  When the client asks for a yEnc encoded attachment, the proxy requests the attachment from the server in yEnc format and converts it to a more accepted format before sending it to the client.

yDecoder Diagram

A yEnc Decoder proxy is also considered a plug-in because it’s a third party utility that adds functionality to an a separate program.

I figured a yEnc Decoder proxy would be the perfect solution to my problem.  The only problem, of course, was that there wasn’t such a thing.   I would have to write one.

yProxy: The Original yEnc Decoder Proxy

I wrote the first, beta, version of yProxy over the weekend and released it to the public.  I also alerted Forte so that they could recommend the free utility to their users until they added yEnc support to Agent.  Unfortunately, Forte never responded.  Yet, Forte did add yEnc support to Agent shortly after, and anyone with a recent version of Forte Agent has native yEnc support.

Still, the word about yProxy spread via the newsgroups and quickly became the yEnc Decoder solution for many people who either weren’t entitled to upgrades for their existing newsreaders, or whose newsreaders just plain didn’t support yEnc.  For example, the most popular free newsreaders are still Outlook Express, Windows Mail, and Mozilla Thunderbird.  None of those newsreaders support yEnc.

With a yEnc Decoder proxy between your newsreader client and the news server, you can continue using your existing newsreader and still be able to read yEnc content, even if your newsreader does not support yEnc natively.  Most yProxy users, therefore, are Outlook Express, Windows Mail, and Mozilla Thunderbird users.

Jurgen, the inventor of yProxy, became one of yProxy’s biggest advocates.  People who had previously complained that their newsreaders didn’t support yEnc were directed to use yProxy and stop complaining.

yProxy is the Leading yEnc Decoder Proxy

yProxy Pro’s biggest competition is the free version of yProxy, which is still available on the yProxy website via the FAQ page.

I stopped counting after one million people downloaded yProxy, which occurred within the first year that it was available.  There is even a French version that a considerate user translated.