<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hax by Jaku &#187; Projects</title>
	<atom:link href="http://haxbyjaku.com/category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>http://haxbyjaku.com</link>
	<description>Don't tell me what to do.</description>
	<lastBuildDate>Sat, 03 Dec 2011 11:17:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Rick Roll Proxy&#8230;</title>
		<link>http://haxbyjaku.com/projects/rick-roll-proxy/</link>
		<comments>http://haxbyjaku.com/projects/rick-roll-proxy/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 02:34:15 +0000</pubDate>
		<dc:creator>Jaku</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[rick roll]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[traffic redirect]]></category>

		<guid isPermaLink="false">http://haxbyjaku.com/?p=440</guid>
		<description><![CDATA[A long time ago I decided to mess around with the redirect_program feature of squid. If you&#8217;re not familar with squid I suggest looking up the wiki on it http://en.wikipedia.org/wiki/Squid_(software). What exactly does redirect_program do? No one knows for sure, some say that it is the very reason the internet works, while others speculate that [...]]]></description>
			<content:encoded><![CDATA[<p>A long time ago I decided to mess around with the redirect_program feature of squid. If you&#8217;re not familar with squid I suggest looking up the wiki on it <a href="http://en.wikipedia.org/wiki/Squid_(software)">http://en.wikipedia.org/wiki/Squid_(software)</a>. </p>
<p>What exactly does redirect_program do? No one knows for sure, some say that  it is the very reason the internet works, while others speculate that the previous statement is nothing but rubish. The world may never know, however just because we don&#8217;t know what it does doesn&#8217;t mean we can&#8217;t use it!</p>
<p>Ok but seriously what does the redirect_program tag actually allow us to do. This tag is used to specify the location of the executable for the URL redirector. So you can basicaly create a program that can rewrite the requested URLs that are passing though squid. So one could play around with the data that is passing though squid pretty much on the fly. What is great about it, is that it&#8217;s very easy to program for and has many real world uses.</p>
<p>None of which we will talk about here. <img src='http://haxbyjaku.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
<span id="more-440"></span><br />
So being who I am, and knowing what I do. I decided to create a script that would take the data that users are getting and replace it with my own files. Because everyone and anyone was getting rick rolled or rick rolling others, I decided that I would make a proxy that would rick roll the user in just about<br />
any way possible.</p>
<p>Thus the rick roll perl script for squid redirect_program was created. Or RRR for short. It can actually stand for 2 things there, Rick Roll Redirect or Rick Roll pRoxy. The choice is yours, I normally just call it the Rick Roll Proxy. But the name means nothing.</p>
<p>Now this is all fun but you need to actually edit your victims proxy settings if you want them to go though your proxy&#8230; at least if you don&#8217;t &#8220;OWN&#8221; the network. So while normally running this script on a squid box with apache is enough, I decided it would work best if we didn&#8217;t give the users a choice in<br />
the matter.</p>
<p>So I&#8217;ve put together some iptable rules that one can run on just about any router that accepts them to force the users to use the proxy. What is nice about this is that it can be started and stopped as often as you want. So you could create a rule to start rick rolling everyone on the network for 1 minute<br />
every hour. Or just have it on all the time.</p>
<p>The 2 scripts you&#8217;ll need are located at:</p>
<p><a href="http://haxbyjaku.com/rrrproxy/">http://haxbyjaku.com/rrrproxy/</a></p>
<p>The first one is the iptable rules (proxy.sh), and the second is the redirect_program (rrr.pl) that you will want to call in squid. To enable the redirect_program tag simply open up your squid config (normally /etc/squid.conf or /etc/squid/squid.conf) and find the commented out part of redirect_program. Uncomment it and give it the path to the file. (Make sure it has access) And then restart squid.</p>
<p>Now doing that is not all you need to do. In the rrr.pl file you&#8217;ll notice a variable called &#8220;$server&#8221;, this by default will call the files from my site. All located at <a href="http://haxbyjaku.com/rrrproxy/">http://haxbyjaku.com/rrrproxy/</a> however, if you want to add your own files or keep it going as fast as possible you&#8217;ll want to store the files locally on the server running apache or some other web service.</p>
<p>Now, with that setup and running anyone using your proxy will get the files listed in the rrr.pl file replaced with files related to a rick roll, or anything you might of replaced them with. However, like we mentioned that is only if they change their proxy settings. So the next step that you&#8217;re gonna want to do is run the proxy.sh script on your iptables based router. Or create your own rules if you have something else.</p>
<p>I use a wrt54gs at home which is running dd-wrt. So all I have to do is SSH in edit a few of the variables in the proxy.sh file, and execute it. After about 2 seconds anyone on the network that is browsing the web will start to get their files replaced automatically.</p>
<p>You&#8217;re going to want to edit 3 or 4 variables in the proxy.sh file. The first one being the &#8220;INTERNAL_NETWORK&#8221; this should match your internal network IP range. Most routers use the default one mentioned in the file, but it could be anything.</p>
<p>The 2nd variable is the &#8220;ROUTER_IP&#8221;. This is the main private IP of the router. If this is not correct then you can cause your entire network to fail until you either reboot the router or disable the iptable rule.</p>
<p>The 3rd and 4th varibles will be the PROXY_SERVER, and PROXY_PORT. Make sure you put the correct IP and PORT in otherwise it will not work. These should be the settings you use for your squid proxy. The IP could be the same as the ROUTER_IP variable or even the same IP you specfied in the rrr.pl for the SERVER_IP. It could even be different then both of those. I&#8217;ll let you decide on what IP it should be. <img src='http://haxbyjaku.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>After that run the script and you&#8217;re all set to go. Anyone on the network should be getting their files replaced with the rickroll files and you should get a huge laugh out of it. I highly suggest setting up your own webserver with the files, but I understand not everyone has space where they could store them.</p>
<p>However, I&#8217;m not gonna include how you should setup your web server if you have access to one, you should already know how to do that especially you&#8217;re gonna start messing around with proxies and re-writing traffic. But if you really can&#8217;t figure it out and you need help, send me a message and I&#8217;ll help you out as best as I can.</p>
<p>I also used to have a VMware image that had the proxy and all software setup and ready for use, however because it had gotten used for more and more projects I&#8217;m unwilling to release it at this time. If there is a big enough response on it I will re-create it and distribute it. I hope you are able to understand this post and include some rick rolls in others lives with the information you received. <img src='http://haxbyjaku.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://haxbyjaku.com/projects/rick-roll-proxy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GPS Code Update</title>
		<link>http://haxbyjaku.com/projects/gps-code-update/</link>
		<comments>http://haxbyjaku.com/projects/gps-code-update/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 04:35:14 +0000</pubDate>
		<dc:creator>Jaku</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[google latitude]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[mobileme]]></category>
		<category><![CDATA[playnice]]></category>

		<guid isPermaLink="false">http://haxbyjaku.com/?p=431</guid>
		<description><![CDATA[So it seems I have to write this post again because my server crashed.. leaving everything alone but my sql databases&#8230; Oh well, could be a lot worst. So after my post yesterday about how I update my location on my site I got a reply from @andre_vans that told me about a project called [...]]]></description>
			<content:encoded><![CDATA[<p>So it seems I have to write this post again because my server crashed.. leaving everything alone but my sql databases&#8230; Oh well, could be a lot worst.</p>
<p>So after my post yesterday about how I update my location on my site I got a reply from <a href="http://twitter.com/andre_vans/status/4167563550">@andre_vans</a> that told me about a project called &#8220;PlayNice&#8221;. The GIThub source is at <a href="http://github.com/natfriedman/playnice">http://github.com/natfriedman/playnice</a> and the the creator of it has a blog post about it at <a href="http://nat.org/blog/2009/08/playnice-google-apple/">http://nat.org/blog/2009/08/playnice-google-apple/</a>.</p>
<p>Now I mentioned in my post yesterday that I wanted to be able to use some sort of push notification on the iPhone so that my site could ask for an update and the phone would comply. This would require a custom app on the iPhone to  automatically execute something when it has a push notification. Now I&#8217;m not even sure if that is possible at this stage as that would almost be like the app is running in the background, which apple does not allow yet. However, Apple has such a service built into the phone that allows anyone with a MobileMe account linked to their iPhone to get the location of the device. </p>
<p>So with that PlayNice will basically log in as you on your MobileMe account and launch the locate phone feature. Now the neat thing about this is that it also updates to your Google Latitude account. This make&#8217;s it pretty much perfect for what I want to do. With the source code freely available and easy to understand it was a breeze adding 3 lines of code to update my map backend whenever the PlayNice script is ran. If you wan&#8217;t to do the same with most of the code from my post yesterday then follow me past the break. Otherwise, ignore me. <img src='http://haxbyjaku.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<span id="more-431"></span><br />
Now that you are here we know who the true Jaku fans are. <img src='http://haxbyjaku.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Alright so the code that we used yesterday, we only need the mologogo part. So the &#8220;update.html&#8221; is pretty much useless but you could still certainly use it. What is important here is that you follow the steps in yesterdays post to get the database and mologogo backend software working. Once you do that you will need to make a change to the &#8220;submit_2343.php&#8221; file or whatever you renamed it to. All you need to do is uncomment lines 41 and 42. This will allow those variables to work again.</p>
<p>The next step is to download the PlayNice code from <a href="http://github.com/natfriedman/playnice">http://github.com/natfriedman/playnice</a> and follow the install instructions. After doing that you will want to edit the &#8220;playnice.php&#8221; file and add the following lines around line 91.<br />
<code><br />
$lat = "$iphoneLocation->latitude";<br />
$lon = "$iphoneLocation->longitude";<br />
system ("/usr/bin/curl LOCATION_OF_UPDATE.PHP?pointType=GPS'&#038;'name=Jaku'&#038;'lat=$lat'&#038;'lon=$lon");<br />
</code><br />
Now you don&#8217;t need to make those variables if you use the the full $iphoneLocation->latitude\longitude names in your system call, but it looks cleaner. </p>
<p>After you make that change your GPS updates should start getting populated in your GPS map backup.</p>
<p>Up next for me is the creation of a new backup now that I have the simplest update, it&#8217;s time to clean up that backend. <img src='http://haxbyjaku.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://haxbyjaku.com/projects/gps-code-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dreamcast controller manipulation</title>
		<link>http://haxbyjaku.com/projects/dreamcast-controller-manipulation/</link>
		<comments>http://haxbyjaku.com/projects/dreamcast-controller-manipulation/#comments</comments>
		<pubDate>Mon, 04 Jun 2007 14:55:15 +0000</pubDate>
		<dc:creator>Jaku</dc:creator>
				<category><![CDATA[Chicago 2600]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Haxs]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://haxbyjaku.com/index.php/projects/dreamcast-controller-manipulation/</guid>
		<description><![CDATA[I presented my secret project at the 2600 meeting. I was hoping for a much bigger response to it than the one I got. I felt that there was to much to go over and so that made people bored\unimpressed. Or maybe I am the only person that thinks controlling an 8 year old system [...]]]></description>
			<content:encoded><![CDATA[<p>I presented my secret project at the 2600 meeting. I was hoping for a much bigger response to it than the one I got. I felt that there was to much to go over and so that made people bored\unimpressed. Or maybe I am the only person that thinks controlling an 8 year old system with a web browser, or Wii remote is cool. Eitherway, I had fun working on it, and I learned a lot from this one project. So at least I can take the knowledge of this project and use it towards other things. I already have a few ideas but won&#8217;t be working on them until I move to my new apartment, whenever that might be. </p>
]]></content:encoded>
			<wfw:commentRss>http://haxbyjaku.com/projects/dreamcast-controller-manipulation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>UT-41 GPS in OS X</title>
		<link>http://haxbyjaku.com/projects/ut-41-gps-in-os-x/</link>
		<comments>http://haxbyjaku.com/projects/ut-41-gps-in-os-x/#comments</comments>
		<pubDate>Thu, 17 May 2007 05:30:51 +0000</pubDate>
		<dc:creator>Jaku</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Haxs]]></category>

		<guid isPermaLink="false">http://haxbyjaku.com/?p=38</guid>
		<description><![CDATA[I recently got a UT-41 at http://www.geeks.com/details.asp?invtid=UT-41&#038;cat=GPS It didn&#8217;t support OS X out of the box so here is how I got it working. First download the Serial to USB driver for OS X at http://www.apple.com/downloads/macosx/drivers/pl2303driver.html. After installing it, you are asked to reboot. Do so. When you are back to OS X you can [...]]]></description>
			<content:encoded><![CDATA[<p><font size="2">I recently got a UT-41 at <a href="http://www.geeks.com/details.asp?invtid=UT-41&#038;cat=GPS">http://www.geeks.com/details.asp?invtid=UT-41&#038;cat=GPS</a></p>
<p>It didn&#8217;t support OS X out of the box so here is how I got it working.</p>
<p>First download the Serial to USB driver for OS X at <a href="http://www.apple.com/downloads/macosx/drivers/pl2303driver.html">http://www.apple.com/downloads/macosx/drivers/pl2303driver.html</a>. After installing it, you are asked to reboot. Do so.</p>
<p>When you are back to OS X you can download and compile GSPd or get the GUI Binary gpsdXConfig at <a href="http://ghw.spade-men.com/gpsdx.html">http://ghw.spade-men.com/gpsdx.html</a>. </p>
<p>If you compiled GSPd, you can run the following command in terminal</p>
<p><code>gpsd tty.PL2303-0000103D</code></p>
<p>or if you are using the GUI you might have to refresh the serial list, and then select <b>/dev/tty.PL2303-0000103D</b></p>
<p>To see if it is working, you can telnet to your localhost, press &#8220;r&#8221; and enter and you should see some GPS data like so.<br />
<code><br />
telnet localhost 2947</p>
<p>Trying 127.0.0.1...<br />
Connected to localhost.<br />
Escape character is '^]'.</p>
<p>GPSD</p>
<p>GPSD<br />
r<br />
GPSD,R=1<br />
$GPGSV,3,2,12,17,47,258,,27,33,173,,24,16,189,,29,13,287,*74<br />
$GPGSV,3,3,12,26,13,293,,19,05,056,,20,03,125,,04,02,199,*7A<br />
$GPRMC,224206.00,V,3818.6285,N,08552.2345,W,,,200906,,,N*59<br />
$GPGGA,224206.00,3818.6285,N,08552.2345,W,0,00,0.0,,M,,M,,*4F<br />
$GPGSA,A,1,,,,,,,,,,,,,,,*1E<br />
</code><br />
After that you can select GPS under Preferences, and choose GPSd in the drop down. After words you should have GPS working in OS X with the UT-41.<br />
</code></p>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://haxbyjaku.com/projects/ut-41-gps-in-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

