Situation: School firewalled every port, in going and out going
Basically I have no outside access to the internet except for the HTTP proxy that I am using to access this website. Now, the HTTP proxy used to support the CONNECT method to any port, but has been discontinued because it was used to create tunnels to the outside world. i.e. socks5 proxy that created tunnels to the outside world through the HTTP proxy. Well I figured out that most IRC clients, when sending a file, open up a port, and as soon as someone connects to the port they automatically start sending data w/out any input. So obvoiusly you could use the HTTP proxy method GET to actually get any file you wanted. i.e. GET http:// $+ %ip $+ : $+ %port $+ / HTTP/1.0. I wrote a script that would connect to the proxy via mIRC socket support and write the data coming in through the socket to the HDD. But holy cow does this suck up CPU cycles. 85% CPU load usually for a single file. If downloading 2 files you can expect 95%. Now I noticed though that regular mIRC comes no where close to this when downloading a file normally. While mIRC does support HTTP proxies to download files (I guess it was recently fixed w/ 6.15 to my relief cause I couldnt get mIRC to send ANYTHING to the proxy before) it uses the CONNECT method. Since I cannot use this method I was wondering if there was anyway I could change it to the GET method through scripting or some other interface I do not know about. Short of unpacking the exe and hexing it in, I'm open to any suggestions.
Note: I've already thought about writing a proxy to be the "proxy" between mIRC and the HTTP proxy. It would just intercept the CONNECT and change it to the proper GET method and than stream the incoming data to mIRC. While this is certainly feasible, I was wondering if there was an even better way.
Note 2: Not asking for future implementation in mIRC because this problem is probably only limited to me. Because if your tracking what I've been saying your wondering how I would even connect to mIRC in the first place to even recieve the DCC info from a client.