<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rss [<!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">]>
<rss version="2.0" xml:base="http://sysd.org/stas">
<channel>
 <title>stas&#039;den - music</title>
 <link>http://sysd.org/stas/taxonomy/term/30/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>The Pirate Bay un-SSL</title>
 <link>http://sysd.org/stas/node/220</link>
 <description>&lt;p&gt;
&lt;script src=&quot;http://slashdot.org/slashdot-it.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;/p&gt;

&lt;h2&gt;Theory&lt;/h2&gt;
&lt;p&gt;
Recently, the world saw &lt;a href=&quot;https://thepiratebay.org/&quot;
 target=&quot;_blank&quot;&gt;The Pirate Bay&lt;/a&gt; offering &lt;a
 href=&quot;http://www.slyck.com/story1691_SSL_Encrpytion_Coming_to_The_Pirate_Bay&quot;
 target=&quot;_blank&quot;&gt;SSL encryption&lt;/a&gt; on their server.
This means that your ISP won&#039;t know anymore which torrent you are
downloading, right? Wrong.&lt;br&gt;
&lt;a
 href=&quot;http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol_over_Secure_Socket_Layer&quot;
 target=&quot;_blank&quot;&gt;HTTPS&lt;/a&gt; is quite useless for
protecting static &lt;span style=&quot;font-weight: bold;&quot;&gt;and&lt;/span&gt;
public content. By &lt;span style=&quot;font-style: italic;&quot;&gt;static&lt;/span&gt;,
I do mean the &lt;code&gt;.torrent&lt;/code&gt; file itself. It is
always the same. By &lt;span style=&quot;font-style: italic;&quot;&gt;public&lt;/span&gt;,
I do mean than one doesn&#039;t need any kind of authentication to pick up
the content. It&#039;s always the same, for everyone. For &lt;a
 href=&quot;http://en.wikipedia.org/wiki/Web_crawler&quot; target=&quot;_blank&quot;&gt;crawlers&lt;/a&gt;,
too.&lt;br&gt;
So, one could easily index (&lt;a href=&quot;https://thepiratebay.org/top&quot;
 target=&quot;_blank&quot;&gt;a portion of&lt;/a&gt;) The Pirate Bay
torrent database by the &lt;a
 href=&quot;http://en.wikipedia.org/wiki/List_of_HTTP_headers&quot;
 target=&quot;_blank&quot;&gt;Content-Length&lt;/a&gt;. Then, one could
intercept some encrypted traffic between some machine(s) within his/her
network and the &lt;code&gt;torrents.thepiratebay.org&lt;/code&gt;
server. Knowing both (encrypted) request and response lengths, it is
possible to get a quite reliable list of matches from the previously
indexed torrent list.&lt;br&gt;
&lt;/p&gt;
&lt;h2&gt;Practice&lt;/h2&gt;
&lt;p&gt;
Don&#039;t try this at work, or you might hurt yourself &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;br&gt;
&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Use &lt;a href=&quot;http://www.wireshark.org/&quot;
 target=&quot;_blank&quot;&gt;Wireshark&lt;/a&gt; to capture some torrent
downloads. Torrents are hosted on a separate server, which makes the
task easier yet. Just use the following capture filter: &lt;code&gt;&quot;tcp
and port 443 and host torrents.thepiratebay.org&quot;&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Now, just go with the stream &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt; (&lt;span
 style=&quot;font-style: italic;&quot;&gt;&quot;Follow TCP Stream&quot;&lt;/span&gt;
for the packet you suspect belongs to the torrent download. This will
create another filter, just like &lt;code&gt;&quot;(ip.addr eq 192.168.0.10
and ip.addr eq 83.140.176.156) and (tcp.port eq 2157 and tcp.port eq
443)&quot;&lt;/code&gt;)&lt;/li&gt;
  &lt;li&gt;Just save the displayed stream anywhere else (&lt;code&gt;pcap1.pcap&lt;/code&gt;
sounds nice)&lt;/li&gt;
  &lt;li&gt;Now, use my quick&amp;amp;dirty &lt;a
 href=&quot;http://sysd.org/stas/files/active/0/TPB-TLSlen.pl.txt&quot;
 target=&quot;_blank&quot;&gt;TPB-TLSlen.pl&lt;/a&gt; Perl script to get
the request/response lengths:
    &lt;pre&gt;perl TPB-TLSlen.pl pcap1.pcap&lt;/pre&gt;
Yeah, I know, it is nasty. It only supports the &lt;a
 href=&quot;http://en.wikipedia.org/wiki/Transport_Layer_Security&quot;
 target=&quot;_blank&quot;&gt;TLS&lt;/a&gt; cypher. And it simply calls
the &lt;code&gt;tshark&lt;/code&gt; (the command line version of
Wireshark) to parse it&#039;s output.&lt;/li&gt;
  &lt;li&gt;Now, just paste the &lt;span style=&quot;font-weight: bold;&quot;&gt;REQ&lt;/span&gt;
and &lt;span style=&quot;font-weight: bold;&quot;&gt;RES&lt;/span&gt;
values &lt;a href=&quot;http://sysd.org/stas/node/220?req=560&amp;amp;res=91888#TPB&quot;&gt;below&lt;/a&gt;
&lt;img src=&quot;misc/smileys/lol.png&quot; title=&quot;Laughing out loud&quot; alt=&quot;Laughing out loud&quot; /&gt;&lt;br&gt;
(note that the &lt;span style=&quot;font-weight: bold;&quot;&gt;REQ&lt;/span&gt;
value is optional, setting it to 0 simply ignores the request size for
matching)&lt;/li&gt;
&lt;/ol&gt;
Note that you are able to fine-tune the maximum and minimum header
sizes. For the response, the headers are almost the same all the time.
The only thing that varies is the decimal representation of the file
length and age. (Un)fortuately, the request headers do vary for
different browsers and referring pages. However, knowing the request
size still helps a bit, specially if the torrent&#039;s filename was huge &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;br&gt;
&lt;h2&gt;Precision&lt;/h2&gt;
&lt;p&gt;
The following size distribution chart was generated using the database with ~80K torrents:
&lt;p&gt;
&lt;img src=&quot;http://sysd.org/stas/files/active/0/Graph1.png&quot; width=&quot;640&quot; height=&quot;500&quot; alt=&quot;torrent size distribution&quot;&gt;
&lt;/p&gt;
The most common torrent size is ~14 KB, and it&#039;s easy to figure out that such torrents represent the shared 700 MB files &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;br&gt;
There&#039;s also a major peak for the 454 bytes torrents. However, bigger torrents are less common, thus, the size detection technique becomes more precise. Now, the average &quot;distance&quot; between torrent sizes is ~60 bytes (at least for the sample I&#039;ve collected). So, adding a &lt;a href=&quot;http://en.wikipedia.org/wiki/HTTP_cookie&quot;
 target=&quot;_blank&quot;&gt;cookie&lt;/a&gt; with the random size up to 128 bytes will disrupt the size matching detection a lot. The request size disruption is even easier: the largest torrent &lt;a href=&quot;http://en.wikipedia.org/wiki/Uniform_Resource_Identifier&quot; target=&quot;_blank&quot;&gt;URI&lt;/a&gt; I&#039;ve found was 150 bytes-wide. Thus, padding every request URI to match 150 characters is enough to make the requests completely indistinguishable. Joining the pieces (the padding add-on strings are &lt;b&gt;bold&lt;/b&gt;):&lt;br&gt;
&lt;pre&gt;&lt;font color=&quot;#ff0000&quot;&gt;GET /4319199/[a4e]Ghost_in_the_Shell_TV_01-26.4319199.TPB.torrent&lt;b&gt;?nVM2UGfcG533un4ym70eT2&lt;br&gt;9r0WwBLYdmFCNN+UTV/hiJ7EAXdFU5KfdWHpkB5lXaCmITsACKOPVyjmpbaOB+CrI5&lt;/b&gt; HTTP/1.1
Host: torrents.thepiratebay.org
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208&lt;br&gt; Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: https://thepiratebay.org/recent
Cookie: language=pt_BR; country=BR; PHPSESSID=ad6cb7e414c8dc88e0c2444f6215165a
&lt;/font&gt;&lt;font color=&quot;#0000ff&quot;&gt;
HTTP/1.1 200 OK
Content-Type: application/x-bittorrent
Etag: &quot;2198642509&quot;
Last-Modified: Mon, 28 Jul 2008 22:28:59 GMT
Server: lighttpd
Content-Length: 91601
Date: Mon, 28 Jul 2008 22:37:56 GMT
X-Varnish: 108010229 107999438
Age: 253
Via: 1.1 varnish
Connection: keep-alive
&lt;b&gt;Set-Cookie: p=68eOfxOC7JwBYcMe1RJWC4Z5PV/lJzqJORW8KROPMH9zQhszSjFnRp2tsNWEoyabWAloneUaoz&lt;br&gt;MxYtx4hoM9MZUKE/7wGzC3ZKLEZdppG4og3W; expires=Mon, 28-Jul-2008 22:37:56 GMT; path=/;&lt;br&gt; domain=torrents.thepiratebay.org&lt;/b&gt;

&lt;i&gt;(binary torrent data)&lt;/i&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;/p&gt;
&lt;h2&gt;Solution&lt;/h2&gt;
&lt;ol&gt;
  &lt;li&gt;Use a constant padding in the &lt;code&gt;.torrent&lt;/code&gt;
files. This messes things a bit, but stills ineffective. The only
advantage is &lt;span style=&quot;font-weight: bold;&quot;&gt;not&lt;/span&gt;
messing up with the server &lt;img src=&quot;misc/smileys/sad.png&quot; title=&quot;Sad&quot; alt=&quot;Sad&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;Patch the &lt;a href=&quot;http://www.lighttpd.net/&quot;
 target=&quot;_blank&quot;&gt;lighttpd&lt;/a&gt; server so it sends a
non-lasting &lt;a href=&quot;http://en.wikipedia.org/wiki/HTTP_cookie&quot;
 target=&quot;_blank&quot;&gt;cookie&lt;/a&gt; with a random size.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Thanks&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.megahospedagem.com.br/&quot;
 target=&quot;_blank&quot;&gt;MEGA Hospedagem&lt;/a&gt;, for the network
resources provided for this tiny research &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.warchalking.com.br/&quot;
 target=&quot;_blank&quot;&gt;http://www.warchalking.com.br/&lt;/a&gt;,
for the inspiration &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;a name=&quot;TPB&quot;&gt;

&lt;h2&gt;Encrypted session data&lt;/h2&gt;

&lt;p&gt;
&lt;form action=&quot;&quot; method=&quot;POST&quot;&gt;

&lt;input type=&quot;hidden&quot; name=&quot;edit[token]&quot; value=&quot;e2cf2a06d4aac721a0bec762e3dfc978&quot; /&gt;

&lt;table summary=&quot;&quot;&gt;
&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;b&gt;REQUEST&lt;/b&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;b&gt;RESPONSE&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
	&lt;td align=&quot;right&quot;&gt;SSL size:&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;input value=&quot;0&quot; type=&quot;text&quot; size=&quot;4&quot; name=&quot;req&quot;&gt;&lt;/td&gt;
	&lt;td align=&quot;center&quot;&gt;&lt;input value=&quot;0&quot; type=&quot;text&quot; size=&quot;7&quot; name=&quot;res&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
	&lt;td align=&quot;right&quot;&gt;Min header length:&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;input value=&quot;445&quot; type=&quot;text&quot; size=&quot;4&quot; name=&quot;min_req_hdr&quot;&gt;&lt;/td&gt;
	&lt;td align=&quot;center&quot;&gt;&lt;input value=&quot;283&quot; type=&quot;text&quot; size=&quot;4&quot; name=&quot;min_res_hdr&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
	&lt;td align=&quot;right&quot;&gt;Max header length:&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;input value=&quot;584&quot; type=&quot;text&quot; size=&quot;4&quot; name=&quot;max_req_hdr&quot;&gt;&lt;/td&gt;
	&lt;td align=&quot;center&quot;&gt;&lt;input value=&quot;290&quot; type=&quot;text&quot; size=&quot;4&quot; name=&quot;max_res_hdr&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

&lt;input type=&quot;submit&quot; value=&quot;check&quot;&gt;
&lt;/form&gt;
&lt;/p&gt;

&lt;h2&gt;Possible matches&lt;/h2&gt;

&lt;p&gt;
&lt;table width=&quot;100%&quot; border=&quot;1&quot; summary=&quot;&quot; style=&quot;font-size: 9px;&quot;&gt;
&lt;tr&gt;
	&lt;td align=&quot;center&quot;&gt;&lt;b&gt;The Pirate Bay URL&lt;/b&gt;&lt;/td&gt;
	&lt;td align=&quot;center&quot;&gt;&lt;b&gt;strlen(URI)&lt;/b&gt;&lt;/td&gt;
	&lt;td align=&quot;center&quot;&gt;&lt;b&gt;torrent size&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;&lt;td colspan=&#039;3&#039; align=&#039;right&#039;&gt;0 matches&lt;/td&gt;&lt;/tr&gt;

&lt;tr&gt;&lt;td colspan=&quot;3&quot; align=&quot;right&quot;&gt;
Torrents indexed:
111604&lt;/td&gt;&lt;/tr&gt;

&lt;/table&gt;
&lt;/p&gt;
 </description>
 <category domain="http://sysd.org/stas/taxonomy/term/23">database</category>
 <category domain="http://sysd.org/stas/taxonomy/term/18">hack</category>
 <category domain="http://sysd.org/stas/taxonomy/term/30">music</category>
 <category domain="http://sysd.org/stas/taxonomy/term/7">network</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/24">php</category>
 <category domain="http://sysd.org/stas/taxonomy/term/32">video</category>
 <category domain="http://sysd.org/stas/taxonomy/term/8">web</category>
 <pubDate>Thu, 31 Jul 2008 11:05:20 -0300</pubDate>
</item>
<item>
 <title>my ring tones</title>
 <link>http://sysd.org/stas/node/101</link>
 <description>&lt;br&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;T68i mobile phone&quot; width=472 height=309 border=0 src=&quot;http://sysd.org/stas/files/active/0/T68i.jpg&quot; /&gt;&lt;/div&gt;
&lt;p&gt;A collection of the ring tones I made for my &lt;b&gt;Sony Ericsson T68i&lt;/b&gt; mobile phone. All of them (except &lt;i&gt;As The Worm Turns&lt;/i&gt;, which notes &lt;a href=&quot;http://sysd.org/hybrid/dados-pessoais.html&quot; target=&quot;_blank&quot;&gt;my brother&lt;/a&gt; gave to me!) were converted from a Google-gathered &lt;a href=&quot;http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface#MIDI_file_formats&quot; target=&quot;_blank&quot;&gt;MIDI&lt;/a&gt; file using the excellent &lt;a href=&quot;http://ringtonetools.mikekohn.net/&quot; target=&quot;_blank&quot;&gt;Ringtone Tools&lt;/a&gt; software. Why?! Just because I like these melodies; and because I think they are pretty distinctive ringtones!&lt;/p&gt;

&lt;p&gt;&lt;b&gt;P.S. -&lt;/b&gt; and yes, I didn&#039;t respected the &lt;a href=&quot;http://en.wikipedia.org/wiki/Tempo_%28music%29&quot; target=&quot;_blank&quot;&gt;tempo&lt;/a&gt;, for several reasons!&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/9">addon</category>
 <category domain="http://sysd.org/stas/taxonomy/term/30">music</category>
 <pubDate>Wed, 03 Jan 2007 23:12:36 -0200</pubDate>
</item>
<item>
 <title>Diamond Rio PMP300 FS-plugin</title>
 <link>http://sysd.org/stas/node/41</link>
 <description>&lt;br&gt;

&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;Diamond Rio PMP300 itself!!!&quot; src=&quot;http://sysd.org/stas/files/active/0/rio_pmp300.jpg&quot; height=&quot;400&quot; width=&quot;301&quot;&gt;&lt;br&gt;
&lt;/div&gt;

&lt;br&gt;

Diamond Rio PMP300, with only 32 MB of flash memory, was the second
portable MP3 player ever released, in 1998. Unfortunately, such a
revolutionary piece of hardware is very painful to interface with: as
it is connected through parallel port, highest transfer rates achieved
were around 80 KB/s. And the software bundled with it was too
primitive. To the luck of thousands of (un)happy Rio owners, &lt;a href=&quot;http://www.world.co.uk/sba/&quot;&gt;The Snowblind Alliance&lt;/a&gt;
released their Open-Source RIO utility, which became a starting point
of several alternative Rio manager interfaces. Mine is just one of them
&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;br&gt;

First of all, there&#039;s absolutely no need to write the entire file manager. &lt;a href=&quot;http://www.ghisler.com/&quot;&gt;Total Commander&lt;/a&gt;
(TC for short) is one of the most feature-rich file managers ever made,
and it supports a very extensible plugin API. As a result, one could
use TC to manage files directly on the flash memory of his/her Rio!
Actually, my plugin supports listing, uploading, downloading &amp;amp;
deleting files from Diamond Rio PMP300 &lt;b&gt;internal&lt;/b&gt; memory. It also displays the transfer speed and the total/remaining space. Take a look at &lt;a href=&quot;http://sysd.org/stas/files/active/0/rio_totcmd.png&quot;&gt;this screenshot&lt;/a&gt; to see it in action. Behind the GUI, my plugin uses the source of the &quot;RIO utility v1.07&quot; by The Snowblind Alliance.&lt;br&gt;

&lt;br&gt;

&lt;h3&gt;Installation:&lt;/h3&gt;

Just the same as for many other FS-plugins:&lt;br&gt;

&lt;ol&gt;

  &lt;li&gt;Unzip &lt;code&gt;rio.wfx&lt;/code&gt; &amp;amp; &lt;code&gt;rio.cfg&lt;/code&gt; files to Total Commander directory&lt;/li&gt;
  &lt;li&gt;Choose &lt;i&gt;&quot;Configuration =&amp;gt; Options =&amp;gt; Operation =&amp;gt; FS-Plugins&quot;&lt;/i&gt;&lt;/li&gt;
  &lt;li&gt;Choose &lt;code&gt;rio.wfx&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Click OK.&lt;/li&gt;
  &lt;li&gt;You can now access the plugin in the &quot;Network Neighborhood&quot;&lt;/li&gt;
  &lt;li&gt;Open &lt;code&gt;rio.cfg&lt;/code&gt; file and set the correct LPT port address (see below for more details)&lt;br&gt;
  &lt;/li&gt;
&lt;/ol&gt;

Please note that &lt;i&gt;DriverLINX Port I/O Driver&lt;/i&gt; by &lt;a href=&quot;http://www.sstnet.com/&quot; target=&quot;_blank&quot;&gt;Scientific Software Tools, Inc.&lt;/a&gt; is required for plugin to operate. Get it &lt;a href=&quot;http://sysd.org/stas/node/41#attachments&quot;&gt;below&lt;/a&gt;.&lt;a href=&quot;http://www.sstnet.com/&quot; target=&quot;_blank&quot;&gt;&lt;br&gt;
&lt;/a&gt;
&lt;h3&gt;Configuration:&lt;/h3&gt;

In the majority of cases, the plugin may work fine &quot;out-of-the-box&quot;. If
it doesn&#039;t work at all, probably you&#039;ll need to discover and specify
your PC&#039;s parallel port hardware address. Open your system&#039;s &quot;Device
Manager&quot; (on Windows XP, open the context menu for &quot;My Computer&quot;, click
&quot;Properties&quot;, go to the &quot;Hardware&quot; tab, and click the &quot;Device
Manager&quot;). Go straight to &quot;Ports (COM &amp;amp; LPT)&quot;. Now locate the port
that your Rio device is attached. On my case, it&#039;s LPT1. Double-click
&quot;Printer port (LPT1)&quot;, and go to the &quot;Resources&quot; tab. You need the
first one of&amp;nbsp; &quot;I/O Range&quot; numbers:&lt;br&gt;

&lt;br&gt;

&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;Device Manager =&amp;gt; Printer port (LPT1) =&amp;gt; Resources&quot; src=&quot;http://sysd.org/stas/files/active/0/device_mgr_lpt1.png&quot; height=&quot;455&quot; width=&quot;412&quot;&gt;&lt;br&gt;
&lt;/div&gt;

&lt;br&gt;

&lt;b&gt;378&lt;/b&gt; is what you need. Note that this number is in a hexadecimal
format. Thus, many programs (like my plugin) may accept it as 0x378.
Now, open the &lt;code&gt;rio.cfg&lt;/code&gt; file. It looks like this, by default:&lt;br&gt;

&lt;pre&gt;# Assume that Rio is connected to LPT1&lt;br&gt;IOPort		0x378&lt;br&gt;&lt;br&gt;# default&lt;br&gt;IODelayInit	20000&lt;br&gt;IODelayTx	100&lt;br&gt;IODelayRx	2&lt;br&gt;&lt;br&gt;# &quot;turbo&quot; mode (UNSAFE!!!)&lt;br&gt;#IODelayInit	5000&lt;br&gt;#IODelayTx	1&lt;br&gt;#IODelayRx	1&lt;br&gt;&lt;/pre&gt;

Now, just update the &lt;code&gt;IOPort&lt;/code&gt; parameter to the value you discovered.&lt;br&gt;

Note all that &lt;code&gt;IODelay*&lt;/code&gt; parameters. For the safety reasons,
the delays are high by default, and, consequently, the file transfer is
slow. If you comment out the default values and uncomment the turbo
mode ones, you&#039;ll get a great increase in performance! But remember to
only use it when your Rio battery is 100% charged, and when your Rio is
&lt;b&gt;turned on&lt;/b&gt;. It may corrupt some bits, through.&lt;br&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/9">addon</category>
 <category domain="http://sysd.org/stas/taxonomy/term/19">C</category>
 <category domain="http://sysd.org/stas/taxonomy/term/13">GUI</category>
 <category domain="http://sysd.org/stas/taxonomy/term/18">hack</category>
 <category domain="http://sysd.org/stas/taxonomy/term/5">hardware</category>
 <category domain="http://sysd.org/stas/taxonomy/term/30">music</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <category domain="http://sysd.org/stas/taxonomy/term/26">Total Commander</category>
 <category domain="http://sysd.org/stas/taxonomy/term/12">windows</category>
 <pubDate>Sat, 06 May 2006 00:26:38 -0300</pubDate>
</item>
<item>
 <title>rockin&#039; PC speaker</title>
 <link>http://sysd.org/stas/node/23</link>
 <description>Well,
good old PC speaker is the only default hardware, easily available on
almost all PC systems, and virtually unmuteable (actually, one can
connect PC speaker output to his/her sound card instead of default
buzzer, but this rarely happens &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;. Thus, it is perfect for
communicating critical states. But the default system beep is quite
boring, and makes difficult to distinguish different events that are
being communicated. So, here&#039;s my humble attempt to make a highly
portable function that is able to play simple non-polyphonic music on
the PC speaker. I used it originally to advise when someone tried to
log in to my system through SSH daemon (thus the name &quot;daemoniac&quot; - &lt;code&gt;demoniac&lt;/code&gt; &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;. It was tested (and worked fine!) under:
&lt;ul&gt;

&lt;li&gt;DOS (DJGPP, Turbo C)&lt;/li&gt;
&lt;li&gt;Windows 9x/NT/2K/XP (Borland C, Microsoft Visual C, MinGW)&lt;/li&gt;
&lt;li&gt;Linux (gcc)&lt;/li&gt;
&lt;li&gt;FreeBSD (gcc)&lt;/li&gt;
&lt;/ul&gt;

By default, &lt;code&gt;demoniac&lt;/code&gt; will play &lt;i&gt;Iron Maiden - Fear Of The Dark&lt;/i&gt; beginning. You can also compile it to play the simple &quot;A#4 D#5 G5 A#5 G5 A#5&quot; melody. Note that on UN*X systems, &lt;code&gt;demoniac&lt;/code&gt; accesses hardware directly, and thus requires to run as &lt;code&gt;root&lt;/code&gt; user. It&#039;s safe, through: it
won&#039;t accept any command line arguments and neither process environment
variables, so, at least, it can&#039;t be exploited with some buffer
overflow technique. For detailed instructions about compiling &lt;code&gt;demoniac&lt;/code&gt; on
different compilers/systems, read the comments at the start of the
source. Note that my package provides all the binaries generated on
compilers/systems listed above.&lt;br&gt;</description>
 <category domain="http://sysd.org/stas/taxonomy/term/19">C</category>
 <category domain="http://sysd.org/stas/taxonomy/term/14">console</category>
 <category domain="http://sysd.org/stas/taxonomy/term/5">hardware</category>
 <category domain="http://sysd.org/stas/taxonomy/term/11">linux</category>
 <category domain="http://sysd.org/stas/taxonomy/term/30">music</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <category domain="http://sysd.org/stas/taxonomy/term/12">windows</category>
 <pubDate>Thu, 20 Apr 2006 02:06:04 -0300</pubDate>
</item>
</channel>
</rss>
