<?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 - opensource</title>
 <link>http://sysd.org/stas/taxonomy/term/10/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>&quot;keyboard injection&quot; under Linux</title>
 <link>http://sysd.org/stas/node/151</link>
 <description>&lt;p&gt;
What to do if you want to pass some data into STDIN of some process,
and it doesn&#039;t accepts it?! One of the most (un)famous example is &lt;code&gt;ssh&lt;/code&gt;;
who never tried to do a &lt;code&gt;&quot;echo password | ssh host&quot;&lt;/code&gt;?!
So,&amp;nbsp;you just want to inject characters as there were someone
typing them. Remember: &lt;b&gt;TIOCSTI&lt;/b&gt; ioctl() call is your
friend &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;br&gt;
Just &lt;a href=&quot;http://www.google.com/search?q=ioctl+TIOCSTI&quot;
 target=&quot;_blank&quot;&gt;google it&lt;/a&gt; to see what
it&amp;nbsp;does. And now, some actually working code:&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;pre&gt;#!/usr/bin/perl -w&lt;br&gt;use strict;&lt;br&gt;use Fcntl;&lt;br&gt;use constant TIOCSTI =&amp;gt; 0x5412;&lt;br&gt;&lt;br&gt;unless (@ARGV &amp;gt;= 1) {&lt;br&gt; print &quot;usage: $0 [vt] &amp;lt;input&amp;gt;\n&quot;;&lt;br&gt; exit;&lt;br&gt;}&lt;br&gt;&lt;br&gt;my $vt = shift @ARGV;&lt;br&gt;my $buf = join &#039;&#039;, &amp;lt;&amp;gt;;&lt;br&gt;&amp;amp;writevt ($vt, $buf) || die &quot;can&#039;t write to $vt: $!\n&quot;;&lt;br&gt;exit;&lt;br&gt;&lt;br&gt;&lt;br&gt;sub writevt {&lt;br&gt; my ($vt, $buf) = @_;&lt;br&gt; sysopen (VT, $vt, O_RDONLY) || return 0;&lt;br&gt; for (my $i = 0; $i &amp;lt; length $buf; $i++) {&lt;br&gt; ioctl (VT, TIOCSTI, substr ($buf, $i, 1)) || return 0;&lt;br&gt; }&lt;br&gt; close (VT) || return 0;&lt;br&gt; return 1;&lt;br&gt;} &lt;br&gt;&lt;/pre&gt;
&lt;p&gt;
And this is how it works (Linux-specific!!!):
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;pre&gt;[stas@home stas]$ echo id | ./catvt.pl /dev/pts/0&lt;br&gt;id&lt;br&gt;[stas@home stas]$ id&lt;br&gt;uid=?????(stas) gid=?????(stas) groups=?????(stas)&lt;br&gt;&lt;/pre&gt;
&lt;p&gt;
Kinda awesome &lt;img src=&quot;misc/smileys/lol.png&quot; title=&quot;Laughing out loud&quot; alt=&quot;Laughing out loud&quot; /&gt;
&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/14">console</category>
 <category domain="http://sysd.org/stas/taxonomy/term/18">hack</category>
 <category domain="http://sysd.org/stas/taxonomy/term/11">linux</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <pubDate>Wed, 15 Aug 2007 21:20:27 -0300</pubDate>
</item>
<item>
 <title>Geolizer HTTP stats</title>
 <link>http://sysd.org/stas/node/10</link>
 <description>&lt;p align=&quot;center&quot;&gt;&lt;img
 alt=&quot;Sample Geolizer output (fragment)&quot;
 src=&quot;http://sysd.org/stas/files/active/0/geolizer.png&quot; height=&quot;480&quot;
 width=&quot;640&quot; style=&quot;border: 1px solid #000000;&quot;&gt;
&lt;/p&gt;
&lt;h3&gt;About Geolizer&lt;/h3&gt;
&lt;p&gt;This is an enhanced version of the popular &lt;a
 href=&quot;http://www.mrunix.net/webalizer/&quot; target=&quot;_blank&quot;&gt;Webalizer&lt;/a&gt;
HTTP server statistics generator. It&#039;s main feature is an ability to
discover visitor&#039;s country by his/her IP address. Default Webalizer
method is to extract host suffix from the reversal DNS query (obtained
directly from log files, or by &lt;code&gt;webazolver&lt;/code&gt;
program if HTTP
server doesn&#039;t reverses client IPs), which is slow and imprecise (for
example, Brazilian host could be reversed as &lt;code&gt;.com&lt;/code&gt;).
Geolizer relies on the &lt;a
 href=&quot;http://www.maxmind.com/app/ip_locate&quot; target=&quot;_blank&quot;&gt;GeoIP&lt;/a&gt;
library API to do the same thing. Thus, no more DNS queries are
required, and
results are much more precise. Geolizer also has some additional
features: it displays file sizes in a human-readable form
(&lt;i&gt;bytes/KB/MB/GB/TB&lt;/i&gt;) instead of default kilobytes. It
also compiles
under &lt;a href=&quot;http://www.mingw.org/msys.shtml&quot;
 target=&quot;_blank&quot;&gt;MinGW/MSYS&lt;/a&gt; now, so you can process
your UN*X log files on your Windows box&lt;code&gt;. &lt;/code&gt;And,
finally, Geolizer features a nice eye-candy: country flags! &lt;code&gt;&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Beware as Geolizer also has some bad features (read &quot;bugs&quot;):
for example, &lt;code&gt;webazolver&lt;/code&gt;
won&#039;t work anymore, and already resolved hosts aren&#039;t handled well.
Want to see how it looks like, at all? Take a look at some &lt;a
 href=&quot;http://sysd.org/hybrid/stats/&quot; target=&quot;_blank&quot;&gt;sample
statistics&lt;/a&gt;! Or see &lt;a
 href=&quot;http://www.google.com/search?q=link:sysd.org/stas/node/10&quot;
 target=&quot;_blank&quot;&gt;who else&lt;/a&gt; uses Geolizer to produce
their server stats.
&lt;/p&gt;
&lt;h3&gt;
&lt;b&gt;Tips&lt;/b&gt;&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;The country flag pictures can be downloaded at &lt;a
 target=&quot;_blank&quot; href=&quot;http://flags.blogpotato.de/&quot;&gt;http://flags.blogpotato.de/&lt;/a&gt;.
Just download and unzip &lt;code&gt;world.small.zip&lt;/code&gt;
&amp;amp; &lt;code&gt;special.small.zip&lt;/code&gt; to the &lt;code&gt;flags/&lt;/code&gt;
subdirectory in your HTML output path.&lt;/li&gt;
  &lt;li&gt;You may enhance your Webalizer further (allowing it to
identify more user agents, referrers and search engines than normal)
using extended configuration files, provided by Enric Naval and
available at &lt;a target=&quot;_blank&quot;
 href=&quot;http://griho.udl.es/webalizer/&quot;&gt;http://griho.udl.es/webalizer/&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;It is possible to use multiple configuration files on
Webalizer. Just specify them at the command line:&lt;br&gt;
    &lt;pre&gt;webalizer -c common.conf -c user_stas.conf&lt;br&gt;&lt;/pre&gt;
  &lt;/li&gt;
  &lt;li&gt;
Why don&#039;t you try also &lt;a href=&quot;http://awstats.sourceforge.net/&quot;
 target=&quot;_blank&quot;&gt;AWStats&lt;/a&gt;
&amp;amp; &lt;a href=&quot;http://www.projet-webdruid.org/&quot;
 target=&quot;_blank&quot;&gt;WebDruid&lt;/a&gt;?!
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;hr&gt;
It is easy to located an &lt;a href=&quot;http://www.connectedinternet.net&quot; target=&quot;_blank&quot;&gt;internet service&lt;/a&gt; which provides low prices for &lt;a href=&quot;http://www.callage.net&quot; target=&quot;_blank&quot;&gt;voip&lt;/a&gt;. Simply by downloading the &lt;a href=&quot;http://www.softwareconnects.com&quot; target=&quot;_blank&quot;&gt;software&lt;/a&gt; the service of the &lt;a href=&quot;http://www.hostseeq.com/c/internet_phones.htm&quot; target=&quot;_blank&quot;&gt;voip&lt;/a&gt; can be utilized, though for this a fast &lt;a href=&quot;http://www.wirelessnetproviders.com&quot; target=&quot;_blank&quot;&gt;wireless internet&lt;/a&gt; is also required. This is especially benefical for small &lt;a href=&quot;http://www.complete-website-hosting.com&quot; target=&quot;_blank&quot;&gt;website hosting&lt;/a&gt; companies to contact their clients at a low cost.
&lt;/p&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/23">database</category>
 <category domain="http://sysd.org/stas/taxonomy/term/17">GeoIP</category>
 <category domain="http://sysd.org/stas/taxonomy/term/7">network</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/8">web</category>
 <pubDate>Tue, 16 Jan 2007 15:00:00 -0200</pubDate>
</item>
<item>
 <title>X11 FrontEnd for the Rio Utility</title>
 <link>http://sysd.org/stas/node/107</link>
 <description>&lt;p&gt;&lt;img
 style=&quot;width: 640px; height: 480px;&quot; alt=&quot;XRio FrontEnd&quot;
 src=&quot;http://sysd.org/stas/files/active/0/xrio.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;X11 FrontEnd
for the &lt;a href=&quot;http://www.world.co.uk/sba/rio.html&quot;&gt;Rio
Utility v1.07&lt;/a&gt; made by guys from the
&lt;a href=&quot;http://www.world.co.uk/sba/&quot; target=&quot;_blank&quot;&gt;Snowblind
Alliance&lt;/a&gt;.
Surely not the best nor the most beautiful of all GUIs made to manage
the famous Rio MP3 Player,
but I tried to implement some of the ideas that the &quot;real&quot; managers
doesn&#039;t implement.
List of some &quot;interesting&quot; features:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;2 windows side-by-side like in &lt;i&gt;Norton
Commander&lt;/i&gt; legacy managers&lt;/li&gt;
&lt;li&gt;treats M3U playlists as directories&lt;/li&gt;
&lt;li&gt;displays the&amp;nbsp;space remaining on the device as you
select files to upload&lt;/li&gt;
&lt;li&gt;current file &amp;amp; overall progress bars&lt;/li&gt;
&lt;li&gt;realtime display of the transfer speed&lt;/li&gt;
&lt;/ul&gt;Note that you need&amp;nbsp;Tk8.0 extension for Perl (and
the &lt;a href=&quot;http://www.perl.com/&quot;&gt;Perl&lt;/a&gt; itself)
to get this frontend running! The GUI works under&amp;nbsp;&lt;a
 href=&quot;http://activestate.com/Products/ActivePerl/&quot;&gt;ActivePerl&lt;/a&gt;
Win32 environment out-of-shelf, but I haven&#039;t tested if the interaction
with
the &lt;code&gt;rio.exe&lt;/code&gt; is OK. You can download it &lt;a
 href=&quot;http://sysd.org/stas/node/41&quot;&gt;here&lt;/a&gt; and test
for yourself! However, I would suggest you to use my &lt;a
 href=&quot;http://sysd.org/stas/node/41&quot;&gt;Diamond Rio PMP300
FS-plugin&lt;/a&gt; for &lt;a href=&quot;http://www.ghisler.com/&quot;&gt;Total
Commander&lt;/a&gt;.&lt;p&gt;
&lt;b&gt;P.S. -&lt;/b&gt; if you get problems downloading files with
long names,
apply the patch I provided below on the Rio Utility source (&lt;b&gt;not
XRio itself!&lt;/b&gt;) and recompile it.&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/9">addon</category>
 <category domain="http://sysd.org/stas/taxonomy/term/13">GUI</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/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <category domain="http://sysd.org/stas/taxonomy/term/12">windows</category>
 <pubDate>Mon, 08 Jan 2007 10:37:08 -0200</pubDate>
</item>
<item>
 <title>tiny HTTP proxy</title>
 <link>http://sysd.org/stas/node/100</link>
 <description>&lt;br&gt;

&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;Main screen&quot; width=398 height=395 border=0 src=&quot;http://sysd.org/stas/files/active/0/main1.png&quot; /&gt;&lt;/div&gt;

&lt;br&gt;

&lt;p&gt;This is a tiny and highly experimental HTTP/1.0 proxy software that I have
written to debug HTTP protocol &amp;amp; it&#039;s clients. It is very small and
simple, yet useful to reverse-engineering purposes. It&#039;s interface is quite
obvious. The &lt;em&gt;Server&lt;/em&gt; frame controls the IP, port and connection limit
of the proxy server. It also shows how many connections are active at moment.
The &lt;em&gt;Data Traffic&lt;/em&gt; frame shows in/out packets &amp;amp; bytes.
&lt;em&gt;Service&lt;/em&gt; frame allows you to stop, start and quit the proxy. These
are the very minimalist controls for the very minimalist proxy server.&lt;/p&gt;

&lt;p&gt;The interesting stuff begins at the &lt;em&gt;Plugin&lt;/em&gt; frame. All the packet
passed through this proxy server are forwarded to the selectable plugin
module. By default, it is &lt;code&gt;logger.dll&lt;/code&gt;. It simply saves every
single packet into separate file, which uses the following name scheme:
&lt;code&gt;from_IP.from_port-to_IP.to_port.log&lt;/code&gt; (for example,
&lt;code&gt;127.0.0.1.4322-127.0.0.1.21.log&lt;/code&gt;). The files can be ordered by
their modification date in your file explorer, so you can track the entire
session:&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;Packets list&quot; width=435 height=345 border=0 src=&quot;http://sysd.org/stas/files/active/0/packets.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;logger.dll&lt;/code&gt; can be set up to include a sequence counter at
the beginning of each packet and to output saved packets into some specific
directory:&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;logger.dll setup&quot; width=566 height=71 border=0 src=&quot;http://sysd.org/stas/files/active/0/logger.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;Plugin module is also capable of injecting packets. Load the
&lt;code&gt;replicator.dll&lt;/code&gt; file and check the setup screen:&lt;/p&gt;

&lt;div align=&quot;center&quot;&gt;
&lt;img alt=&quot;replicator.dll setup&quot; width=631 height=246 border=0 src=&quot;http://sysd.org/stas/files/active/0/replicator.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;When you click the &lt;em&gt;Capture&lt;/em&gt; button and then make some action in
your proxied web client, the replicator plugin will prompt you if it got a
corresponding packet. This packet may be resent automatically, at the period
specified in the &lt;em&gt;Period&lt;/em&gt; box. You can capture &amp;amp; replicate several
packets, and manipulate their resend period. A very interesting application
of the replicator plugin is to flood &lt;strong&gt;web chats&lt;/strong&gt; and to spin
up &lt;strong&gt;web counters&lt;/strong&gt;. Of course, the right way is to use
&lt;code&gt;logger.dll&lt;/code&gt; and to make a clone that imitates the &quot;real&quot; web
client.&lt;/p&gt;

&lt;p&gt;The final note: this is, and always will be, an &lt;em&gt;alpha-state code&lt;/em&gt;.
I do not develop this proxy application anymore. It is useful to me the way
it is. But you can grab the source and make a whatever plugin you like, or
even rewrite the code entirely. I don&#039;t care. Just give me the proper
credits!&lt;/p&gt;
</description>
 <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/7">network</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/8">web</category>
 <category domain="http://sysd.org/stas/taxonomy/term/12">windows</category>
 <pubDate>Wed, 03 Jan 2007 22:50:00 -0200</pubDate>
</item>
<item>
 <title>CEP-2-City</title>
 <link>http://sysd.org/stas/node/99</link>
 <description>&lt;p&gt;
Módulo &lt;a href=&quot;http://www.perl.com/&quot; target=&quot;_blank&quot;&gt;Perl&lt;/a&gt; que obtém o nome do
município (do Brasil) a partir de um CEP dado. Exemplo:
&lt;/p&gt;
&lt;pre&gt;#!/usr/bin/perl
use CEP;

# inicializa
my $cep = new CEP;

# $city será referência para array com estado/cidade
my $city = $cep-&amp;gt;city (&#039;12.437-660&#039;); # processa somente os dígitos numéricos (0-9)

if ($city) {
    # $str será uma string no formato Cidade/ESTADO
    my $str = CEP::city_string ($city);
    # filtra os acentos e imprime em caixa alta
    printf &quot;esse CEP pertence a [%s]\n&quot;, uc CEP::normalize ($str);
} else {
    print &quot;CEP não encontrado\n&quot;;
}

exit;
&lt;/pre&gt;

&lt;p&gt;
Conforme pode ser observado no exemplo dado acima, este é um módulo
orientado a objeto. A instância do objeto CEP é criada com &lt;code&gt;new
CEP&lt;/code&gt;. Durante&lt;span lang=&quot;pt&quot;&gt;&lt;/span&gt; a inicialização, é construído um
array com a lista ordenada das faixas de CEPs (isso pode demorar, portanto é
uma boa idéia criar uma única instância e reaproveitá-la indefinidamente). O
método que realiza a busca binária pelo CEP e retorna o nome do município é
&lt;code&gt;city()&lt;/code&gt;. O seu único parâmetro é o número CEP propriamente dito.
Somente os dígitos numéricos serão considerados. &lt;code&gt;city()&lt;/code&gt; retorna
uma referência para array que contém o nome do estado e o nome da cidade,
nessa ordem. Inclui também uma subrotina &lt;code&gt;city_string()&lt;/code&gt; que
recebe como parâmetro o array retornado pelo &lt;code&gt;city()&lt;/code&gt; e retorna
uma string no formato &lt;em&gt;&quot;Nome da cidade/ESTADO&quot;&lt;/em&gt;. E, finalmente, quando
os acentos são desnecessários, pode-se filtrá-los com a função
&lt;code&gt;normalize()&lt;/code&gt;, que recebe uma string com acentos e a retorna sem
acentos &lt;code&gt;&lt;img src=&quot;misc/smileys/tongue.png&quot; title=&quot;Sticking out tongue&quot; alt=&quot;Sticking out tongue&quot; /&gt;&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;P.S. -&lt;/b&gt; cuidado com os &lt;em&gt;line-endings&lt;/em&gt; do arquivo
CEP.pm! Se o segmento &lt;code&gt;__DATA__&lt;/code&gt; for salvo com CRLF, o módulo
apresentará comportamento estranho em sistemas UN*X!&lt;br&gt;
&lt;b&gt;P.P.S. -&lt;/b&gt; Este projeto tem agora um &lt;a href=&quot;http://sysd.org/stas/node/150&quot;&gt;sucessor&lt;/a&gt; (que consegue obter informação sobre Rua/Bairro e até mesmo DDD regional)! Confira!
&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/22">city</category>
 <category domain="http://sysd.org/stas/taxonomy/term/23">database</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <pubDate>Wed, 03 Jan 2007 18:55:33 -0200</pubDate>
</item>
<item>
 <title>inPEct .EXE binder</title>
 <link>http://sysd.org/stas/node/19</link>
 <description>&lt;p&gt;
&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;inPEct screenshot&quot; src=&quot;http://sysd.org/stas/files/active/0/inpect.png&quot; height=&quot;168&quot; width=&quot;318&quot;&gt;&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;inPEct&lt;/code&gt; means &quot;infect&quot;, applicable to PE (&quot;Portable Executable&quot;) format. It is an &lt;i&gt;executable binder&lt;/i&gt;, thus, it&#039;s able to join two &lt;code&gt;.exe&lt;/code&gt; files in one. Now, &lt;i&gt;why&lt;/i&gt; should anyone want to do that, is a question apart (screenshot is self-explanatory &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;br&gt;
At the time I&#039;ve wrote inPEct, most executable binders were similar to
SFX (&quot;Self-Extract&quot;) stubs: they simply extracted their content to
somewhere (commonly &lt;code&gt;%TEMP%&lt;/code&gt; directory). inPEct is a bit
different, as it expands the host executable and encrypts &amp;amp; inserts
the hosted executable inside it. When someone executes the bound
application, the host executable runs normally, and the hosted
executable is extracted and then executed. inPEct also has a feature to
execute the hosted executable only once (&lt;code&gt;&#039;smart feature&#039;&lt;/code&gt;):
if the bound program is executed by user again, hosted file won&#039;t be
extracted anymore. And inPEct is very fast and small, as&amp;nbsp; it&#039;s
written entirely in pure assembler (in fact, inPEct&#039;s loader has only
800 bytes!). It&#039;s encryption algorithm is very cheap, but still uses a
random seed. Thus, I expect that inPEct is more stealthy than similar
binders.&lt;br&gt;
Please note that almost every AntiVirus program detects and
quarantines inPEct (and files produced by it)! This shows it&#039;s popularity in the past, I guess &lt;code&gt;&lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
But today it&#039;s useful mostly as a pure assembler programming example... And for AntiVirus research, as &lt;a href=&quot;http://www.acsac.org/2002/papers/32.pdf&quot; target=&quot;_blank&quot;&gt;this paper&lt;/a&gt; actually shows.
&lt;/p&gt;</description>
 <category domain="http://sysd.org/stas/taxonomy/term/21">assembler</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/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>Tue, 02 Jan 2007 00:00:00 -0200</pubDate>
</item>
<item>
 <title>ACFTools (for X-Plane)</title>
 <link>http://sysd.org/stas/node/46</link>
 <description>&lt;br&gt;


&lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;http://sysd.org/stas/files/active/0/shot.png&quot;&gt;&lt;img alt=&quot;ACFTools screenshot&quot; src=&quot;http://sysd.org/stas/files/active/0/shot_t.jpg&quot; border=&quot;0&quot; height=&quot;480&quot; width=&quot;640&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;/div&gt;


&lt;br&gt;


The &lt;b&gt;Plane-Maker&lt;/b&gt; from &lt;a href=&quot;http://x-plane.com/&quot;&gt;X-Plane&lt;/a&gt;
v7.x is fun and easy to use... Although I found it a bit limited to
edit my planes&#039; fuselage. 20 cross-sections aren&#039;t enough, sometimes.
It would be nice to export the fuselage shape into any 3D-editor and
fine-tune it there... This is exactly what my ACFTools are supposed to
do. Please note that X-Plane v8.x is unsupported, unless you create &amp;amp; edit a v7
model and then import it to Plane-Maker v8. But I believe this isn&#039;t a
problem: X-Plane v8 is able to use OBJ format files (which can be
imported/exported by &lt;a href=&quot;http://scenery.x-plane.com/tools.php&quot;&gt;AC3D&lt;/a&gt; and &lt;a href=&quot;http://marginal.org.uk/x-planescenery/tools.html&quot;&gt;Blender&lt;/a&gt; plugins) as parts of an aircraft, thus, extremely weird shapes are perfectly possible without even touching the ACF file.&lt;br&gt;


Now, what exactly ACFTools does? It is able to process the file that
stores all the aircraft data (except the textures), in the binary ACF
format, and dump all the data in the human-readable TXT format. It is the
same format as for Tony Gondola&#039;s ACF2Text utility, which inspirited my
ACFTools. Then, ACFTools can extract the 3D model of the aircraft from
this data, and export it in the &lt;a href=&quot;http://www.ac3d.org&quot;&gt;AC3D&lt;/a&gt; format. After that you can edit the aircraft&#039;s shape as you want using AC3D and make the inverse process: from &lt;code&gt;.ac&lt;/code&gt; to &lt;code&gt;.txt&lt;/code&gt;, and then from &lt;code&gt;.txt&lt;/code&gt; to &lt;code&gt;.acf&lt;/code&gt;. Here comes the brief set of ACFTools features:&lt;br&gt;


&lt;ul&gt;


  &lt;li&gt;Convert from ACF (aircraft) &amp;amp; WPN (weapon) formats to TXT format and vice-versa.&lt;br&gt;
  &lt;/li&gt;
  &lt;li&gt;Extract AC3D model from TXT file, along with wings and propellers (using the real airfoils!).&lt;/li&gt;
  &lt;li&gt;Import AC3D model into TXT file (fuselage, nacelles, wheel fairings &amp;amp; external fuel tanks only)&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;


3D model extractor is also useful if you want to use X-Plane generated
aircrafts somewhere else; as in your own Computer Graphics compositions.&lt;br&gt;


ACFTools was written in &lt;a href=&quot;http://www.perl.org/get.html&quot;&gt;Perl&lt;/a&gt;,
thus it is able to work under Linux, MacOS &amp;amp; Windows. And it is
Open-Source &amp;amp; highly modular, so you can modify it as you want, or
use my functions for your own needs. When you start ACFTools, this is
what you get at your console:&lt;br&gt;


&lt;pre&gt;##############################################################################&lt;br&gt;[ACFTools v0.62a] Set of tools to play with ACF files outside of Plane-Maker&lt;br&gt;Perl script and modules coded by Stanislaw Pusep &lt;stas @sysd.org=&quot;&quot;&gt;&lt;br&gt;Site of this and another X-Plane projects of mine: http://xplane.sysd.org/&lt;br&gt;&lt;br&gt;Allows you to:&lt;br&gt; * export X-Plane (www.x-plane.com) aircraft data files to human-editable&lt;br&gt;   plaintext format and 3D mesh editable in AC3D modeler (www.ac3d.org).&lt;br&gt; * import plaintext/3D mesh back to ACF file.&lt;br&gt;##############################################################################&lt;br&gt;&lt;br&gt;Usage: acftools.exe &lt;commands&gt; [parameters]&lt;br&gt; o Commands:&lt;br&gt;	-extract [DEF]	: extract TXT from ACF (opt: using DEF definition)&lt;br&gt;        -generate       : generate ACF from TXT&lt;br&gt;        -merge          : merge body from AC3D file to TXT&lt;br&gt; o Parameters:&lt;br&gt;        -acffile FILE   : name of ACF file to process&lt;br&gt;        -txtfile FILE   : name of TXT file to process&lt;br&gt;        -ac3dfile FILE  : name of AC3D file to process&lt;br&gt;        -noorder        : DO NOT sort vertices while merging bodies&lt;br&gt;        -noac3d         : DO NOT generate AC3D&lt;br&gt;        -(min|max)body N: write all bodies in specified range to AC3D&lt;br&gt;        -force LIST     : force extraction of bodies LIST (comma-separated N)&lt;br&gt;        -normalize N    : normalize wings to N vert/surface (N&amp;gt;=2 or no wings!)&lt;br&gt; o Notes:&lt;br&gt;        * You can use abbreviations of commands/parameters (-gen or even -g&lt;br&gt;          instead of -generate).&lt;br&gt;        * The only required parameter for &quot;extract&quot; command is -acffile.&lt;br&gt;          Both -txtfile and -ac3dfile are derivated from it.&lt;br&gt;        * &quot;generate&quot; command and -txtfile has the same relation.&lt;br&gt;        * By default &quot;extract&quot; uses the latest DEF file.&lt;br&gt;        * &quot;generate&quot; doesn&#039;t need DEF at all (it is implicit in TXT)&lt;br&gt;        * If file to be created already exists backup is made automatically.&lt;br&gt; o Examples:&lt;br&gt;        acftools.exe --extract=ACF700 --acffile=&quot;F-22 Raptor.acf&quot;&lt;br&gt;        (extract &#039;F-22 Raptor.txt&#039; from &#039;F-22 Raptor.acf&#039;)&lt;br&gt;&lt;br&gt;        acftools.exe -e -acf &quot;F-22 Raptor.acf&quot;&lt;br&gt;        (same as above)&lt;br&gt;&lt;br&gt;        acftools.exe -me -ac3d ladar.ac -txt &quot;F-22 Raptor.txt&quot;&lt;br&gt;        (merge *single* 3D body from &#039;ladar.ac&#039; to &#039;F-22 Raptor.txt&#039;)&lt;br&gt;&lt;br&gt;        acftools.exe -g -txt &quot;F-22 Raptor.txt&quot;&lt;br&gt;        (reverse operation; generate &#039;F-22 Raptor.acf&#039; from &#039;F-22 Raptor.txt&#039;)&lt;br&gt;&lt;/commands&gt;&lt;/stas&gt;&lt;/pre&gt;


The most important thing you should know is that to convert from the
binary ACF format to TXT, ACFTools uses one of the files stored in the &lt;code&gt;defs&lt;/code&gt; directory. By default, it is a &lt;code&gt;ACF740.def&lt;/code&gt;,
which works for X-Plane v7.40 and later. You can specify any definition
file you want, as shown on the screen above. You can also write your
own definition files, if you have the structure specification. Note
that to convert TXT back to ACF, no definition is necessary, as the TXT
format itself holds all the data necessary to build the binary file.
The second thing is to specify the file that ACFTools should convert.
The name of the converted file and every of the intermediary files will
be generated from this name. When converting from ACF to AC3D formats,
TXT file is generated automatically. Please note that when you want to
put the edited aircraft part back into the &lt;code&gt;.acf&lt;/code&gt; file, you must save this part as a &lt;code&gt;.ac&lt;/code&gt;
separate file, then merge it into the TXT file, and after that convert
it into ACF! Yes, it would be nice to have a GUI to automate the entire
process, but I&#039;m too lazy to do that! Anyway, may the source be with you
&lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;br&gt;


I strongly recommend you to read the &lt;code&gt;docs\README.txt&lt;/code&gt; file contained in the ACFTools package before you start using it!&lt;br&gt;</description>
 <category domain="http://sysd.org/stas/taxonomy/term/9">addon</category>
 <category domain="http://sysd.org/stas/taxonomy/term/14">console</category>
 <category domain="http://sysd.org/stas/taxonomy/term/29">game</category>
 <category domain="http://sysd.org/stas/taxonomy/term/18">hack</category>
 <category domain="http://sysd.org/stas/taxonomy/term/11">linux</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/28">simulation</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <category domain="http://sysd.org/stas/taxonomy/term/12">windows</category>
 <pubDate>Wed, 10 May 2006 01:09:12 -0300</pubDate>
</item>
<item>
 <title>MD5/SHA1 checksum</title>
 <link>http://sysd.org/stas/node/42</link>
 <description>An enhanced file checksum plugin for the &lt;a href=&quot;http://www.ghisler.com/&quot;&gt;Total Commander&lt;/a&gt;
(TC for short). It supports both MD5 &amp;amp; SHA1 algorithms, and is able
to checksum the entire directory trees. Note that it&#039;s MD5 checksum
function is much faster than TC&#039;s internal one (70% faster on my Athlon
XP 1700+ with Seagate IDE 160 GB 7200 rpm HD!). Both MD5 &amp;amp; SHA1
algorithms were ripped from &lt;a href=&quot;http://www.chiark.greenend.org.uk/%7Esgtatham/putty/&quot;&gt;PuTTY&lt;/a&gt; by
Simon Tatham, who implemented them directly from the specification.&lt;br&gt;

Basically, the file checksum plugin integrates the functionality of &lt;a href=&quot;http://www.gnu.org/&quot;&gt;GNU&lt;/a&gt;
utilities &lt;code&gt;md5sum&lt;/code&gt; and &lt;code&gt;sha1sum&lt;/code&gt;
into the Total Commander GUI. This is done through the packer extension
API: you simply select files/directories you want to checksum, and
&quot;Pack&quot; (Alt+F5) them into a &lt;code&gt;.md5&lt;/code&gt; or &lt;code&gt;.sha&lt;/code&gt; &quot;archive&quot;. It will be a plain text file which looks like this (just the same format as that of above GNU utilities):&lt;br&gt;

&lt;pre&gt;3fb2924c8fb8098dbc8260f69824e9c437d28c68  FC4-i386-disc1.iso&lt;br&gt;31fdc2d7a1f1709aa02c9ea5854015645bd69504  FC4-i386-disc2.iso&lt;br&gt;032455cdf457179916be3a739ca16add75b768b7  FC4-i386-disc3.iso&lt;br&gt;f560f26a32820143e8286afb188f7c36d905a735  FC4-i386-disc4.iso&lt;br&gt;736e1555e88740d6131c5c84fbe69ed1073ba82d  FC4-i386-rescuecd.iso&lt;br&gt;&lt;/pre&gt;

Note that as TC runs on Windows, checksum plugin will use DOS line endings (CRLF). To
&quot;export&quot; the generated checksum list to a UN*X system, you can use my &lt;a href=&quot;http://sysd.org/stas/node/34&quot;&gt;ToFroWin&lt;/a&gt; utility, which also integrates itself into TC &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;br&gt;

Then, to verify files consistence from TC, select &lt;code&gt;.md5&lt;/code&gt; or &lt;code&gt;.sha&lt;/code&gt;
file and &quot;Test archive&quot; (Shift+Alt+F9). Files generated by *BSD &lt;code&gt;md5&lt;/code&gt; utility are also supported. You can also browse checksum
files as they were directories; this is specially useful to locate
and check for consistence a single file from the huge directory tree.
To do that, just &quot;View&quot; (F3) a file, and TC Lister will pop you a
window with content like this:&lt;br&gt;

&lt;pre&gt;D:\_INSTALL_\stentz-binary-i386\FC4-i386-rescuecd.iso&lt;br&gt;&lt;br&gt;expected:	736e1555e88740d6131c5c84fbe69ed1073ba82d&lt;br&gt;computed:	736e1555e88740d6131c5c84fbe69ed1073ba82d&lt;br&gt;&lt;br&gt;SHA1 checksum OK!&lt;br&gt;&lt;/pre&gt;

Check this &lt;a href=&quot;http://sysd.org/stas/files/active/0/md5_totcmd.png&quot;&gt;screenshot&lt;/a&gt; to see the checksum plugin in operation!&lt;br&gt;

&lt;br&gt;

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

&lt;ol&gt;

  &lt;li&gt;Unzip the &lt;code&gt;&quot;checksum.wcx&quot;&lt;/code&gt; to the Total Commander or Windows Commander plugins directory&lt;/li&gt;
  &lt;li&gt;In Windows Commander 4.0 (or newer) or Total Commander, choose &#039;Configuration =&amp;gt; Options&#039;&lt;/li&gt;
  &lt;li&gt;Open the &#039;Packer&#039; page&lt;/li&gt;
  &lt;li&gt;Click &#039;Configure packer extension WCXs&#039;&lt;/li&gt;
  &lt;li&gt;Type &lt;code&gt;md5&lt;/code&gt; as the extension&lt;/li&gt;
  &lt;li&gt;Click &#039;New type&#039;, and select the &lt;code&gt;&quot;checksum.wcx&quot;&lt;/code&gt; file&lt;/li&gt;
  &lt;li&gt;Click OK and then &#039;Configure packer extension WCXs&#039;&lt;/li&gt;
  &lt;li&gt;Now type &lt;code&gt;sha&lt;/code&gt; as the extension&lt;/li&gt;
  &lt;li&gt;Click &#039;New type&#039;, and select the &lt;code&gt;&quot;checksum.wcx&quot;&lt;/code&gt; file again&lt;/li&gt;
  &lt;li&gt;Click OK&lt;br&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Usage:&lt;/h3&gt;

&lt;i&gt;(This section uses MD5 checksums as example; for SHA1 the procedure is the&lt;br&gt;
same, just replace every &quot;md5&quot; you see by &quot;sha&quot; &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;)&lt;/i&gt;&lt;br&gt;

&lt;ol type=&quot;I&quot;&gt;

&lt;li&gt;Generate MD5 checksum:
&lt;ol&gt;
&lt;li&gt;Select files you wish to compute checksum.&lt;/li&gt;
&lt;li&gt;Then go to &quot;Files =&amp;gt; Pack&quot;.&lt;/li&gt;
&lt;li&gt;Select &quot;md5&quot; as packer.&lt;/li&gt;
&lt;li&gt;PLEASE NOTE THAT ARCHIVE PATH WILL BE IGNORED!!!
&quot;.md5&quot; &#039;archive&#039; is &lt;b&gt;ALWAYS&lt;/b&gt; generated in current directory
(where checked files are), and NOT in the opposite panel!
The only exception is creating checksum of the files stored on CD-ROM
media as there&#039;s no way to create files there.&lt;/li&gt;
&lt;li&gt;Press OK and check CURRENT directory for &quot;.md5&quot; list generated.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Verify MD5 checksum:
&lt;ol&gt;
&lt;li&gt;Certify that &quot;.md5&quot; list is in it&#039;s right place (filenames listed
in it should be relative to the current directory).&lt;/li&gt;
&lt;li&gt;Select it and do &quot;Files =&amp;gt; Test Archive(s)&quot;.&lt;/li&gt;
&lt;li&gt;If any file doesn&#039;t matches stored MD5 checksum then
&quot;CRC error&quot; message box appears.&lt;/li&gt;
&lt;li&gt;If everything is clear Total Commander remains quiet.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Browse MD5 checksum list:
&lt;ol&gt;
&lt;li&gt;Certify that &quot;.md5&quot; list is in it&#039;s right place (filenames listed
in it should be relative to the current directory).&lt;/li&gt;
&lt;li&gt;Select it and enter it as it were a normal archive.&lt;/li&gt;
&lt;li&gt;If any file is present in the &quot;.md5&quot; list but wasn&#039;t found in the current
directory then &quot;?&quot; is displayed instead of file date/time and size.&lt;/li&gt;
&lt;li&gt;PLEASE NOTE THAT FILES CAN NOT BE EXTRACTED TO YOUR DISK! &quot;.md5&quot; isn&#039;t an archive, it stores only the hash of the file.&lt;/li&gt;
&lt;li&gt;Select file you wish to check and press F3 (call Lister).&lt;/li&gt;
&lt;li&gt;Lister will show complete file name, expected checksum and generated
checksum. If both checksum matches then the last line is
&quot;MD5 checksum OK!&quot;.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&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/18">hack</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>Tue, 09 May 2006 12:17:37 -0300</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>GRP packer plugin</title>
 <link>http://sysd.org/stas/node/40</link>
 <description>The &lt;code&gt;.grp&lt;/code&gt; (group) file format, used by the game &lt;a href=&quot;http://www.3drealms.com/&quot;&gt;Duke Nukem 3D&lt;/a&gt;, is just a collection of a lot of files stored
into 1 big one. The &lt;a href=&quot;http://www.advsys.net/ken/build.htm&quot;&gt;Build engine&lt;/a&gt;, upon which Duke Nukem 3D was constructed, went on to
become one of the most successful engine in terms of number of games
released. Other notable games developed using the Build engine
include Witchaven, TekWar, Shadow Warrior, Blood, PowerSlave and
Redneck Rampage (check for a more complete list and more stuff about the Build engine at &lt;a href=&quot;http://www.icculus.org/BUILD/&quot;&gt;http://www.icculus.org/BUILD/&lt;/a&gt;). Thus, all of them use the GRP file format &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;br&gt;
So, here is the plugin I wrote for the  &lt;a href=&quot;http://www.ghisler.com/&quot;&gt;Total Commander&lt;/a&gt;
(TC for short) to access &lt;code&gt;.grp&lt;/code&gt;
files directly. It is able to list, unpack &amp;amp; pack GRP files (file
deletion is unsupported by the format itself...). By the way, this TC
plugin is the first one (and probably the only one ever &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;) to be
written in the pure assembler language. I suppose that it&#039;s also the
smallest TC plugin, with it&#039;s 5.5 KB size! And &lt;a href=&quot;http://sysd.org/stas/files/active/0/grp_wincmd.png&quot;&gt;here&#039;s a screenshot&lt;/a&gt; showing it in action (opening the &lt;code&gt;DUKE3D.GRP&lt;/code&gt;).&lt;br&gt;
&lt;br&gt;
&lt;h3&gt;Installation:&lt;/h3&gt;
The same as for most TC packer&amp;nbsp; plugins:&lt;br&gt;
&lt;ol&gt;
  &lt;li&gt;Unzip the &lt;code&gt;grp.wcx&lt;/code&gt; to the TC directory (usually &lt;code&gt;C:\totalcmd&lt;/code&gt;)&lt;/li&gt;
  &lt;li&gt;Choose &#039;Configuration - Options&#039;&lt;/li&gt;
  &lt;li&gt;Open the &#039;Packer&#039; page&lt;/li&gt;
  &lt;li&gt;Click &#039;Configure packer extension DLLs&#039;&lt;/li&gt;
  &lt;li&gt;type &lt;code&gt;grp&lt;/code&gt; as the extension&lt;/li&gt;
  &lt;li&gt;Click &#039;new type&#039;, and select the &quot;grp.wcx&quot;&lt;/li&gt;
  &lt;li&gt;Click OK&lt;br&gt;
  &lt;/li&gt;
&lt;/ol&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/9">addon</category>
 <category domain="http://sysd.org/stas/taxonomy/term/21">assembler</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>
 <pubDate>Sat, 06 May 2006 00:19:20 -0300</pubDate>
</item>
<item>
 <title>I.E. &#039;hidden image&#039; maker</title>
 <link>http://sysd.org/stas/node/38</link>
 <description>&lt;p&gt;
&lt;center&gt;&lt;img alt=&quot;sample masked image&quot;
 src=&quot;http://sysd.org/stas/files/active/0/masked.jpg&quot;
 height=&quot;228&quot; width=&quot;320&quot;&gt;&lt;br&gt;
&lt;/center&gt;
&lt;/p&gt;
If you are using Internet Explorer (any version able to load this page
&lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;, just select the above image (or go to &lt;i&gt;&quot;Edit =&amp;gt;
Select All&quot;&lt;/i&gt;, or press &lt;code&gt;Ctrl-A&lt;/code&gt;). You
may see a watermark with white letters forming a word &quot;TEST&quot;. This &lt;b&gt;only&lt;/b&gt;
happens in IE, due to the specific way it masks the selected images to
show their selected state. &lt;a
 href=&quot;http://www.mozilla.org/products/firefox/&quot;&gt;Firefox&lt;/a&gt;,
for example, simply tints the image with bluish color. There are lots
of jokes one can make using this simple principle. For example, all
images on your homepage may have some &quot;subliminal&quot; messages. Adobe
PhotoShop is perfectly suitable to make such &#039;Hidden Images&#039; by hand;
in fact, my inspiration was a tutorial made by Matt Kment to do this.
But if you
are too lazy and/or do not have PhotoShop installed (UN*X users, for
example), you can use this small program I wrote in Perl to automate
the
&quot;steganographic&quot; process. I wrote it using &lt;a
 href=&quot;http://www.imagemagick.net/&quot;&gt;ImageMagick&lt;/a&gt;&lt;small&gt;&lt;sup&gt;TM&lt;/sup&gt;&lt;/small&gt;
library (so it&#039;s required to successfully run the program). It is a
command line program, but it is simple enough to use,
and it has an advantage to be integrable into your own scripts/programs
(you can even setup your server to embed your company logo into all
graphics of your site, but this will overload the server&#039;s CPU and RAM
too quickly). I called my program &quot;Internet Explorer Mask&#039;O&#039;Matic&quot;.
Take a look at it&#039;s startup screen:&lt;br&gt;
&lt;pre&gt;Internet Explorer Mask&#039;O&#039;Matic v1.0 by Stas &lt;stanis
 @linuxmail.org=&quot;&quot;&gt;&lt;br&gt;Grab yours at http://sysdlabs.hypermart.net/ &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;br&gt;&lt;br&gt;Inspirated by some mad stuff by Lem0nHead&lt;br&gt;Based on Photoshop &#039;Hidden Image&#039; Guide (http://www.atomicwienerdog.com/ot/)&lt;br&gt;made by Matt Kment &amp;amp; suggested to me by xfalmp&lt;br&gt;&lt;br&gt;&lt;br&gt;ERROR: please give us --visible&lt;br&gt;&lt;br&gt;&lt;br&gt; * Usage: MaskOMatic.pl &lt;options&gt;&lt;br&gt; * Options (note that you can use syntaxes like --vis= --hid -out -p):&lt;br&gt; --visible filename of image normally seen (required)&lt;br&gt; --hidden filename of image seen when selected in IE (required)&lt;br&gt; --output filename to write out, format is selected automatically&lt;br&gt; using suffix provided (required)&lt;br&gt; --percentage float value between 0 &amp;amp; 100; how much of hidden appears&lt;br&gt; (optional, defaults to 50%)&lt;br&gt; --quality JPEG/MIFF/PNG compression level (optional, DON&#039;T USE!)&lt;br&gt; --contrast flag, internal contrast reduction (optional)&lt;br&gt; --test filename to dump preview of selected image (optional)&lt;br&gt;&lt;br&gt; * Notes:&lt;br&gt; # Visible &amp;amp; hidden images doesn&#039;t need to have same size, when size&lt;br&gt; doesn&#039;t matches then hidden image is rescaled using Lanczos filter&lt;br&gt; # A huge set of image formats is supported (JPG, GIF, PNG for example)&lt;br&gt; but I strongly advice you to write output in loseless format *only*&lt;br&gt; (BMP, PNG, TGA) and *then* fine-tune contrast/brightness &amp;amp; save&lt;br&gt; compressed in your favourite image editor (like GIMP)&lt;br&gt;&lt;br&gt; * Example:&lt;br&gt; MaskOMatic.pl --vis bush.jpg --hid death.jpg --out sublim.bmp&lt;br&gt;&lt;/options&gt;&lt;/stanis&gt;&lt;/pre&gt;
Only 3 options are obligatory: &lt;code&gt;--visible&lt;/code&gt;, &lt;code&gt;--hidden&lt;/code&gt;
&amp;amp; &lt;code&gt;--output&lt;/code&gt;. You can abbreviate them
as &lt;code&gt;-v&lt;/code&gt;, &lt;code&gt;-h&lt;/code&gt; &amp;amp;
&lt;code&gt;-o&lt;/code&gt;,
respectively. &quot;Visible&quot; is an image that user sees by default.
&quot;Hidden&quot; is what user sees when he/she selects the image. And &quot;output&quot;
is the resulting image you can embed into your pages. It is also
possible to use the &lt;code&gt;&quot;--test&quot;&lt;/code&gt;
option to preview the selected state of the output image without
starting Internet Explorer. If it looks bad, you may play around with &lt;code&gt;&quot;--percentage&quot;&lt;/code&gt;
option, which specifies the &#039;weight&#039; of the hidden image. The higher
is this value, the greater is the hidden image visibility. If that&#039;s
not
enough to hide your image well (some things are pretty difficult to
hide!), you can try to tune the output image with &lt;code&gt;&quot;--contrast&quot;&lt;/code&gt;
option, but I suggest you to use some GUI program to do that as you get
the visual feedback instantly. I also suggest you to always save your
output in the non-compressed lossless format (like BMP, TGA, TIFF), and
then
fine-tune the compression in some program specialized in it (&lt;a
 href=&quot;http://www.gimp.org/&quot;&gt;GIMP&lt;/a&gt; has a nice
compressor with visual feedback).
&lt;p&gt;
&lt;h3&gt;Alternatives:&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a
 href=&quot;http://www.n-sane.net/effects/hidden-image/index.php&quot; target=&quot;_blank&quot;&gt;Hidden
Image&lt;/a&gt; Photoshop tutorial&lt;/li&gt;
  &lt;li&gt;&lt;a
 href=&quot;http://www.codeproject.com/cs/media/magicimage.asp&quot; target=&quot;_blank&quot;&gt;Magic
Image Generator&lt;/a&gt; C#/VS.NET2003 program (with source) &lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/14">console</category>
 <category domain="http://sysd.org/stas/taxonomy/term/6">graphics</category>
 <category domain="http://sysd.org/stas/taxonomy/term/18">hack</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <category domain="http://sysd.org/stas/taxonomy/term/8">web</category>
 <pubDate>Fri, 05 May 2006 17:47:18 -0300</pubDate>
</item>
<item>
 <title>&quot;ps auwx&quot; faker</title>
 <link>http://sysd.org/stas/node/37</link>
 <description>&lt;p&gt;
&quot;Process Stack Faker&quot; (&lt;code&gt;psf&lt;/code&gt; for short) is able to hide the real executable name and it&#039;s parameters from the output of &lt;code&gt;&quot;ps auwx&quot;&lt;/code&gt;, &lt;code&gt;&quot;ps -ef&quot;&lt;/code&gt; &amp;amp; &lt;code&gt;&quot;top&quot;&lt;/code&gt;
(on UN*X machines), without any superuser privileges. Why should one
wish to hide the stuff he/she executes is a complete different topic &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;br&gt;
Let&#039;s take a look at the options that &lt;code&gt;psf&lt;/code&gt; itself accepts:&lt;br&gt;
&lt;pre&gt;$ ./psf&lt;br&gt;Process Stack Faker (a.k.a. Fucker) v0.03&lt;br&gt;Coded by Stas; (C)opyLeft by SysD Destructive Labs, 1997-2003&lt;br&gt;&lt;br&gt;Usage: psf [options] command arg1 arg2 ...&lt;br&gt;Where options can be:&lt;br&gt;-s string fake process name&lt;br&gt;-p filename file to write PID of spawned process - optional&lt;br&gt;-d try to start as daemon (in background, no tty) - optional&lt;br&gt;-l DO NOT exec through link (detectable by &#039;top&#039;!!!) - optional&lt;br&gt;-u uid[:gid] (format just like in chown(1)) reset UID/GID - optional&lt;br&gt;-n priority renice process - optional&lt;br&gt;&lt;br&gt;Example: psf -s &quot;pine -i&quot; -d -n 19 ./john -session:websrv&lt;br&gt;$&lt;br&gt;&lt;/pre&gt;
I hope this is self-explanatory. &lt;code&gt;psf&lt;/code&gt; will execute &lt;code&gt;&quot;command arg1 arg2&quot;&lt;/code&gt;, and it will appear to &lt;code&gt;&quot;ps&quot;&lt;/code&gt; &amp;amp; &lt;code&gt;&quot;top&quot;&lt;/code&gt; utilities as &lt;code&gt;&quot;string&quot;&lt;/code&gt;. All other options are... Uhm, optional! They are only useful to detach processes not designed to run as daemons. &lt;code&gt;&quot;-l&quot;&lt;/code&gt;
is a &#039;compatibility&#039; switch that disables the weird trick used to
override the detection of the real filename by some process listers
(notably &lt;code&gt;&quot;top&quot;&lt;/code&gt;). The default option may work unexpectingly on some systems (by the way, &lt;code&gt;psf&lt;/code&gt; works fine on FreeBSD 4.3, Linux 2.4, NetBSD 1.5 &amp;amp; Solaris 2.7). To test &lt;code&gt;psf&lt;/code&gt;, try this:&lt;br&gt;
&lt;pre&gt;$ psf -s &quot;pine -i&quot; sleep 30 &amp;amp;&lt;br&gt;[1] 440&lt;br&gt;$ ps auwx&lt;br&gt;...&lt;br&gt;stas 84 0.0 0.6 2012 1232 pts/0 S 19:12 0:00 bash -rcfile .bashrc&lt;br&gt;stas 440 0.0 0.1 1204 376 tty2 S 20:09 0:00 pine -i&lt;br&gt;&lt;br&gt;stas 450 0.0 0.4 2544 816 tty2 R 20:12 0:00 ps auwx&lt;br&gt;...&lt;br&gt;&lt;/pre&gt;
&lt;code&gt;
&quot;sleep 30&quot;&lt;/code&gt; process was spoofed as &lt;code&gt;&quot;pine -i&quot;&lt;/code&gt;. Please note the white line between PIDs 440 and 450. This occurs because &lt;code&gt;psf&lt;/code&gt; uses whitespace (0x20) characters to shift the original process arguments away from the visible area &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt;&lt;br&gt;
To understand how does &lt;code&gt;psf&lt;/code&gt; works and learn how to compile it, just read the comments inside the source.&lt;/p&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/18">hack</category>
 <category domain="http://sysd.org/stas/taxonomy/term/11">linux</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <pubDate>Fri, 05 May 2006 01:57:41 -0300</pubDate>
</item>
<item>
 <title>Micro$oft Messenger Hack</title>
 <link>http://sysd.org/stas/node/36</link>
 <description>&lt;br&gt;

&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;Micro$oft Messenger Hack screenshot&quot; src=&quot;http://sysd.org/stas/files/active/0/msmh.png&quot; height=&quot;281&quot; width=&quot;383&quot;&gt;&lt;br&gt;
&lt;/div&gt;

&lt;br&gt;

&quot;Micro$oft Messenger Hack&quot; (MSMH for short &lt;img src=&quot;misc/smileys/smile.png&quot; title=&quot;Smiling&quot; alt=&quot;Smiling&quot; /&gt; is a GUI alternative to the command line &lt;code&gt;&quot;net send&quot;&lt;/code&gt;,
with some nice additional features. Please remember that &quot;Messenger&quot;
referred here is a Windows NT/2k/XP system service, that &lt;i&gt;&quot;Transmits net send and
Alerter service messages between clients and servers. This service is
not related to Windows Messenger.&quot;&lt;/i&gt;. Messages transferred using this service looks
just like this one:&lt;br&gt;

&lt;br&gt;

&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;&amp;quot;net send usage&amp;quot; screenshot&quot; src=&quot;http://sysd.org/stas/files/active/0/net_send.png&quot; height=&quot;216&quot; width=&quot;423&quot;&gt;&lt;br&gt;
&lt;/div&gt;

&lt;br&gt;

MSMH is able to send the same message as above example. It lists
machines on the local network, so you won&#039;t mistype host names anymore.
It can send messages multiple times, also (just imagine yourself
flooding &lt;code&gt;&quot;*&quot;&lt;/code&gt; &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;. And, using &lt;code&gt;&quot;WinPopup&quot;&lt;/code&gt; method, both &lt;code&gt;&quot;From&quot;&lt;/code&gt; and &lt;code&gt;&quot;To&quot;&lt;/code&gt; fields can be spoofed. By the other side, &lt;code&gt;&quot;net send&quot;&lt;/code&gt; method can send messages &lt;i&gt;beyond&lt;/i&gt; your LAN, given the IP address of the remote host.&lt;br&gt;

MSMH executable is very small, as I programmed it in assembler
language. But beware: Service Packs make the Messenger service disabled
by default, and firewalls won&#039;t allow remote host to receive your
messages. Well, MSMH was much funnier when I wrote it a long time ago &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;br&gt;</description>
 <category domain="http://sysd.org/stas/taxonomy/term/21">assembler</category>
 <category domain="http://sysd.org/stas/taxonomy/term/27">cheat</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/7">network</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>Fri, 05 May 2006 01:53:01 -0300</pubDate>
</item>
<item>
 <title>ttysnoop for kernel 2.6</title>
 <link>http://sysd.org/stas/node/35</link>
 <description>&lt;i&gt;This project was made by a friend of mine, Vinicius Anselmo. He
discontinued it&#039;s development (as it showed to be incompatible with
later Linux kernels), so I proposed to host his work on my site.&lt;/i&gt;&lt;br&gt;
&lt;br&gt;

&lt;code&gt;ttysnoop&lt;/code&gt; is a small program made by Carl Declerck that allows an
administrator to snoop on login terminal through another. It worked until kernel 2.4 because they still with BSD-style &lt;code&gt;pty&lt;/code&gt;&#039;s
support. Here it is a solution for 2.6.&lt;br&gt;


&lt;br&gt;
&lt;h3&gt;Screenshot:&lt;/h3&gt;
&lt;center&gt;
&lt;img alt=&quot;ttysnoop usage screenshot&quot; src=&quot;http://sysd.org/stas/files/active/0/ttysnoop.jpg&quot; border=&quot;0&quot; height=&quot;480&quot; width=&quot;640&quot;&gt;
&lt;/center&gt;

&lt;br&gt;
&lt;h3&gt;SSH:&lt;/h3&gt;

Is ttysnoop compatible with &lt;code&gt;sshd&lt;/code&gt;? ttysnoop was created to work with &lt;code&gt;inetd&lt;/code&gt;, however,
there is a way to make it work with &lt;code&gt;sshd&lt;/code&gt;.&lt;br&gt;

First you will need the source code of the &lt;code&gt;sshd&lt;/code&gt;. Edit the file &lt;code&gt;configure&lt;/code&gt; and add these lines:&lt;br&gt;

&lt;pre&gt;LOGIN_PROGRAM=&quot;/sbin/ttysnoops&quot;&lt;br&gt;export LOGIN_PROGRAM&lt;br&gt;&lt;/pre&gt;

Now it is necessary to verify the paths, so that the new executable
uses the same configuration files of your system. For my system I solved making this modification in &lt;code&gt;pathnames.h&lt;/code&gt;:&lt;br&gt;

&lt;pre&gt;// #ifndef SSHDIR&lt;br&gt;#define SSHDIR	ETCDIR &quot;/ssh&quot;&lt;br&gt;// #endif&lt;br&gt;&lt;/pre&gt;

And executing the script configure specifying a null prefix:&lt;br&gt;

&lt;pre&gt;./configure --prefix=&lt;br&gt;&lt;/pre&gt;

Now compile the program. Make a backup copy of your &lt;code&gt;/usr/sbin/sshd&lt;/code&gt; and put your new &lt;code&gt;sshd&lt;/code&gt; in the
place. That should work. If you are using RedHat or Fedora Core you can try to use my
executable (&lt;a href=&quot;http://sysd.org/stas/node/35#attachments&quot;&gt;see below&lt;/a&gt;).&lt;br&gt;

&lt;br&gt;
&lt;h3&gt;Bugs:&lt;/h3&gt;

After log out, it doesn&#039;t remove the pseudo-terminal entry. Meaning
people showed up as still logged in when they weren&#039;t.&lt;br&gt;

I use: &lt;span style=&quot;font-style: italic;&quot;&gt;who -u | grep -v ?&lt;/span&gt;&lt;br&gt;

to see who really is on my system. I don&#039;t know how to solve it.&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/11">linux</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <pubDate>Thu, 04 May 2006 13:09:40 -0300</pubDate>
</item>
<item>
 <title>ToFroWin CR/LF converter</title>
 <link>http://sysd.org/stas/node/34</link>
 <description>ToFroWin adds the following context menu into Windows Explorer (accessible with right mouse button click over file name):&lt;br&gt;

&lt;br&gt;

&lt;div align=&quot;center&quot;&gt;&lt;img alt=&quot;ToFroWin context menu&quot; src=&quot;http://sysd.org/stas/files/active/0/tofrowin.png&quot; height=&quot;158&quot; width=&quot;273&quot; style=&quot;border: 1px solid black&quot;&gt;&lt;/div&gt;

&lt;br&gt;

It simply converts between the text line endings of UN*X (CR or &lt;code&gt;&quot;\n&quot;&lt;/code&gt;) and DOS (CRLF or &lt;code&gt;&quot;\r\n&quot;&lt;/code&gt;) systems. Actually this is a Win32 GUI port of &lt;a href=&quot;http://www.thefreecountry.com/tofrodos/&quot; target=&quot;_blank&quot;&gt;Tofrodos Ver 1.7&lt;/a&gt;
by Christopher Heng. ToFroWin is also able to convert files in batch:
just select multiple files and convert them with one click. Beware to
not corrupt binary files!&lt;br&gt;

&lt;br&gt;

&lt;b&gt;Installation:&lt;/b&gt;&lt;br&gt;

ToFroWin is too small and too simple to make a self-installation for it. It can be easily installed &quot;by hand&quot;.&lt;br&gt;

Extract archive to any directory (&lt;code&gt;&quot;C:\Program Files\&quot;&lt;/code&gt;). Then go to this
directory and execute &lt;code&gt;&quot;install.bat&quot;&lt;/code&gt;. To uninstall execute
&lt;code&gt;&quot;uninstall.bat&quot;&lt;/code&gt; and then simply delete ToFroWin files.

&lt;p&gt;
&lt;hr&gt;
Starting an &lt;a href=&quot;http://www.lucidseo.com&quot; target=&quot;_blank&quot;&gt;internet business&lt;/a&gt; can turn to out to be very beneficial. Through a &lt;a href=&quot;http://www.softwareseeq.com&quot; target=&quot;_blank&quot;&gt;free software&lt;/a&gt; one can create the &lt;a href=&quot;http://www.mywebmaster101.com&quot; target=&quot;_blank&quot;&gt;web design&lt;/a&gt; of the site. The &lt;a href=&quot;http://www.envisionwebhosting.com&quot; target=&quot;_blank&quot;&gt;domain web hosting&lt;/a&gt; can be bought for a very cheap rate. It would be advisable to use &lt;a href=&quot;http://www.hostseeq.com/c/budget_hosting.htm&quot; target=&quot;_blank&quot;&gt;budget web hosting&lt;/a&gt; in the start though.
&lt;/p&gt;</description>
 <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/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, 04 May 2006 13:04:49 -0300</pubDate>
</item>
</channel>
</rss>
