Tuesday, December 30, 2008

Bypassing Websense


Websense is a kind of proxy server that filters request to the internet and will block certain kinds of request - The most common way of blocking is to check the requested url against a black list.
The most common HTTP request is GET and looks like:

GET /path-to-file HTTP/1.0
Simply replacing this with something like the one below seems to confuse Websense, making it to believe that the url is not in the black list.

GET /path-to-file <2048-space> HTTP/1.0
While some web servers are also confused by such a request some others behave normally.

To change the request from the first format to the second one needs some one in between and the easiest is a proxy server and if it's in python it only gets more easier.
TIP: If using windows, the extension of the proxy file can be set as .pyw to run it invisibly.

The browser has to be configured to use a proxy but since some sites doesn't work with this proxy due to the request mangling, it is worth writing a proxy.pac file that uses the proxy only for certain sites.
QuickProxy is a nice add-on for Firefox that makes it easy to switch proxy configuration.

Saturday, December 20, 2008

Yet another revival


Time and again I try to keep my blog alive but after a few posts the interest fades away mainly due to the effort involved in posting. I have tried different tools but none could stand my laziness - but this time posting via email seems to be easy enough to carry forward my lazy ass.

Wednesday, September 03, 2008

Here it is - Google Chrome

It's here to flame up the fire and I am exploring it right after waking up.

The first thing that can be noticed is the location of tabs, the tabs are located above the url box - It's like different independent browser windows joined together rather than a single window containing different web pages.

The URL is colour coded - The server name appears dark and the rest of the path appears in grey. https is highlighted in green. A tiny thing but it's much easier to identify the server name.


By default there are two processes while opening Chrome. The process count increases on creating the first new tab but subsequent new tabs doesn't increase the process count - The count increases only on loading a page.


Killing a process displays a message in the tab corresponding to that process and doesn't kill the entire browser - Good.

Very spacious - Tabs are merged with the title bar, no status bar, no menu bar.


Acid test results:



Only a boot strap is available for download which in turn downloads and installs the actual browser - This possibly may be for region specific customization but I had prefer the real installer.


Missing:
- Profiles
- Addons
- Couldn't find offline mode

@Me, should find more time to explore

Tuesday, September 02, 2008

Yet another new from Google's stable, Google Chrome, an opensource browser

The war starts again, now with an extra battalion by the name of Google Chrome. With Firefox eating in to the shares of IE, Opera and Flock gaining popularity and with Safari's presence felt, the war is only going to heat up. Microsoft is already pushing IE8 as a safe and standards compliant browser. Firefox3 has set a new bench mark as a secure browser. Success for the new generation browsers will firstly depend on the security they provide against malware and phising sites, then secondly on the customization capabilities. Promises look good but wait till tomorrow.

Monday, September 01, 2008

Unified versioning for windows drivers

Every new release of a windows driver involved updating the version number in a lot of places, mainly:
- The resource file
- The inf file
- The source file (Mainly for debug purposes)
This was a lot hectic until one day I sat down to unify the version updation to one file, which can be used in all places.

The result is the following file, which we shall call 'version.h'



#ifndef _VERSION_H_
#define _VERSION_H_

#if 0
STAMPINF_VERSION=1,0,0,1
STAMPINF_VERSION_STR="01.00.00.01"
STAMPINF_DATE="12/21/2007"
#else
#define VER_PRODUCTVERSION 1,0,0,1
#define VER_PRODUCTVERSION_STR "01.00.00.01"
#endif

#endif

It can be included in the source and resource file and the defines VER_PRODUCTVERSION and VER_PRODUCTVERSION_STR can be used.

It can also be safely included in makefile.inc and the defines STAMPINF_VERSION, STAMPINF_VERSION_STR and STAMPINF_DATE can be used to update the inf files using the stampinf utility that comes with WDK.

Now, every new release requires updating only a single file and has become a lot easier.

Tuesday, August 26, 2008

German health card - overly complex

The German health card system seems to be overly complex for a health sector.

Monday, May 05, 2008