<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Lanrat</title>
	
	<link>http://lanrat.com</link>
	<description>When the defaults just aren't enough</description>
	<lastBuildDate>Wed, 28 Mar 2012 07:55:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/lanrat" /><feedburner:info uri="lanrat" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>SMS DOS: Cellphone Denial Of Service via text messages</title>
		<link>http://feedproxy.google.com/~r/lanrat/~3/7b3ZRjKe_8s/</link>
		<comments>http://lanrat.com/sms-dos/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 01:38:14 +0000</pubDate>
		<dc:creator>mrlanrat</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://lanrat.com/?p=260</guid>
		<description><![CDATA[A while ago I wondered how well modern cellphones could handle a flood of text messages. So I created a simple python program to test just that. The program works by sending emails to a SMS Gateway which will forward the message to the phone in the form of a text message. I tested my program on two devices, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="SMS DOS Screenshot" src="https://lh5.googleusercontent.com/-gaeFX2GtUTM/T1v6QAOhGgI/AAAAAAAABvs/5Qf4xpLFydc/s800/SMSDOS_Screenshot.png" alt="" width="615" height="242" /></p>
<p>A while ago I wondered how well modern cellphones could handle a flood of text messages. So I created a simple python program to test just that. The program works by sending emails to a <a href="http://en.wikipedia.org/wiki/SMS_gateway" target="_blank">SMS Gateway</a> which will forward the message to the phone in the form of a text message.</p>
<p>I tested my program on two devices, my modern HTC Incredible running Android and my aging LG Chocolate dumb-phone. The results where surprising! After starting the program my HTC Incredible froze after receiving the first 20 messages. A battery pull was required to get it to respond. The second it finished booting it froze again! I was only able to make it respond by stopping my program and rebooting the phone. After it boot it froze again while catching up on all the messages that where sent.</p>
<p>My LG Chocolate was another story. While it never froze, it did make the phone almost impossible to use. 10 times a second it would display a notification of the new message. But after about 100 messages it just stopped. My program was still sending them but the phone stopped receiving them. I&#8217;m not sure if this was done by the phone itself or something on the carrier&#8217;s end.</p>
<p>I am releasing the source of this program in case others find it interesting. I claim no responsibility for any damage done by this program. Use at your own risk on devices you own!</p>
<p><a href="https://github.com/mrlanrat/SMS-DOS" target="_blank">Source Code at GitHub</a></p>
<p>SMS DOS requires PyQt4 for the GUI, it can be installed <a href="http://www.riverbankcomputing.co.uk/software/pyqt/download" target="_blank">HERE</a>.</p>
<img src="http://feeds.feedburner.com/~r/lanrat/~4/7b3ZRjKe_8s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lanrat.com/sms-dos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lanrat.com/sms-dos/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=sms-dos</feedburner:origLink></item>
		<item>
		<title>WIFI Recovery for Android Published</title>
		<link>http://feedproxy.google.com/~r/lanrat/~3/pm0ws7-aInY/</link>
		<comments>http://lanrat.com/wifi-recovery-for-android-published/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 06:12:39 +0000</pubDate>
		<dc:creator>mrlanrat</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[apps]]></category>

		<guid isPermaLink="false">http://lanrat.com/?p=221</guid>
		<description><![CDATA[My First Android application WIFI Recovery has now been published to the Android market! Read all about it at its own page! More apps on the way!]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="WIFI Recovery Main Screen" src="https://lh3.googleusercontent.com/-mgstef5RBt8/TzBODFQ6yzI/AAAAAAAABvQ/CKAFFa2N_eI/s384/2012-02-06%252013.49.02.png" alt="" width="230" height="384" /></p>
<p style="text-align: center;">My First Android application WIFI Recovery has now been published to the Android market!<br />
<a title="WIFI Recovery for Android" href="http://lanrat.com/wifi-recovery-for-android/">Read all about it at its own page!</a><br />
More apps on the way!</p>
<img src="http://feeds.feedburner.com/~r/lanrat/~4/pm0ws7-aInY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lanrat.com/wifi-recovery-for-android-published/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lanrat.com/wifi-recovery-for-android-published/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=wifi-recovery-for-android-published</feedburner:origLink></item>
		<item>
		<title>Run the Windows Command Prompt in Full Screen</title>
		<link>http://feedproxy.google.com/~r/lanrat/~3/ShEqE80z72Q/</link>
		<comments>http://lanrat.com/fullscreen-cmd/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 21:37:15 +0000</pubDate>
		<dc:creator>mrlanrat</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[tps]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://lanrat.com/?p=189</guid>
		<description><![CDATA[Have you ever wanted to run the windows command prompt but realize that for some reason Microsoft has limited it to be at most 80 characters wide? Well, there is a way to bypass that limitation. After opening the command prompt run the Windows Management Instrumentation Command-line by issuing the command: wmic. Then make the cmd window full screen or [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="Full Screen CMD" src="https://lh5.googleusercontent.com/-30_RU3hz4Qs/TzBD9ikSdLI/AAAAAAAABuY/zGBXdTSmhFE/s640/cmdFull.png" alt="" width="640" height="360" /></p>
<p>Have you ever wanted to run the windows command prompt but realize that for some reason Microsoft has limited it to be at most 80 characters wide? Well, there is a way to bypass that limitation. After opening the command prompt run the Windows Management Instrumentation Command-line by issuing the command: wmic. Then make the cmd window full screen or resize it to the desired size. Then exit wmic by using the exit command. you shoudl now be in the Windows command prompt with a windows of whatever size you desire!</p>
<p>The sequences of commands should look like this:</p>
<pre class="brush: plain; title: ; notranslate">
cmd
wmic
[resize window now]
exit
</pre>
<p>I have tested, and can confirm that this works on both Windows XP and Windows 7.</p>
<img src="http://feeds.feedburner.com/~r/lanrat/~4/ShEqE80z72Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lanrat.com/fullscreen-cmd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lanrat.com/fullscreen-cmd/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=fullscreen-cmd</feedburner:origLink></item>
		<item>
		<title>The Great Blog Reboot of 2012</title>
		<link>http://feedproxy.google.com/~r/lanrat/~3/U4LV8QZzUr0/</link>
		<comments>http://lanrat.com/the-great-blog-reboot-of-2012/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 05:18:28 +0000</pubDate>
		<dc:creator>mrlanrat</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lanrat.com/?p=185</guid>
		<description><![CDATA[Hello World 2.0! I have (reluctantly) made the decision to migrate my blog from my custom made PHP CMS to WordPress. While I like the customizability, flexibility, and lightweightness of my own CMS, I was getting to a point where I wanted new abilities and was too interested working on other more interesting projects to [...]]]></description>
			<content:encoded><![CDATA[<p>Hello World 2.0!</p>
<p>I have (reluctantly) made the decision to migrate my blog from my custom made PHP CMS to WordPress. While I like the customizability, flexibility, and lightweightness of my own CMS, I was getting to a point where I wanted new abilities and was too interested working on other more interesting projects to code them. So, I migrated to WordPress. All posts previous to this one where from my old blog, which can still be found <a href="http://lanrat.com/old" target="_blank">HERE</a>.</p>
<img src="http://feeds.feedburner.com/~r/lanrat/~4/U4LV8QZzUr0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lanrat.com/the-great-blog-reboot-of-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lanrat.com/the-great-blog-reboot-of-2012/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-great-blog-reboot-of-2012</feedburner:origLink></item>
		<item>
		<title>LDAP Authentication for Cakephp</title>
		<link>http://feedproxy.google.com/~r/lanrat/~3/kEPCOtrno1I/</link>
		<comments>http://lanrat.com/ldap-authentication-for-cakephp/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 02:35:00 +0000</pubDate>
		<dc:creator>mrlanrat</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://lanrat.com/?p=59</guid>
		<description><![CDATA[This article is going to help you using LDAP to authenticate users rather than relying on a users table with a password column. I will be assuming you will be using cakephp 1.3 and that you have completed Auth and/or ACL setup on your application similar to the ACL tutorial on the cakephp book. Because [...]]]></description>
			<content:encoded><![CDATA[<p>This article is going to help you using LDAP to authenticate users rather than relying on a users table with a password column. I will be assuming you will be using cakephp 1.3 and that you have completed Auth and/or ACL setup on your application similar to the <a href="http://book.cakephp.org/view/1543/Simple-Acl-controlled-Application" target="_blank">ACL tutorial on the cakephp book</a>.</p>
<p>Because we want to control the logging in of the user ourselves and not leave it to the cake magic we need to override the auth component. To do this copy your auth.php from your CAKE_CORE/controllers/components/ to your APP/controllers/components/ folder. Next open it up and fine the login function. It should be around like 684. Once you find it comment out everything inside the fucntion (but leave the function intact. It should look something like this:</p>
<pre class="brush: php; title: ; notranslate">
function login($data = null) {
    /*$this-&gt;__setDefaults();
    $this-&gt;_loggedIn = false;
    if (empty($data)) {$data = $this-&gt;data; }
    if ($user = $this-&gt;identify($data))
    { $this-&gt;Session-&gt;write($this-&gt;sessionKey, $user);
    $this-&gt;_loggedIn = true; }
return $this-&gt;_loggedIn;*/ }
</pre>
<p>Next open up your users controller and find your login function. Assuming you followed the guide or have implemented some basic auth you should have an empty login function.</p>
<p>I have written a LDAP helper that can easily be included as a LIB for Cakephp that will get some user data and validate the login, copy and paste it from below to APP/libs/ldap.php</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
class ldap{

    private $ldap = null;
    private $ldapServer = 'AD.domain.com';
    private $ldapPort = '389';
    public $suffix = '@domain.com';
    public $baseDN = 'dc=domain,dc=com';
    private $ldapUser = 'LDAPUser';
    private $ldapPassword = 'Pas5w0rd';

    public function  __construct() {
        $this-&gt;ldap = ldap_connect($this-&gt;ldapServer,$this-&gt;ldapPort);

        //these next two lines are required for windows server 03
        ldap_set_option($this-&gt;ldap, LDAP_OPT_REFERRALS, 0);
        ldap_set_option($this-&gt;ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
    }

    public function auth($user,$pass)
    {
        if (empty($user) or empty($pass))
        {
            return false;
        }
        @$good = ldap_bind($this-&gt;ldap,$user.$this-&gt;suffix,$pass);
        if( $good === true ){
            return true;
        }else{
            return false;
        }
    }

    public function __destruct(){
        ldap_unbind($this-&gt;ldap);
    }

    public function getInfo($user){
        $username = $user.$this-&gt;suffix;;
        $attributes = array('givenName','sn','mail','samaccountname','memberof');
        $filter = &quot;(userPrincipalName=$username)&quot;;

        ldap_bind($this-&gt;ldap,$this-&gt;ldapUser.$this-&gt;suffix,$this-&gt;ldapPassword);
        $result = ldap_search($this-&gt;ldap, $this-&gt;baseDN, $filter,$attributes);
        $entries = ldap_get_entries($this-&gt;ldap, $result);

        return $this-&gt;formatInfo($entries);
    }

    private function formatInfo($array){
        $info = array();
        $info['first_name'] = $array[0]['givenname'][0];
        $info['last_name'] = $array[0]['sn'][0];
        $info['name'] = $info['first_name'] .' '. $info['last_name'];
        $info['email'] = $array[0]['mail'][0];
        $info['user'] = $array[0]['samaccountname'][0];
        $info['groups'] = $this-&gt;groups($array[0]['memberof']);

        return $info;
    }

    private function groups($array)
    {
        $groups = array();
        $tmp = array();

        foreach( $array as $entry )
        {
            $tmp = array_merge($tmp,explode(',',$entry));
        }

        foreach($tmp as $value) {
            if( substr($value,0,2) == 'CN' ){
                $groups[] = substr($value,3);
            }
        }

        return $groups;
    }
}
?&gt;
</pre>
<p>Edit the variables at the tom of the file to reflect your setup.</p>
<p>Now we are going to make our Users-&gt;login function check the POST username and password against LDAP, and then if valid it will preform the login magic that auth used to do.</p>
<p>Fill your login function with this:</p>
<pre class="brush: php; title: ; notranslate">
    function login() {
        App::import('Lib', 'ldap');
        if ($this-&gt;Session-&gt;read('Auth.User')) {
             $this-&gt;redirect(array('controller' =&gt; 'allocations', 'action' =&gt; 'index'));
        } elseif (!empty($this-&gt;data)) {
            $ldap = new ldap;
            if ($ldap-&gt;auth($this-&gt;Auth-&gt;data['User']['user'], $this-&gt;Auth-&gt;data['User']['password'])) {

                $userrow = $this-&gt;User-&gt;findByUsername($this-&gt;data['User']['user']);
                if (!$userrow) {
                    $ldap_info = $ldap-&gt;getInfo($this-&gt;data['User']['user']);
                    $this-&gt;data['User']['username'] = $this-&gt;data['User']['user'];
                    $this-&gt;data['User']['name'] = $ldap_info['name'];
                    $this-&gt;data['User']['group_id'] = 3; //sets the default group
                    $this-&gt;add();
                    $userrow = $this-&gt;User-&gt;findByUsername($this-&gt;data['User']['user']);
                }

                $user = $userrow['User'];

                $this-&gt;Auth-&gt;Session-&gt;write($this-&gt;Auth-&gt;sessionKey, $user);
                $this-&gt;Auth-&gt;_loggedIn = true;

                $this-&gt;Session-&gt;setFlash('You are logged in!');
                $this-&gt;redirect(array('controller' =&gt; 'allocations', 'action' =&gt; 'index'));
            } else {
                $this-&gt;Session-&gt;setFlash(__('Login Failed', true));
            }
        }
    }
</pre>
<p>To quickly summarize, it first checks to see if the user is logged in, if not, and post data is provided it will check the provided credentials with the LDAP Lib. If valid it then attempts to get the user from the users table, if the user does not exist it creates it with information provided from LDAP and defaults set in the function.</p>
<p>I built this to still work with a users table to allow relationships between other models and users. but it can be used without a users table, just remove the if(!$userrow) statement and the line before it.</p>
<p>NOTE: If you use a users table, you do not need, and should not have, a password column.</p>
<p>That should be it! You should now be using LDAP for user credential validation.</p>
<img src="http://feeds.feedburner.com/~r/lanrat/~4/kEPCOtrno1I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lanrat.com/ldap-authentication-for-cakephp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lanrat.com/ldap-authentication-for-cakephp/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ldap-authentication-for-cakephp</feedburner:origLink></item>
		<item>
		<title>Picture Frame Tablet PC</title>
		<link>http://feedproxy.google.com/~r/lanrat/~3/ZzELy2IVTOQ/</link>
		<comments>http://lanrat.com/picture-frame-tablet-pc/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 03:59:34 +0000</pubDate>
		<dc:creator>mrlanrat</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[picture frame]]></category>
		<category><![CDATA[tablet]]></category>
		<category><![CDATA[touch screen]]></category>

		<guid isPermaLink="false">http://lanrat.com/?p=136</guid>
		<description><![CDATA[Backstory A few years ago when the local Circuit City was going out of business I decided to stop by to see if there where any good deals. Unfortunately most of their inventory was at a very low discount (if at all). However they where getting rid of some of their CRM and sales equipment. I [...]]]></description>
			<content:encoded><![CDATA[<h1>Backstory</h1>
<p>A few years ago when the local Circuit City was going out of business I decided to stop by to see if there where any good deals. Unfortunately most of their inventory was at a very low discount (if at all). However they where getting rid of some of their CRM and sales equipment. I picked up a 3M touch-panel LCD monitor for $20 or so, sold &#8220;as-is&#8221;. When I got home I realized that the LCD panel was only 800x600px, and had a broken back-light. I tried to get the touch panel working but for some reason it was not receiving power and I could not find any drivers for it. Into storage it went.</p>
<p>A few months later I dusted it off and decided to give it another try. I was able to find a way of providing 5v power to the controller board for the touch panel, and after much searching I found the drivers.</p>
<p><img src="https://lh5.googleusercontent.com/_55LVV0RexIc/TTyahK2wpnI/AAAAAAAABjw/2RFju-FG184/s640/P1000591.JPG" alt="3M microtouch touchpanel " /></p>
<h1>The Hardware</h1>
<p>Once I got the driver, power to the board, and figured out its serial connection it was surprisingly easy to get working. Below you can see a picture and video of the touch panel wired up and working on a laptop.</p>
<p><img src="https://lh4.googleusercontent.com/_55LVV0RexIc/TTyahhqxU1I/AAAAAAAABj0/GHZ-Mieih60/s640/P1000592.JPG" alt="touch panel wired to laptop" /></p>
<p><iframe width="640" height="480" src="http://www.youtube.com/embed/cGFatJlEpKQ?fs=1&#038;feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<p>The next step was to remove the glass touch panel from the broken LCD. The glass was only held on by some very strong adhesive. After carefully removing it I tested it to make sure everything was still in good working order.</p>
<p><img src="https://lh4.googleusercontent.com/_55LVV0RexIc/TTyaiqP5YwI/AAAAAAAABj4/80Mt8fORuek/s400/P1000663.JPG" alt="Testing the touchpanel on a laptop" /><img src="https://lh5.googleusercontent.com/_55LVV0RexIc/TTydoOPwNPI/AAAAAAAABkE/55ZSqRaw1A4/s400/P1000665.JPG" alt="Hello World on the touch panel" /></p>
<p>Now is when the fun starts! I picked up a picture frame that used a piece of glass the exact same size of the touch panel from a local arts and crafts store. I also found a old Pentium M laptop I would be modifying to use the touch panel on its screen with the picture frame.</p>
<p>Below you can see the touch panel in the picture-frame, and the laptop I would be using for this project with its screen removed and the touch-panel attached by its side.</p>
<p><img src="https://lh4.googleusercontent.com/_55LVV0RexIc/TTygrA_D73I/AAAAAAAABkw/ROnnsv80WEE/s400/P1000676.JPG" alt="Touch-panel in picture frame" /><img src="https://lh3.googleusercontent.com/_55LVV0RexIc/TTydqbhJYWI/AAAAAAAABkQ/FLnhmNtMsXU/s400/P1000670.JPG" alt="touch panel on laptop" /></p>
<p>I gutted the laptop of unneeded parts, such as the keyboard, mouse, DVD drive, and lots of other plastic bits that would be in the way or covered up. Then I reattached its screen backwards, so that when it folds down it faces up.</p>
<p><img src="https://lh4.googleusercontent.com/_55LVV0RexIc/TTydqzPU26I/AAAAAAAABkU/ajlI-QMwgrE/s400/P1000671.JPG" alt="Laptop with backwards screen on hinge" /><img src="https://lh5.googleusercontent.com/_55LVV0RexIc/TTygoitu8TI/AAAAAAAABkg/SDky_0a8aMc/s400/P1000672.JPG" alt="laptop with screen reversed" /><img src="https://lh5.googleusercontent.com/_55LVV0RexIc/TTygpHNIw3I/AAAAAAAABkk/teRBlDOIL0E/s400/P1000673.JPG" alt="laptop with screen on back" /><img src="https://lh6.googleusercontent.com/_55LVV0RexIc/TTydow---bI/AAAAAAAABkI/rdZ7_qkBApA/s400/P1000667.JPG" alt="testing the laptop with the touch panel again" /></p>
<p>I mounted the touch panel&#8217;s controller board where the DVD drive once was, and gave it 5v of power from the laptop&#8217;s USB ports. Below you can see the picture-frame resting on the laptop but not attached yet, and the wiring for the touch-panel.</p>
<p><img src="https://lh3.googleusercontent.com/_55LVV0RexIc/TTygp8Dbu_I/AAAAAAAABko/MIvL6Z3j6Fs/s400/P1000674.JPG" alt="picture frame on laptop" /><img src="https://lh3.googleusercontent.com/_55LVV0RexIc/TTygqe_5RrI/AAAAAAAABks/OFGgA8GWayw/s400/P1000675.JPG" alt="Touch panel resting on laptop, not well connected yet/" /></p>
<p>Now for the inside wiring!</p>
<p><img src="https://lh6.googleusercontent.com/_55LVV0RexIc/TTyXn_2u1kI/AAAAAAAABi4/gdUqPQ_F3y8/s400/IMAG0058.jpg" alt="using USB for 5c DC" /><img src="https://lh5.googleusercontent.com/_55LVV0RexIc/TTyXnqQ6RsI/AAAAAAAABi0/-JxJ4vIw1WY/s400/IMAG0056.jpg" alt="Inside of touch panel lapop" /><img src="https://lh4.googleusercontent.com/_55LVV0RexIc/TTyXou457xI/AAAAAAAABjA/uaGAAZrhxwM/s400/IMAG0075.jpg" alt="using hot glue" /><img src="https://lh6.googleusercontent.com/_55LVV0RexIc/TTyXodBc57I/AAAAAAAABi8/fpeIYdEVwxI/s400/IMAG0059.jpg" alt="look at how nice it looks..." /></p>
<p>As you can see I used hot glue to hold the controller board in the optical drive bay. And all the wiring was looking good. I just needed a way to mount the touch-panel/picture frame to the rest of the laptop.</p>
<p>And here was my solution:</p>
<p><img src="https://lh5.googleusercontent.com/_55LVV0RexIc/TTyYWhf2JaI/AAAAAAAABjM/1Yp57zXNHcI/s400/IMAG0077.jpg" alt="back of picture frame touch pc" /><img src="https://lh6.googleusercontent.com/_55LVV0RexIc/TTyXpB4F8hI/AAAAAAAABjE/fdvC33S8Y7M/s400/IMAG0076.jpg" alt="a metal bracket" /></p>
<p>I would use these bent metal brackets I picked up at home depot to secure them together.</p>
<p><img src="https://lh5.googleusercontent.com/_55LVV0RexIc/TTyYW7PZIjI/AAAAAAAABjQ/HXFmzsOM8tQ/s400/IMAG0078.jpg" alt="brackets being applied" /><img src="https://lh3.googleusercontent.com/_55LVV0RexIc/TTyYXZAJ7XI/AAAAAAAABjU/NJFgLEz1_sU/s400/IMAG0079.jpg" alt="Everything mounted" /></p>
<p>At this point everything was working great. I should probably mention what those blue wires are that you can see sticking out of it. They lead to the laptop&#8217;s power and standby buttons. Those buttons would normally be located right above the keyboard, however with this mod they are no longer assessable, so they will be relocated.</p>
<p><img src="https://lh4.googleusercontent.com/_55LVV0RexIc/TTyYXwFUdQI/AAAAAAAABjY/zcHJQGftG4c/s400/IMAG0081.jpg" alt="picture frame tablet pc" /><img src="https://lh5.googleusercontent.com/_55LVV0RexIc/TTyaf9nd_-I/AAAAAAAABjo/QY3c86l9694/s400/IMAG0094.jpg" alt="power and standby buttons" /></p>
<p>I mounted the power and standby buttons (seen above) on a piece of plastic from the LCD assembly. I placed it over the hole in the laptop where the outside of the DVD drive was.</p>
<p>This concludes the hardware portion of this mod.</p>
<p><img src="https://lh5.googleusercontent.com/_55LVV0RexIc/TTyagVMr3YI/AAAAAAAABjs/2pyeUnV9rEc/s640/IMAG0098.jpg" alt="the finished picture frame tablet pc" /></p>
<h1>The Software</h1>
<p>To make the interface more touch friendly I installed<a href="http://rocketdock.com/" target="_blank"> RockerDock</a> to make launching application nicer.</p>
<p>Also since there is no longer a keyboard I used the <a href="http://www.chessware.ch/virtual-keyboard/" target="_blank">Touch-It Virtual Keaboard</a> to replace key input. I like this keyboard because it can hide easily and not take up any screen real estate when you need it.</p>
<p>If anyone reading this needs the driver for their 3M MT7 touch panel, or If I ever need the link for the driver, here is that too: <a href="http://solutions.3m.com/wps/portal/3M/en_US/TouchSystems/TouchScreen/CustomerSupport/TouchScreenDrivers/">http://solutions.3m.com/wps/portal/3M/en_US/TouchSystems/TouchScreen/CustomerSupport/TouchScreenDrivers/</a></p>
<p>In addition to the utilities above, I also Installed <a href="http://xbmc.org/" target="_blank">XBMC</a>, which acts as a perfect picture displaying software. and with UPNP/DNLA I can control it from my phone, and even wirelessly display photos from my phone on it via my network.</p>
<p>If you want to see higher resolution copies of any of the photos in this article check out the Picasa gallery for it <a href="https://picasaweb.google.com/mrlanrat/PictureFrameTabletPC#" target="_blank">HERE</a>.</p>
<img src="http://feeds.feedburner.com/~r/lanrat/~4/ZzELy2IVTOQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lanrat.com/picture-frame-tablet-pc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lanrat.com/picture-frame-tablet-pc/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=picture-frame-tablet-pc</feedburner:origLink></item>
		<item>
		<title>Logitech Revue Unboxing</title>
		<link>http://feedproxy.google.com/~r/lanrat/~3/knTrPJoXpF0/</link>
		<comments>http://lanrat.com/logitech-revue-unboxing/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 04:50:44 +0000</pubDate>
		<dc:creator>mrlanrat</dc:creator>
				<category><![CDATA[photos]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[unboxing]]></category>

		<guid isPermaLink="false">http://lanrat.com/?p=175</guid>
		<description><![CDATA[Google was nice enough to provide me with a free Google TV as part of their 10,000 free Google TVs for developers. Below is the unboxing, see the item descriptions. This device looks promising, However I felt like it was lacking. But when Google Released the android app market for it in 2011 things should be much [...]]]></description>
			<content:encoded><![CDATA[<p>Google was nice enough to provide me with a free <a href="http://www.google.com/tv/" target="_blank">Google TV</a> as part of their 10,000 free Google TVs for developers. Below is the unboxing, see the item descriptions.</p>
<div class='aligncenter' ><br />
<div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553284807844608498" title="The Unopened box" ><img src="http://lh4.ggpht.com/-PKn2Zi4Ayvo/TRE7HDQmufI/AAAAAAAABgI/2wRiS4yZDig/w500/IMAG0039.jpg" alt="IMAG0039.jpg" title="The Unopened box" width="500" /></a><p class="wp-caption-text">The Unopened box</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553284812551926178" title="Back of the box" ><img src="http://lh5.ggpht.com/-Q-eFXV1ZQrQ/TRE7HUy6saI/AAAAAAAABgM/zy7e0J_d12Y/w500/IMAG0040.jpg" alt="IMAG0040.jpg" title="Back of the box" width="500" /></a><p class="wp-caption-text">Back of the box</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553284818904960642" title="Removing the top of the box relieves the keyboard." ><img src="http://lh6.ggpht.com/-xhyIWkr5a9Q/TRE7HsdmToI/AAAAAAAABgQ/MxkAoLxCntI/w500/IMAG0042.jpg" alt="IMAG0042.jpg" title="Removing the top of the box relieves the keyboard." width="500" /></a><p class="wp-caption-text">Removing the top of the box relieves the keyboard.</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553284821999664770" title="Removing the keyboard shows you the actual Revue itself." ><img src="http://lh4.ggpht.com/-HbFjaUaSxA4/TRE7H3_bvoI/AAAAAAAABgU/H2vHEYpsHMw/w500/IMAG0043.jpg" alt="IMAG0043.jpg" title="Removing the keyboard shows you the actual Revue itself." width="500" /></a><p class="wp-caption-text">Removing the keyboard shows you the actual Revue itself.</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553284829111139618" title="All of the contents of the Logitech Revue boxRevue, Keyboard/mouse, HDMI cable, Bower cables, IR Blaster, and a welcome card." ><img src="http://lh3.ggpht.com/-E-5ftgCr-QI/TRE7ISe8PSI/AAAAAAAABgY/q_-K8vOuaqU/w500/IMAG0044.jpg" alt="IMAG0044.jpg" title="All of the contents of the Logitech Revue boxRevue, Keyboard/mouse, HDMI cable, Bower cables, IR Blaster, and a welcome card." width="500" /></a><p class="wp-caption-text">All of the contents of the Logitech Revue boxRevue, Keyboard/mouse, HDMI cable, Bower cables, IR Blaster, and a welcome card.</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553285323160628034" title="The IR Blaster.The Revue also has 3 IR blasters built into it." ><img src="http://lh3.ggpht.com/-HGDi8fhSIUw/TRE7lC9hK0I/AAAAAAAABgg/rgRnZ1GdEMw/w500/IMAG0045.jpg" alt="IMAG0045.jpg" title="The IR Blaster.The Revue also has 3 IR blasters built into it." width="500" /></a><p class="wp-caption-text">The IR Blaster.The Revue also has 3 IR blasters built into it.</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553285328345826034" title="Enjoy!" ><img src="http://lh4.ggpht.com/-Kjjvr5JIFPw/TRE7lWRxAvI/AAAAAAAABgk/fiCWtuPLzew/w500/IMAG0046.jpg" alt="IMAG0046.jpg" title="Enjoy!" width="500" /></a><p class="wp-caption-text">Enjoy!</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553285332159374626" title="The remote and Revue" ><img src="http://lh3.ggpht.com/-k3UOM0S2Xvo/TRE7lke_JSI/AAAAAAAABgo/xmuEHtFDUws/w500/IMAG0047.jpg" alt="IMAG0047.jpg" title="The remote and Revue" width="500" /></a><p class="wp-caption-text">The remote and Revue</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553285340891357362" title="Rear ports.(from left to right)Pair button, HDMI in, 2x IR out, 2x USB, network, HDMI out, Optical audio out, power." ><img src="http://lh4.ggpht.com/-UnS9UlHsWbQ/TRE7mFA2oLI/AAAAAAAABgs/p27vgCl9ixU/w500/IMAG0048.jpg" alt="IMAG0048.jpg" title="Rear ports.(from left to right)Pair button, HDMI in, 2x IR out, 2x USB, network, HDMI out, Optical audio out, power." width="500" /></a><p class="wp-caption-text">Rear ports.(from left to right)Pair button, HDMI in, 2x IR out, 2x USB, network, HDMI out, Optical audio out, power.</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553292698150394050" title="The Application menu" ><img src="http://lh5.ggpht.com/-jzC-mE9R0Gs/TRFCSU8GWMI/AAAAAAAABhk/32DaGvUJx9Y/w500/IMAG0050.jpg" alt="IMAG0050.jpg" title="The Application menu" width="500" /></a><p class="wp-caption-text">The Application menu</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553292697099081874" title="The Twitter appVery basic" ><img src="http://lh3.ggpht.com/-wAOzBnH6zO0/TRFCSRBcmJI/AAAAAAAABho/LF8vzVTg_a0/w500/IMAG0051.jpg" alt="IMAG0051.jpg" title="The Twitter appVery basic" width="500" /></a><p class="wp-caption-text">The Twitter appVery basic</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553292704835718226" title="OS Version/Info" ><img src="http://lh4.ggpht.com/-9OiOlFG996c/TRFCSt2ATFI/AAAAAAAABhs/oOv2SjRhlJI/w500/IMAG0052.jpg" alt="IMAG0052.jpg" title="OS Version/Info" width="500" /></a><p class="wp-caption-text">OS Version/Info</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553292708922990402" title="The Chrome web browser with search" ><img src="http://lh4.ggpht.com/-MMNzR6RD0ak/TRFCS9EfH0I/AAAAAAAABhw/rc-va0UHiys/w500/IMAG0053.jpg" alt="IMAG0053.jpg" title="The Chrome web browser with search" width="500" /></a><p class="wp-caption-text">The Chrome web browser with search</p></div> <div class="wp-caption alignnone" style="width: 510px"><a href="https://picasaweb.google.com/112152067107896113085/LogitechRevueUnboxing#5553292716234299778" title=";)Yes, this is real." ><img src="http://lh3.ggpht.com/-LpDewWZBSiY/TRFCTYTo2YI/AAAAAAAABmU/WK6ZG70INcM/w500/IMAG0054.jpg" alt="IMAG0054.jpg" title=";)Yes, this is real." width="500" /></a><p class="wp-caption-text">;)Yes, this is real.</p></div> </div><div class='clear'></div>
<p>This device looks promising, However I felt like it was lacking. But when Google Released the android app market for it in 2011 things should be much different. If you watched the entire sideshow you will notice that I already started tinkering with it <img src='http://lanrat.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/lanrat/~4/knTrPJoXpF0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lanrat.com/logitech-revue-unboxing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lanrat.com/logitech-revue-unboxing/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=logitech-revue-unboxing</feedburner:origLink></item>
		<item>
		<title>PHPRepo</title>
		<link>http://feedproxy.google.com/~r/lanrat/~3/aZcbAHseweU/</link>
		<comments>http://lanrat.com/phprepo/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 04:10:45 +0000</pubDate>
		<dc:creator>mrlanrat</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://lanrat.com/?p=145</guid>
		<description><![CDATA[This is about a piece of software I wrote over a year ago to fit a need I had at the time. It probably will not receive any updates but I have released the source to anyone is free to do as they please with it. Background PHPRepo is a PHP CMS for managing Debian [...]]]></description>
			<content:encoded><![CDATA[<p>This is about a piece of software I wrote over a year ago to fit a need I had at the time. It probably will not receive any updates but I have released the source to anyone is free to do as they please with it.</p>
<h1>Background</h1>
<p>PHPRepo is a PHP CMS for managing Debian package repositories. A while ago I wanted to start my own repository for some of my own packages, so I looked for an easy way to do this. I found none. At the time the only way to run and manage a Debian package repository was through apt at the command line, and since at the time I was learning PHP I decided to write my own software to fill this void. Thus I created PHPRepo. PHPRepo has very minimal requirements and can work alongside an existing repository that is managed with apt.</p>
<h1>Installation</h1>
<p>Installation is as easy as it gets for a PHP app. There are no databases to configure, as it used the Debian repository files as its database. Simply upload the phprepo files to the root of your web-server and edit the config file with a user name and password you wish to use.</p>
<p>Also, if you want the ability to manage the repository in addition to view it in your web browser then make sure the user on your server that the web-server is running under has read and write permission to the repository files.</p>
<h1>Screenshot Tour</h1>
<p>My screenshots are for a repository that already has a few packages in it. If you are making a repository from scratch you will not be able to see as much.</p>
<p><img src="http://lh3.ggpht.com/_55LVV0RexIc/TREozH5tbII/AAAAAAAABek/vm929nAomBI/s640/main_screen.png" alt="PHPrepo main screen" /></p>
<p>Above is the main screen. You can see a tree list structure of all of your repositories, components, and architectures.</p>
<p><img src="http://lh3.ggpht.com/_55LVV0RexIc/TREo4iEDw8I/AAAAAAAABes/3VnVxxDK7J4/s640/repo-list.png" alt="PHPrepo repository list" /></p>
<p>Above you can see the list of all repositorys on the system.</p>
<p><img src="http://lh4.ggpht.com/_55LVV0RexIc/TREo4pCAHZI/AAAAAAAABew/Ccd5Dc5RetU/s640/repo-view.png" alt="PHPRepo repository detail" /></p>
<p>Clicking on a repository brings you to the repository page; shown above. It will list all of the packages in the repository.</p>
<p><img src="http://lh3.ggpht.com/_55LVV0RexIc/TREo4wOmwOI/AAAAAAAABe0/bGIfVuRvwdw/s640/search.png" alt="PHPrepo search" /></p>
<p>One very nice feature is the ability to search from a web browser.</p>
<p><img src="http://lh4.ggpht.com/_55LVV0RexIc/TREoyxjX0BI/AAAAAAAABeY/cF5-xGmJcjs/s640/add.png" alt="PHPrepo add upload" /></p>
<p>If you choose to use PHPRepo to manager your repository, the above screen will allow you to add/upload packages to your repository. Simply select the file, distribution, and component. If the distribution or component that you want does not exist you can create it. All details about the package such as name, arch, etc are read from the deb file upon upload. Its like magic!</p>
<p><img src="http://lh5.ggpht.com/_55LVV0RexIc/TREozX9aCGI/AAAAAAAABeo/jj2mQJgfYDo/s640/pkg-view.png" alt="PHPRepo package view" /></p>
<p>If you click on a package you will be taken to the screen above. This page lets you view the details of the package. You can also manually downland the deb file, or a Maemo .install file. You can also manage the file by deleting its entry in the repository or by deleting the entry and remove the actual file from the server.</p>
<p><img src="http://lh4.ggpht.com/_55LVV0RexIc/TREoy7RrQdI/AAAAAAAABec/tWAKNjZZiY0/s640/del.png" alt="PHPRepo Delete file from repo" /></p>
<p>If you choose to delete a file you will see the above screen asking if you are sure.</p>
<p><img src="http://lh5.ggpht.com/_55LVV0RexIc/TREozBgrdtI/AAAAAAAABeg/IdrWgNJ8yco/s640/del-repo.png" alt="PHPrepo Delete entire repository" /></p>
<p>The above screen is for deleting an entire repository, and all packages associated with it.</p>
<p>Conclusion</p>
<p>As stated before, I made this program over a year ago to fill a void. And I was rather surprised that nothing like this already existed. In any case the program and its source code can be downloaded from its project hosted at Google Code.</p>
<p><strong><a href="http://code.google.com/p/phprepo/" target="_blank">PHPRepo at Google Code</a></strong></p>
<img src="http://feeds.feedburner.com/~r/lanrat/~4/aZcbAHseweU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lanrat.com/phprepo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lanrat.com/phprepo/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=phprepo</feedburner:origLink></item>
		<item>
		<title>Wifi Radar</title>
		<link>http://feedproxy.google.com/~r/lanrat/~3/-rXkgfV3n58/</link>
		<comments>http://lanrat.com/wifi-radar/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 03:58:02 +0000</pubDate>
		<dc:creator>mrlanrat</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[antenna]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://lanrat.com/?p=134</guid>
		<description><![CDATA[This is a highly directional super sensitive 802.11 G Wifi antenna. It was created using a used Direct TV satellite dish, weather proof container, a Hawking high-gain wireless antenna and some scrap parts. It is not a radar, it is just a cool name for this project. The Idea The Hawking wireless card/antenna I used [...]]]></description>
			<content:encoded><![CDATA[<p>This is a highly directional super sensitive 802.11 G Wifi antenna. It was created using a used Direct TV satellite dish, weather proof container, a Hawking high-gain wireless antenna and some scrap parts. It is not a radar, it is just a cool name for this project. <img src='http://lanrat.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h1>The Idea</h1>
<p>The Hawking wireless card/antenna I used in this is already directional, but this gave it even more of a boost.</p>
<p>To get the most gain and to make the antenna the most effective use the<a href="http://en.wikipedia.org/wiki/Parabola" target="_blank"> parabolic equation</a> to find the location of the focus in both the X and Y directions, this is where you want the wireless antenna to be, so that it will receive the strongest signal from the most angles.</p>
<p>The antenna will be enclosed in a weather proof container I for for free as a sample from <a href="http://www.okwenclosures.com/" target="_blank">OKW Enclosures</a>.</p>
<h1>The Construction</h1>
<p>I used a rack adapter for some old ethernet switch to attach the enclosure to the end of the direct TV dish.</p>
<p><img src="http://lh5.ggpht.com/_55LVV0RexIc/TQ62mrtIfmI/AAAAAAAABcI/ppCUNlreKXM/s400/IMAG0128.jpg" alt="Container on Direct Tv dish" /><img src="http://lh4.ggpht.com/_55LVV0RexIc/TQ62f48uYoI/AAAAAAAABcE/TRwBxt6sasY/s400/IMAG0127.jpg" alt="Enclosure on dish" /><img src="http://lh3.ggpht.com/_55LVV0RexIc/TQ63KP4IRwI/AAAAAAAABck/vQ5uQdkdBXc/s400/IMAG0126.jpg" alt="weather proof enclosure on dish." /></p>
<p>I mounted the wireless card inside the enclosure merely by adding a screw head for it to sit on.</p>
<p><img src="http://lh6.ggpht.com/_55LVV0RexIc/TQ62sXiSwTI/AAAAAAAABcM/7mUF0VOLJRA/s400/IMAG0129.jpg" alt="Antenna and top of enclosure " /><img src="http://lh3.ggpht.com/_55LVV0RexIc/TQ63ChkqUnI/AAAAAAAABcg/_pb9CksynZw/s400/IMAG0134.jpg" alt="Screw head ready for mounting" /><img src="http://lh4.ggpht.com/_55LVV0RexIc/TQ624S1EjII/AAAAAAAABcU/Rri7ZgZYCuc/s400/IMAG0132.jpg" alt="antenna mounted" /></p>
<p>I added a hole in the back for a usb cable to fit through and then sealed it up with hot-glue. Below you can see the finished product.</p>
<p><img src="http://lh4.ggpht.com/_55LVV0RexIc/TQ63Qnh7HkI/AAAAAAAABco/NSyajXULFSo/s400/IMAG0131.jpg" alt="Final product" /><img src="http://lh3.ggpht.com/_55LVV0RexIc/TQ63WG0YLtI/AAAAAAAABcs/xz7EloAyGBk/s400/IMAG0023.jpg" alt="Completed wifi satellite dish with usb cable" /><img src="http://lh3.ggpht.com/_55LVV0RexIc/TQ63bifCP3I/AAAAAAAABcw/xEZ7gSD612U/s400/IMAG0036.jpg" alt="Dish-in-a-box" /></p>
<h1>Results</h1>
<p>I used<a href="http://www.metageek.net/products/inssider" target="_blank"> merageek&#8217;s inSSIDer 2</a> to test the gain of the antenna. inSSIDer 2 is a much needed replacement of the old war-driving software network stumbler. Comparing the signal strength of both using my new antenna and not I got about 10db of gain. I was hoping for more but it is still nice. And even with only 10db of gain, I was able to go from picking up 2 wireless networks to at least 20, depending on which way I aimed the antenna.</p>
<p>I would also like to mention another piece of software called <a href="http://www.ekahau.com/products/heatmapper/overview.html" target="_blank">Ekahau HeatMapper</a>. While this software is not useful with this antenna design it can be useful making out signal strength of a building or neighborhood. Its fun to play with.</p>
<img src="http://feeds.feedburner.com/~r/lanrat/~4/-rXkgfV3n58" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lanrat.com/wifi-radar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lanrat.com/wifi-radar/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=wifi-radar</feedburner:origLink></item>
		<item>
		<title>Android WiFi Sniffing</title>
		<link>http://feedproxy.google.com/~r/lanrat/~3/MkQuABzB6MA/</link>
		<comments>http://lanrat.com/android-wifi-sniffing/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 04:22:46 +0000</pubDate>
		<dc:creator>mrlanrat</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[hacks]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://lanrat.com/?p=161</guid>
		<description><![CDATA[Android devices, while unable to put their wireless cards into monitor mode, can still be used to sniff wireless traffic. they are just limited to traffic that goes through them. So to get data to pass through your android device other than its own data we need to have it act as a rogue access point. A rogue access point is an [...]]]></description>
			<content:encoded><![CDATA[<p>Android devices, while unable to put their wireless cards into monitor mode, can still be used to sniff wireless traffic. they are just limited to traffic that goes through them. So to get data to pass through your android device other than its own data we need to have it act as a rogue access point. A rogue access point is an AP that you will control and have your &#8220;clients&#8221; or *cough&#8221;victims*cough* connect to. android 2.2 has this ability to act as a mobile hotspot built in, 2.1 and earlier version will need <a href="http://code.google.com/p/android-wifi-tether/" target="_blank">Wireless Tether for Root Users</a>. I actually prefer the 3rd party app the Android&#8217;s built in ability as it offers many more features. And in case this was not obvious from the start, you will need root to preform anything in this article.</p>
<p>The trick to make clients connect to your rogue AP is how you name it, If you are at *bucks then naming it &#8220;*bucks free wifi&#8221; might be a good idea, however *bucks and many other WiFi hotspots go through &#8220;AT&amp;T&#8217;s global WiFi network&#8221; which is named &#8220;att wifi&#8221;, so naming your SSID &#8220;att wifi&#8221; would be even better, because you will get new conections, and you may even be able to have some existing connections re-conect to you if your signal is stronger, and it probaly will be because you will be near everybody else vs. their AP somewhere in the back room.</p>
<h1>Capturing Packets the Easy Way</h1>
<p>If you dont want to mother messing around with any command lines then luckaly there are some nice apps that can handle packet capturing for android. First I want to mention<a href="http://sites.google.com/site/androidarts/packet-sniffer" target="_blank"> Packet Sniffer</a>. Packet Sniffer is a very crude app (and is in desperate need of a GUI overhaul), but is does offer the ability to sniff bluetooth, however I had no luck getting it to work.</p>
<p>The program that I want to praise is <a href="http://www.appbrain.com/app/shark-for-root/lv.n3o.shark" target="_blank">Shark for root</a>. Shark utilizes tcpdump to save .pcap files of the traffic going through the phone, and it works flawlessly. the author even wrote<a href="http://www.appbrain.com/app/shark-reader/lv.n3o.sharkreader" target="_blank"> Shark Reader</a> to view the .pcap fiels on android, however you will most likely want to view them on <a href="http://www.wireshark.org/" target="_blank">Wireshark </a>on a desktop.</p>
<p><img src="http://lh3.ggpht.com/_55LVV0RexIc/TLuZsTCOwPI/AAAAAAAABaM/LAKwZATQHNo/s400/snap20101017_174337.png" alt="Shark Reader File Selector" /><img src="http://lh4.ggpht.com/_55LVV0RexIc/TLuZsrqOIpI/AAAAAAAABaQ/mPA2_oqZrKs/s400/snap20101017_174413.png" alt="Shark Reader Packets" /><img src="http://lh3.ggpht.com/_55LVV0RexIc/TLuZsnuVFBI/AAAAAAAABaU/dJqxRl60YVQ/s400/snap20101017_174435.png" alt="Shark Reader Dump" /><img src="http://lh4.ggpht.com/_55LVV0RexIc/TLuZs4s1ACI/AAAAAAAABaY/kn1sJ7RTIW8/s400/snap20101017_174516.png" alt="Shark Reader header data" /></p>
<h1>Capturing Packets the Fun Way</h1>
<p>If you installed Debian using<a href="http://lanrat.com/install-debian-on-android/" target="_blank"> this article</a>, or some other method then you can use many more Linux tools. Once you get the traffic you want going through your phone you can install and run any Debian app you want. I will cover two.</p>
<h2>Dsniff</h2>
<p>Install:</p>
<pre class="brush: bash; title: ; notranslate">apt-get install dsniff</pre>
<p>Running:</p>
<p><img src="http://lh3.ggpht.com/_55LVV0RexIc/TLuXaYYG-kI/AAAAAAAABaE/dldATAGsL9U/s400/snap20100910_234038.png" alt="Dsniff Running on Android" /></p>
<p>In the above screenshot you can see dsniff capturing my username (root) and password (secret) when I logged into my router at 192.168.1.1 (I changed my password since then)</p>
<h2>Ettercap</h2>
<p>Ettercap is quite a bit more advanced that dsniff, and I will not teach you how to use it in this guide, you can learn more <a href="http://ettercap.sourceforge.net/" target="_blank">here</a>.</p>
<p>Install:</p>
<pre class="brush: bash; title: ; notranslate">apt-get install ettercap</pre>
<p>Start:</p>
<pre class="brush: bash; title: ; notranslate">ettercap -C</pre>
<p><img src="http://lh3.ggpht.com/_55LVV0RexIc/TL0Zg2aqE5I/AAAAAAAABak/e4wDehs6T6g/s400/snap20101018_210634.png" alt="Ettercap on Android" /></p>
<p>The -C option starts it in the TUI mode. (Text user interface). Ettercap can do everything dnsiff can, plus more, it was built for man-in-the-middle attacks, much like the one we are doing here with android.</p>
<h1>Conclusion</h1>
<p>Now that more and more people are getting smartphones, this type of attack is becoming easier to pull off. And with everybody&#8217;s wireless devices always looking to connect to the global &#8220;linksys&#8221; or &#8220;NETGEAR&#8221; this becomes very practical. Anything that goes unencrypted over the air-waves could potentially be seen by others, even the inconspicuous guy in the corner plating on his phone <img src='http://lanrat.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>And in case this was not obvious form the start, DON&#8217;T BE AN IDIOT. This article was written for information purposes, anything stupid you may do with this information is your own doing not mine.</p>
<h1>Update 1/04/2012:</h1>
<p>Recently there has been an explosion of arp mitm attack type programs for android (all require root) Some good ones are:</p>
<ul>
<li><a href="https://market.android.com/details?id=net.rclemons.arpspoof">Arpspoof</a></li>
<li><a href="http://droidsheep.de/">DroidSheep</a></li>
<li><a href="https://market.android.com/details?id=net.ponury.piik">PiiK</a></li>
<li><a href="https://market.android.com/details?id=com.nbl.pixie">Pixie</a></li>
<li><a href="http://forum.xda-developers.com/showthread.php?t=1282900">WifiKill</a></li>
<li><a href="https://market.android.com/details?id=uk.digitalsquid.netspoofer">Network Spoofer</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/lanrat/~4/MkQuABzB6MA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://lanrat.com/android-wifi-sniffing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://lanrat.com/android-wifi-sniffing/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=android-wifi-sniffing</feedburner:origLink></item>
	</channel>
</rss>

