<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Didier Stevens &#187; Hardware</title>
	<atom:link href="http://blog.didierstevens.com/category/hardware/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.didierstevens.com</link>
	<description>(blog 'DidierStevens)</description>
	<lastBuildDate>Sat, 04 Feb 2012 06:57:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.didierstevens.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Didier Stevens &#187; Hardware</title>
		<link>http://blog.didierstevens.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.didierstevens.com/osd.xml" title="Didier Stevens" />
	<atom:link rel='hub' href='http://blog.didierstevens.com/?pushpress=hub'/>
		<item>
		<title>Quickpost: CCTV Over UTP</title>
		<link>http://blog.didierstevens.com/2011/08/22/quickpost-cctv-over-utp/</link>
		<comments>http://blog.didierstevens.com/2011/08/22/quickpost-cctv-over-utp/#comments</comments>
		<pubDate>Mon, 22 Aug 2011 00:04:13 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Quickpost]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2754</guid>
		<description><![CDATA[I knew it was possible to transmit a composite video signal over UTP, but I always assumed that this was a kludge: that the preferred way was to use RG59 cable. But recently I discovered that UTP cabling is often used in professional CCTV installations, because it offers the same benefits of structured cabling (like standardization [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2754&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I knew it was possible to transmit a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Composite_video">composite video</a> signal over <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Unshielded_twisted_pair">UTP</a>, but I always assumed that this was a kludge: that the preferred way was to use <a href="https://secure.wikimedia.org/wikipedia/en/wiki/RG-59">RG59</a> cable.</p>
<p>But recently I discovered that UTP cabling is often used in professional CCTV installations, because it offers the same benefits of <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Structured_cabling">structured cabling</a> (like standardization and cost reduction).</p>
<p>To send the video signal over UTP, you need video <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Balun">baluns</a> (one at each end of the pair). It is not transmitted via Ethernet, but the video signal is transformed to be send over a pair. Since CAT5 cable has 4 pairs, you can send 4 video signals over 1 cable. That&#8217;s what I&#8217;ve done at home, to limit the number of cables I had to install.</p>
<p><img class="alignnone size-full wp-image-2760" title="20110811-221506" src="http://didierstevens.files.wordpress.com/2011/08/20110811-221506.png" alt="" width="429" height="491" /></p>
<p>You can also use some pairs in the CAT cable to provide power to the CCTV camera (typically 12V) or to transmit audio (when you add a microphone to your CCTV camera). Video baluns are passive components, they don&#8217;t need power to operate. I&#8217;ve used baluns to cover distances of about 30m, and I don&#8217;t notice a difference in the quality of the video signal (compared to a video signal transmitted over RG59 cable).<br />
Most baluns advertise distances of several hundred meters.</p>
<p>I was also able to transmit a video signal without noticeable quality degradation over an untwisted pair of 10m.</p>
<hr />
<p><a href="http://blog.didierstevens.com/2007/11/01/announcing-quickposts/">Quickpost info</a></p>
<hr />
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2754/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2754/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2754/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2754&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/08/22/quickpost-cctv-over-utp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2011/08/20110811-221506.png" medium="image">
			<media:title type="html">20110811-221506</media:title>
		</media:content>
	</item>
		<item>
		<title>My Home Surveillance System: Some Details</title>
		<link>http://blog.didierstevens.com/2011/08/05/my-home-surveillance-system-some-details/</link>
		<comments>http://blog.didierstevens.com/2011/08/05/my-home-surveillance-system-some-details/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 11:02:27 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2732</guid>
		<description><![CDATA[I use Phidgets USB interfaces and sensors for my home surveillance system. For the moment, my home surveillance system consists of Python programs running on a PC, but once I&#8217;m past the experimental phase, I will migrate this to a dedicated controller. I particularly like the PIR motion sensor Phidget, because it gives you an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2732&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://www.phidgets.com">Phidgets</a> USB interfaces and sensors for my <a href="http://blog.didierstevens.com/2011/07/29/my-home-surveillance-system/">home surveillance system</a>. For the moment, my home surveillance system consists of Python programs running on a PC, but once I&#8217;m past the experimental phase, I will migrate this to a dedicated controller.<br />
I particularly like the <a href="http://www.phidgets.com/products.php?category=5&amp;product_id=1111">PIR motion sensor Phidget</a>, because it gives you an analogue output. When there&#8217;s no movement, the output will be around 500. With movement, the output value will oscillate around 500, with larger amplitudes for larger movements.This allows me to differentiate between small and large movements, and to eliminate false positives which are only of a short duration. If you have to run wires for many meters to connect your analogue sensors to the interface module, I recommend you use shielded wires and connect the shield to the ground of the interface module. This allowed me to eliminate noise I had on the readings.</p>
<p>Another plus is that the sensors are powered by the interface module. So if you power the PC (or micro-controller) with a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Uninterruptible_power_supply">UPS</a>, your home surveillance system will also operate when there&#8217;s a power cut.</p>
<p>To take pictures when an event occurs (like ringing the doorbell), I use an IP camera. Take a look at my <a href="http://blog.didierstevens.com/2011/06/06/update-vs-py/">vs.py</a> program to see how that&#8217;s done.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2732/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2732/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2732/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2732&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/08/05/my-home-surveillance-system-some-details/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>
	</item>
		<item>
		<title>My Home Surveillance System</title>
		<link>http://blog.didierstevens.com/2011/07/29/my-home-surveillance-system/</link>
		<comments>http://blog.didierstevens.com/2011/07/29/my-home-surveillance-system/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 10:21:06 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2727</guid>
		<description><![CDATA[Aside from having installed my own Home Automation and CCTV system, I also designed and installed a surveillance system at home. This post will discuss some of the design decisions I took. Some of them are different from more conventional alarm systems. The surveillance system has many sensors in and around the house (passive infrared [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2727&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Aside from having installed my own Home Automation and CCTV system, I also designed and installed a surveillance system at home. This post will discuss some of the design decisions I took. Some of them are different from more conventional alarm systems.</p>
<p>The surveillance system has many sensors in and around the house (<a href="https://secure.wikimedia.org/wikipedia/en/wiki/Passive_infrared_sensor">passive infrared (PIR) sensors</a>, <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Reed_switch">reed switches</a>, temperature sensors, …) and can take several actions, like starting sirens, turning on lights, sending text messages, making phone calls, taking pictures, … Which  actions are taken depend on the alert level that was set.</p>
<p>First design decision : this system is designed to deter common burglars, not burglars with inside knowledge of the system.</p>
<p>Second design decision is that the system will log all events coming from sensors, regardless of triggering an alarm.</p>
<p>Third design decision is that there is no alarm delay: if a sensor triggers that would cause the alarm to sound, then the alert sounds immediately. There is no delay or pre-alarm phase. I believe an immediate alarm has a greater deterrent effect. With this design, it&#8217;s best to avoid false-positives as much as possible.</p>
<p>Fourth design decision : use analogue PIR detectors, not binary PIR detectors. A classic (binary) PIR detector will just tell you that movement occurred. With an analogue PIR detector, you get the amplitude and duration of the movement, which is useful information to weed out false alarms, or ignore movement from small pets.</p>
<p>Now on to some interesting or unusual use cases.</p>
<p>I have a sensor on the doorbell too. When someone rings the doorbell, the event is logged and the system takes pictures of the front door. I&#8217;ve seen some interesting events since this doorbell sensor was installed. For example, I expected a package to be delivered after 18:00. The sender had instructed our national courier company to deliver the package after 18:00. You can probably guess they didn&#8217;t follow the instructions. I have evidence they attempted to deliver well before 18:00, and what&#8217;s even worse, they left a note saying they had passed around 18:15…</p>
<p>Like modern, commercial alarm systems, I have several alarm zones. For example, I can set the alarm level for when we go to bed. In this mode, the alarm will go off if there is movement inside the house, except in the bedroom and nearby rooms/hall. But come morning, you have to remember to switch off the alarm before you leave the bedroom.<br />
Not with my system. If my system detects movement in the protected zone, and if there has been movement in the bedroom zone just before, it will disable the alarm in stead of sounding the alarm. So no false-alarms triggered in my house by sleepy-heads.</p>
<p>Outside lights that switch on when movement is detected are supposed to deter burglars, but they are so common that I believe the deterrent effect is negligible. My system turns on some lights <strong>inside</strong> the house when it detects movement outside while it is dark and there is no movement inside. I believe this has a much greater deterrent effect, because it&#8217;s so uncommon. And it will also take pictures. I now have a large picture collection of neighborhood cats in my back garden <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>I&#8217;ve recently installed wireless interconnected smoke alarms. I will connect one smoke alarm to my home surveillance system, so that my system is aware when smoke alarms trigger and can act appropriately.</p>
<p>Testing all these functions is fun. I&#8217;m &#8221; testing in production &#8220;, you can imagine that I don&#8217;t have a second home that I can use as a test system.<br />
So sometime you can see me run around the house like a madman, but I&#8217;m just testing a new feature I programmed… <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2727/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2727/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2727/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2727/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2727/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2727/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2727/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2727/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2727&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/07/29/my-home-surveillance-system/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>
	</item>
		<item>
		<title>Quickpost: Blocking and Detecting a Teensy Dropper</title>
		<link>http://blog.didierstevens.com/2011/07/14/quickpost-blocking-and-detecting-a-teensy-dropper/</link>
		<comments>http://blog.didierstevens.com/2011/07/14/quickpost-blocking-and-detecting-a-teensy-dropper/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 09:58:16 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Forensics]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2722</guid>
		<description><![CDATA[A Teensy dropper presents itself as a keyboard (HID) to a PC and this is how it can be used to drop files even if you don&#8217;t allow removable drives. You can prevent the installation of new HIDs, but this is an issue when you need to replace keyboards or mice. Irongeek has a good [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2722&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A Teensy dropper presents itself as a keyboard (<a href="https://secure.wikimedia.org/wikipedia/en/wiki/Human_interface_device">HID</a>) to a PC and this is how it can be used to <a href="http://blog.didierstevens.com/2011/07/13/teensy-pdf-dropper-part-1/">drop files</a> even if you don&#8217;t allow removable drives.</p>
<p>You can prevent the installation of new HIDs, but this is an issue when you need to replace keyboards or mice. Irongeek has a <a href="http://www.irongeek.com/i.php?page=security/plug-and-prey-malicious-usb-devices#3._Locking_down_Windows_and_Linux_against_Malicious_USB_devices">good write-up</a>.</p>
<p>Connected HIDs leave forensics traces in the registry, take a look under key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\</p>
<p>Connecting a Teensy leaves these entries:</p>
<p>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_16c0&amp;Pid_0482\6&amp;31417f27&amp;0&amp;3<br />
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_16c0&amp;Pid_0482&amp;MI_00\7&amp;becc88c&amp;0&amp;0000<br />
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_16c0&amp;Pid_0482&amp;MI_01\7&amp;becc88c&amp;0&amp;0001<br />
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_16c0&amp;Pid_0482&amp;MI_02\7&amp;becc88c&amp;0&amp;0002</p>
<hr />
<p><a href="http://blog.didierstevens.com/2007/11/01/announcing-quickposts/">Quickpost info</a></p>
<hr />
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2722/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2722/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2722/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2722&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/07/14/quickpost-blocking-and-detecting-a-teensy-dropper/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>
	</item>
		<item>
		<title>Teensy PDF Dropper Part 1</title>
		<link>http://blog.didierstevens.com/2011/07/13/teensy-pdf-dropper-part-1/</link>
		<comments>http://blog.didierstevens.com/2011/07/13/teensy-pdf-dropper-part-1/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 21:40:52 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[PDF]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2714</guid>
		<description><![CDATA[Pentesters need to drop files on targets. If a box is not connected to the Internet, and doesn&#8217;t accept removable storage, they need to come up with some tricks. Inputting the file via the keyboard is an option, but typing several millions of bytes is not. This needs automation. Irongeek uses a Teensy micro-controller to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2714&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Pentesters need to drop files on targets. If a box is not connected to the Internet, and doesn&#8217;t accept removable storage, they need to come up with some tricks.</p>
<p>Inputting the file via the keyboard is an option, but typing several millions of bytes is not. This needs automation.</p>
<p>Irongeek uses a <a href="http://www.pjrc.com/teensy/">Teensy</a> micro-controller to <a href="http://www.irongeek.com/i.php?page=security/programmable-hid-usb-keystroke-dongle">achieve this</a>. My solution is a variation on this. If you need to drop a binary file, you need to find a way to convert the typed ASCII to bytes. There&#8217;s a solution with a debugger, but I&#8217;m using a PDF Reader.</p>
<p><img class="alignnone size-full wp-image-2715" title="20110713-232829" src="http://didierstevens.files.wordpress.com/2011/07/20110713-232829.png" alt="" width="640" height="373" /></p>
<p>It&#8217;s possible to <a href="http://blog.didierstevens.com/2009/07/01/embedding-and-hiding-files-in-pdf-documents/">create a pure ASCII PDF file that embeds a binary file</a>. Here are the steps to drop a binary file:</p>
<ul>
<li>open Notepad,</li>
<li>insert the Teensy and let it type the ASCII  PDF file into Notepad</li>
<li>save the PDF file</li>
<li>open it with a PDF Reader and save the embedded binary file</li>
</ul>
<p>Writing a program with the Arduino IDE to type an ASCII PDF file is not difficult:</p>
<p><img class="alignnone size-full wp-image-2716" title="20110713-233449" src="http://didierstevens.files.wordpress.com/2011/07/20110713-233449.png" alt="" width="687" height="569" /></p>
<p>But with the Arduino IDE, your embedded file is limited to a couple of kilobytes. Handling larger files will be described in part 2 of this post.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2714/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2714/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2714/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2714&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/07/13/teensy-pdf-dropper-part-1/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2011/07/20110713-232829.png" medium="image">
			<media:title type="html">20110713-232829</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2011/07/20110713-233449.png" medium="image">
			<media:title type="html">20110713-233449</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrating My CCTV DVR And Alarm System</title>
		<link>http://blog.didierstevens.com/2011/06/30/integrating-my-cctv-dvr-and-alarm-system/</link>
		<comments>http://blog.didierstevens.com/2011/06/30/integrating-my-cctv-dvr-and-alarm-system/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 20:49:40 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Hacking]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2706</guid>
		<description><![CDATA[I&#8217;ve designed and installed my own home automation system: it allows me to control lights and appliances, and monitor activity and environmental parameters at home. I also have a CCTV DVR with a couple of cameras around the house. Until now, these 2 systems were not linked. If a PIR sensor detected movement in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2706&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve designed and installed my own home automation system: it allows me to control lights and appliances, and monitor activity and environmental parameters at home.</p>
<p>I also have a CCTV DVR with a couple of cameras around the house.</p>
<p>Until now, these 2 systems were not linked. If a PIR sensor detected movement in the garden and later I wanted to see what caused the movement, I had to write down the timestamp and then rewind the DVR around the time the movement was detected. Not anymore. My CCTV DVR has an external IO connector, and now events detected by my alarm system are logged on my DVR. I just have to click on an event on my DVR and the video starts to play.</p>
<p>The problem I faced to achieve this integration, was the lack of documentation. There was no pinout of the external IO connector, not in the manual and not online. So I had to reverse engineer it.</p>
<p>My CCTV DVR is a DVR4L5 sold by Velleman, and is actually produced by AVTECH in Taiwan. The external IO connector is a 9 pin DSUB connector. I can use it to send 4 different alarms to the DVR. But for this to work, the alarm has first to be configured on the DVR:</p>
<p><img class="alignnone size-full wp-image-2707" title="20110630-103531" src="http://didierstevens.files.wordpress.com/2011/06/20110630-103531.png" alt="" width="617" height="300" /></p>
<p>Set the channel for which you want the alarm to register to N.C. This means Normally Closed, which is counter-intuitive, because I&#8217;m using a Normally Open alarm. When I now close the circuit between pin 1 and pin 5 of the external IO connector, an alarm event gets logged and the DVR&#8217;s buzzer alerts me. Since I don&#8217;t need that buzzer to alert me, I disable it:</p>
<p><img class="alignnone size-full wp-image-2708" title="20110630-103558" src="http://didierstevens.files.wordpress.com/2011/06/20110630-103558.png" alt="" width="617" height="315" /></p>
<p>Here is an example of alarm events logged by the CCTV DVR:</p>
<p><img class="alignnone size-full wp-image-2709" title="20110630-103625" src="http://didierstevens.files.wordpress.com/2011/06/20110630-103625.png" alt="" width="734" height="350" /></p>
<p>The DVR can also send alerts to the alarm system. It does this by closing the circuit between pins 6 and 7. For example when it detects movement filmed by one of the cameras. But from experience I know you get a lot of false positives from this motion detection. For example when a cloud moves in front of the sun, the sudden shadow can trigger the simple motion detection algorithm of the DVR. A more useful alert to send to the alarm system is the loss of video signal. The DVR can be configured to sound the alarm when it loses a video signal from one of the cameras. For example when someone tampers with your camera.</p>
<p>Some weeks after I reversed the pinout, I received a reply from AVTECH that confirmed my findings. I&#8217;m including it here:</p>
<div dir="ltr">
<table width="98%" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="10%">
<p align="center">PIN</p>
</td>
<td width="22%">
<p align="center">FUNCTION</p>
</td>
<td width="66%">
<p align="center">DESCRIPTION</p>
</td>
</tr>
<tr>
<td width="10%">
<p align="center">1~4</p>
</td>
<td width="22%"><span style="font-family:Arial;">ALARM INPUT</span></td>
<td width="66%">
<p align="left"><span style="font-family:Arial;">Connect ALARM INPUT (PIN1 – 4) and GND (PIN5) connector with wires. Once an alarm is triggered, the DVR will start recording and the buzzer will be on.</span></p>
<table width="303" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="59"><strong><span style="font-family:Arial;">PIN</span></strong></td>
<td valign="top" width="53"><strong><span style="font-family:Arial;">Alarm</span></strong></td>
<td valign="top" width="190"><strong><span style="font-family:Arial;">Corresponding video channel</span></strong></td>
</tr>
<tr>
<td width="59"><span style="font-family:Arial;">PIN 1</span></td>
<td width="53"><span style="font-family:Arial;">1</span></td>
<td width="190"><span style="font-family:Arial;">CH1</span></td>
</tr>
<tr>
<td width="59"><span style="font-family:Arial;">PIN 2</span></td>
<td width="53"><span style="font-family:Arial;">2</span></td>
<td width="190"><span style="font-family:Arial;">CH2</span></td>
</tr>
<tr>
<td width="59"><span style="font-family:Arial;">PIN 3</span></td>
<td width="53"><span style="font-family:Arial;">3</span></td>
<td width="190"><span style="font-family:Arial;">CH3</span></td>
</tr>
<tr>
<td width="59"><span style="font-family:Arial;">PIN 4</span></td>
<td width="53"><span style="font-family:Arial;">4</span></td>
<td width="190"><span style="font-family:Arial;">CH4</span></td>
</tr>
</tbody>
</table>
<p align="left"><span style="font-family:Arial;">*</span></p>
</td>
</tr>
<tr>
<td width="10%">
<p align="center">5</p>
</td>
<td width="22%"><span style="font-family:Arial;">GND</span></td>
<td width="66%"><span style="font-family:Arial;">GROUND</span></td>
</tr>
<tr>
<td width="10%">
<p align="center">6</p>
</td>
<td width="22%"><span style="font-family:Arial;">EXTERNAL ALARM COM</span></td>
<td width="66%"><span style="font-family:Arial;">Under the normal operation, COM disconnects with NO. But when any alarm is triggered, COM connects with NO.<br />
Attention: The voltage restriction is under DC24V 1A.</span></td>
</tr>
<tr>
<td width="10%">
<p align="center">7</p>
</td>
<td width="22%"><span style="font-family:Arial;">EXTERNAL ALARM NO</span></td>
<td width="66%"><span style="font-family:Arial;">Under the normal operation, COM disconnects with NO. But when any alarm is triggered, COM connects with NO.<br />
Attention: The voltage restriction is under DC24V 1A.</span></td>
</tr>
<tr>
<td width="10%">
<p align="center">8</p>
</td>
<td width="22%"><span style="font-family:Arial;">RS485-A</span></td>
<td width="66%"><span style="font-family:Arial;"> </span></td>
</tr>
<tr>
<td width="10%">
<p align="center">9</p>
</td>
<td width="22%"><span style="font-family:Arial;">RS485-B</span></td>
<td width="66%"><span style="font-family:Arial;"> </span></td>
</tr>
<tr>
<td width="10%">
<p align="center">10~11</p>
</td>
<td width="22%"><span style="font-family:Arial;">GND</span></td>
<td width="66%"><span style="font-family:Arial;">GROUND</span></td>
</tr>
</tbody>
</table>
</div>
<div>
<div><span style="color:#000000;font-size:small;"><span style="font-family:Verdana;"><br />
</span></span></div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2706/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2706&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/06/30/integrating-my-cctv-dvr-and-alarm-system/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2011/06/20110630-103531.png" medium="image">
			<media:title type="html">20110630-103531</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2011/06/20110630-103558.png" medium="image">
			<media:title type="html">20110630-103558</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2011/06/20110630-103625.png" medium="image">
			<media:title type="html">20110630-103625</media:title>
		</media:content>
	</item>
		<item>
		<title>Update: vs.py</title>
		<link>http://blog.didierstevens.com/2011/06/06/update-vs-py/</link>
		<comments>http://blog.didierstevens.com/2011/06/06/update-vs-py/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 18:46:23 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[My Software]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2680</guid>
		<description><![CDATA[I&#8217;ve updated my Python program to take surveillance pictures from IP-cameras. This updated version is multi-threaded. For each picture to retrieve, you can specify a thread. Each line in vs.config requires a 4th parameter now, the name of the thread: Hall.jpg    http://192.168.1.1/IMAGE.JPG    - Thread1 This name can be anything. If you use the same name [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2680&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve updated <a href="http://blog.didierstevens.com/2009/07/21/quickpost-more-picture-taking-with-python/">my Python program to take surveillance pictures from IP-cameras</a>. This updated version is multi-threaded. For each picture to retrieve, you can specify a thread.</p>
<p>Each line in vs.config requires a 4th parameter now, the name of the thread:</p>
<pre>Hall.jpg    http://192.168.1.1/IMAGE.JPG    -    Thread1</pre>
<p>This name can be anything. If you use the same name for different pictures, then these pictures will be retrieved sequentially by this thread.</p>
<p><a href="http://www.didierstevens.com/files/software/vs_v0_4.zip" target="_self">vs_v0_4.zip</a> (<a href="https://www.didierstevens.com/files/software/vs_v0_4.zip" target="_self">https</a>)</p>
<p>MD5: A2AFAD9E581798F1D986A0AE9DF64577</p>
<p>SHA256: C3AC4892A71DF79E3BA87714CB6323D157C7E74C838EDE81013C96DD4EAD0238</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2680/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2680/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2680/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2680/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2680/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2680/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2680/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2680/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2680&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/06/06/update-vs-py/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>
	</item>
		<item>
		<title>LockIfNotHot</title>
		<link>http://blog.didierstevens.com/2011/04/06/lockifnothot/</link>
		<comments>http://blog.didierstevens.com/2011/04/06/lockifnothot/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 08:34:39 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=2640</guid>
		<description><![CDATA[When Phidget came out with this new IR temperature sensor, a lightbulb went off. This sensor measures temperature without contact. Point it to the chair in front of your computer, and it will measure your body temperature. Or the temperature of your chair, if you&#8217;re not sitting in front of your computer. And that&#8217;s the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2640&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When Phidget came out with this new <a href="http://www.phidgets.com/products.php?product_id=1045">IR temperature sensor</a>, a lightbulb went off. This sensor measures temperature without contact. Point it to the chair in front of your computer, and it will measure your body temperature. Or the temperature of your chair, if you&#8217;re not sitting in front of your computer.</p>
<p>And that&#8217;s the idea: I wrote a program that locks your Windows workstation when you leave your chair (e.g. when the temperature drops).</p>
<span style="text-align:center; display: block;"><a href="http://blog.didierstevens.com/2011/04/06/lockifnothot/"><img src="http://img.youtube.com/vi/QynGtoxpRg4/2.jpg" alt="" /></a></span>
<p>In this screenshot, LockIfNotHot is configured to lock the workstation when the temperature drops below 25°C during 3 seconds and there is no user input during 2 seconds.</p>
<p><img class="alignnone size-full wp-image-2641" title="20110406-102457" src="http://didierstevens.files.wordpress.com/2011/04/20110406-102457.png" alt="" width="641" height="481" /></p>
<p>Once the workstation is locked, you need to provide your Windows account password to unlock it.</p>
<p>Download:</p>
<p><a href="http://www.didierstevens.com/files/software/LockIfNotHot_V0_0_1.zip">LockIfNotHot_V0_0_1.zip</a> (<a href="https://www.didierstevens.com/files/software/LockIfNotHot_V0_0_1.zip">https</a>)</p>
<p>MD5: 188BE76E0A5BCCA26A8736F8F0C4061C</p>
<p>SHA256: CA915265D3B224DF3AA95E5C59B7C0E7EDF239DF50FC1C03F2C991A8B1800AD2</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/2640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/2640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/2640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/2640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/2640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/2640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/2640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/2640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/2640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/2640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/2640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/2640/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/2640/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/2640/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=2640&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2011/04/06/lockifnothot/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2011/04/20110406-102457.png" medium="image">
			<media:title type="html">20110406-102457</media:title>
		</media:content>
	</item>
		<item>
		<title>Detecting EICAR With a .NET Micro-controller</title>
		<link>http://blog.didierstevens.com/2009/12/30/detecting-eicar-with-a-net-micro-controller/</link>
		<comments>http://blog.didierstevens.com/2009/12/30/detecting-eicar-with-a-net-micro-controller/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 22:07:51 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Entertainment]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=1901</guid>
		<description><![CDATA[I&#8217;ve been playing with a .NET Micro Framework micro-controller: the USBizi. A few of its interesting characteristics are that you program it in C# with Visual Studio and that in-circuit debugging (including single-stepping) is supported. The .NET Micro Framework has no assemblies to support USB in host mode (only guest mode), but the USBizi comes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=1901&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing with a <a href="http://en.wikipedia.org/wiki/.NET_Micro_Framework" target="_blank">.NET Micro Framework micro-controller</a>: the <a href="http://www.ghielectronics.com/product/113" target="_blank">USBizi</a>. A few of its interesting characteristics are that you program it in C# with Visual Studio and that in-circuit debugging (including single-stepping) is supported.</p>
<span style="text-align:center; display: block;"><a href="http://blog.didierstevens.com/2009/12/30/detecting-eicar-with-a-net-micro-controller/"><img src="http://img.youtube.com/vi/q9CIKXBKbmo/2.jpg" alt="" /></a></span>
<p>The .NET Micro Framework has no assemblies to support USB in host mode (only guest mode), but the USBizi comes with assemblies for host mode providing support for removable drives like USB sticks. To illustrate this feature, I wrote a program to scan the files on a USB stick for the <a href="http://www.eicar.org/anti_virus_test_file.htm" target="_blank">EICAR test file</a> and replace the content with a message appropriate for the time of the year.</p>
<p>Some ideas I&#8217;ve for this device: program it as a hardware keylogger, a hardware password vault, &#8230;</p>
<p><pre class="brush: csharp;">
using System.Threading;
using System;
using System.IO;
using Microsoft.SPOT.Hardware;
using Microsoft.SPOT;
using Microsoft.SPOT.IO;
using GHIElectronics.System.SystemDevices;
using GHIElectronics.System;
using GHIElectronics.System.IO;
using GHIElectronics.Hardware;

namespace USBiziEICARDetector
{
    public class Program
    {
        static string sEICAR = @&quot;X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*&quot;;

        static void Main()
        {
            Boolean bFoundEicar;
            Debug.Print(&quot;Starting...&quot;);
            while (true)
            {
                // must start system first, no event is associated
                SystemManager.Start(null);
                // wait till we have a device
                while (SystemManager.GetDevices().Length == 0)
                    Thread.Sleep(500);
                // get a list of devices
                Device[] devices = SystemManager.GetDevices();
                // look for a device
                foreach (Device device in devices)
                {
                    // this loop will run once for every device
                    if (device.deviceType == DeviceType.Drive)
                    {
                        try
                        {
                            // USB drive is inserted
                            // Create a new storage device
                            PersistentStorage PS = new PersistentStorage(device.deviceID);
                            // now everything works just like on SD cards....
                            // Mount the file system
                            PS.MountFileSystem();
                            // Assume one storage device is available, access it through NETMF
                            string rootDirectory = VolumeInfo.GetVolumes()[0].RootDirectory;
                            bFoundEicar = false;
                            string[] files = Directory.GetFiles(rootDirectory);
                            Debug.Print(&quot;Files on root of USB drive...&quot;);
                            foreach (string file in files)
                            {
                                Debug.Print(file);
                                Boolean bFileIsEICAR = false;
                                FileStream fs = File.OpenRead(file);
                                Debug.Print(fs.Length.ToString());
                                if (fs.Length == sEICAR.Length)
                                {
                                    char[] acEICAR = sEICAR.ToCharArray();
                                    for (int iIter = 0; iIter &lt; sEICAR.Length; iIter++)
                                    {
                                        int iByte = fs.ReadByte();
                                        if (acEICAR[iIter] != iByte)
                                            break;
                                        if (iIter == sEICAR.Length - 1)
                                        {
                                            bFoundEicar = true;
                                            bFileIsEICAR = true;
                                        }
                                    }
                                }
                                fs.Close();
                                if (bFileIsEICAR)
                                {
                                    byte[] abHappyNewYear2010 = {
                                        0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, 0x20, 0x58, 0x58, 0x58, 0x20, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x0D, 0x0A, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20,
                                        0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x0D, 0x0A, 0x20,
                                        0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x0D, 0x0A, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x58, 0x20, 0x20,
                                        0x20, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x20, 0x20, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x20, 0x20, 0x58, 0x58, 0x58, 0x20, 0x58, 0x58, 0x58,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x0D, 0x0A, 0x20, 0x20, 0x58, 0x58, 0x58, 0x58, 0x58,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20,
                                        0x58, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20,
                                        0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58,
                                        0x0D, 0x0A, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20,
                                        0x20, 0x58, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x0D, 0x0A, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20,
                                        0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20,
                                        0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20,
                                        0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x0D, 0x0A, 0x20, 0x20, 0x58, 0x20,
                                        0x20, 0x20, 0x58, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x58, 0x20,
                                        0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20,
                                        0x20, 0x20, 0x58, 0x0D, 0x0A, 0x20, 0x58, 0x58, 0x58, 0x20, 0x58, 0x58, 0x58, 0x20, 0x20, 0x58, 0x58, 0x58, 0x58, 0x20, 0x58, 0x20, 0x20, 0x58,
                                        0x58, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x20, 0x58,
                                        0x58, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x0D, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
                                        0x20, 0x58, 0x0D, 0x0A, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58,
                                        0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x58, 0x58, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x58, 0x58, 0x0D, 0x0A, 0x0D, 0x0A};

                                    File.WriteAllBytes(file, abHappyNewYear2010);
                                    Debug.Print(&quot;EICAR found!&quot;);
                                }
                            }
                            Debug.Print(&quot;... end of list!&quot;);
                            // if we need to unmount
                            Thread.Sleep(500);
                            PS.UnmountFileSystem();
                            Thread.Sleep(500);
                            PS.Remove();
                            OutputPort LED = new OutputPort(USBizi.Pins.E2x, false);
                            if (bFoundEicar)
                            {
                                Debug.Print(&quot;bFoundEicar = true&quot;);
                                BlinkXTimes(LED, 4, 300);
                            }
                            else
                            {
                                Debug.Print(&quot;bFoundEicar = false&quot;);
                                BlinkXTimes(LED, 2, 300);
                            }
                        }
                        catch (Exception e)
                        {
                            Debug.Print(&quot;Exception:&quot;);
                            Debug.Print(e.Message);
                        }
                    }
                }
                Thread.Sleep(500);
                SystemManager.Reboot(SystemManager.RebootMode.Normal);
            }
        }

        public static void BlinkXTimes(OutputPort LED, int times, int milliseconds)
        {
            for (int i = 0; i &lt; times; i++)
            {
                LED.Write(true);
                Thread.Sleep(milliseconds);
                LED.Write(false);
                Thread.Sleep(milliseconds);
            }
        }
    }
}

</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/1901/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/1901/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/1901/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/1901/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/1901/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/1901/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/1901/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/1901/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/1901/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/1901/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/1901/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/1901/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/1901/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/1901/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=1901&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2009/12/30/detecting-eicar-with-a-net-micro-controller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>
	</item>
		<item>
		<title>Quickpost: Read-Only USB Stick</title>
		<link>http://blog.didierstevens.com/2009/12/20/quickpost-read-only-usb-stick/</link>
		<comments>http://blog.didierstevens.com/2009/12/20/quickpost-read-only-usb-stick/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 20:52:33 +0000</pubDate>
		<dc:creator>Didier Stevens</dc:creator>
				<category><![CDATA[Forensics]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Quickpost]]></category>

		<guid isPermaLink="false">http://blog.didierstevens.com/?p=1878</guid>
		<description><![CDATA[When someone asks me for a read-only USB stick, I recommend to use an SD card with a SD-to-USB adapter, because these are easier to find than USB sticks with write-protection. Most SD cards have a write-protection tab. But last time I got a surprise: when testing a new SD card reader, I was able [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=1878&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When someone asks me for a read-only USB stick, I recommend to use an <a href="http://en.wikipedia.org/wiki/Secure_Digital" target="_blank">SD card</a> with a SD-to-USB adapter, because these are easier to find than USB sticks with write-protection. Most SD cards have a write-protection tab.</p>
<p><img class="alignnone size-full wp-image-1882" title="20091220-214410" src="http://didierstevens.files.wordpress.com/2009/12/20091220-214410.png" alt="" width="500" height="679" /></p>
<p>But last time I got a surprise: when testing a new SD card reader, I was able to write to the write-protected SD card. Turns out that this particular SD card reader doesn&#8217;t support the write-protection tab and always allows the OS to write to the SD card.</p>
<hr /><a href="http://blog.didierstevens.com/2007/11/01/announcing-quickposts/">Quickpost info</a></p>
<hr />
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/didierstevens.wordpress.com/1878/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/didierstevens.wordpress.com/1878/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/didierstevens.wordpress.com/1878/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/didierstevens.wordpress.com/1878/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/didierstevens.wordpress.com/1878/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/didierstevens.wordpress.com/1878/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/didierstevens.wordpress.com/1878/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/didierstevens.wordpress.com/1878/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/didierstevens.wordpress.com/1878/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/didierstevens.wordpress.com/1878/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/didierstevens.wordpress.com/1878/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/didierstevens.wordpress.com/1878/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/didierstevens.wordpress.com/1878/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/didierstevens.wordpress.com/1878/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.didierstevens.com&amp;blog=264765&amp;post=1878&amp;subd=didierstevens&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.didierstevens.com/2009/12/20/quickpost-read-only-usb-stick/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">didierstevens</media:title>
		</media:content>

		<media:content url="http://didierstevens.files.wordpress.com/2009/12/20091220-214410.png" medium="image">
			<media:title type="html">20091220-214410</media:title>
		</media:content>
	</item>
	</channel>
</rss>
