<commit_before># Butcher

A FireSheep butcher. Inspired by FireShepherd, but written in C#... it sends fairly random requests to make it difficult to block by FireSheep.

Created by:
	* <NAME>
	
## Building

Grab the source using git.  
	$ git clone https://github.com/wpreul/butcher.git

Build using Visual Studio 2010 with .NET 4.0

## How it works
Butcher will send out requests to your network gateway that when intercepted by FireSheep will disable FireSheep.  It does this by employing the method created with FireShepherd, which is to send a cookie value that FireSheep is unable to parse.  The point of Butcher, however, is to send out fairly random requests to a variety of the handlers that FireSheep supports.  This makes it more difficult for a FireSheep user to filter out the Butcher traffic.  The handler and the request values that are sent are randomly chosen and are different for each request.  Also, the fact that it is sending requests to your internal network gateway should calm concerns about possible DoS scenarios against public sites.  With that being said, you should note that if it cannot determine your gateway IP, it will try and ping an outside server and use the first hop as the gateway.  If this fails, it falls back to using google.com.  If there is any demand for it, I can add an optional parameter for a user to override the IP to use to connect to for sending requests to.

It sends 1 request per second. The requests are very minimal in size, only the http headers that FireSheep uses are sent.

## Install
Simply download and run the exe.  It will detect your gateway IP and start sending requests to it that are intercepted by FireSheep.  <commit_msg>Adding more detailed instructions to the readme for setting up with mono on a mac<commit_after># Butcher

A FireSheep butcher. Inspired by FireShepherd, but written in C#... it sends fairly random requests to make it difficult to block by FireSheep.

Created by:
	* <NAME>
	
## Building

Grab the source using git.  
	$ git clone https://github.com/wpreul/butcher.git

Build using Visual Studio 2010 with .NET 4.0

## How it works
Butcher will send out requests to your network gateway that when intercepted by FireSheep will disable FireSheep.  It does this by employing the method created with FireShepherd, which is to send a cookie value that FireSheep is unable to parse.  The point of Butcher, however, is to send out fairly random requests to a variety of the handlers that FireSheep supports.  This makes it more difficult for a FireSheep user to filter out the Butcher traffic.  The handler and the request values that are sent are randomly chosen and are different for each request.  Also, the fact that it is sending requests to your internal network gateway should calm concerns about possible DoS scenarios against public sites.  With that being said, you should note that if it cannot determine your gateway IP, it will try and ping an outside server and use the first hop as the gateway.  If this fails, it falls back to using google.com.

There is an optional parameter for overriding the IP to connect to.  For example, to have Butcher connect to 192.168.2.1 run it from the console with like so:
$ Butcher.exe 192.168.2.1

It sends 1 request per second. The requests are very minimal in size, only the http headers that FireSheep uses are sent.

## Install
Simply download and run the exe.  It will detect your gateway IP and start sending requests to it that are intercepted by FireSheep.  

## Running with Mono on Mac OS X
There is an outstanding bug in mono that requires you to specify the gateway IP when executing Butcher.  Here is the bug ticket regarding this issue: https://bugzilla.novell.com/show_bug.cgi?id=594642

Use the following to build and run Butcher
$ xbuild Butcher.xln
$ mono Butcher.exe <IP>

Remember that it needs to connect to non-loopback IP, so don't use 127.0.0.1 to test with.
{'fraction_non_alphanumeric': 0.036989795918367346, 'fraction_numerical': 0.010714285714285714, 'mean_word_length': 4.020486555697823, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 3, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6211848', 'n_tokens_mistral': 1046, 'n_tokens_neox': 970, 'n_words': 640}