GUI

X11 FrontEnd for the Rio Utility

XRio FrontEnd

X11 FrontEnd for the Rio Utility v1.07 made by guys from the Snowblind Alliance. 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 "real" managers doesn't implement. List of some "interesting" features:

  • 2 windows side-by-side like in Norton Commander legacy managers
  • treats M3U playlists as directories
  • displays the space remaining on the device as you select files to upload
  • current file & overall progress bars
  • realtime display of the transfer speed
Note that you need Tk8.0 extension for Perl (and the Perl itself) to get this frontend running! The GUI works under ActivePerl Win32 environment out-of-shelf, but I haven't tested if the interaction with the rio.exe is OK. You can download it here and test for yourself! However, I would suggest you to use my Diamond Rio PMP300 FS-plugin for Total Commander.

P.S. - if you get problems downloading files with long names, apply the patch I provided below on the Rio Utility source (not XRio itself!) and recompile it.

stas » January 8, 2007 » 09:37

tiny HTTP proxy


Main screen

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

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

Packets list

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

logger.dll setup

Plugin module is also capable of injecting packets. Load the replicator.dll file and check the setup screen:

replicator.dll setup

When you click the Capture 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 Period box. You can capture & replicate several packets, and manipulate their resend period. A very interesting application of the replicator plugin is to flood web chats and to spin up web counters. Of course, the right way is to use logger.dll and to make a clone that imitates the "real" web client.

The final note: this is, and always will be, an alpha-state code. 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't care. Just give me the proper credits!

stas » January 3, 2007 » 21:50

inPEct .EXE binder

inPEct screenshot

inPEct means "infect", applicable to PE ("Portable Executable") format. It is an executable binder, thus, it's able to join two .exe files in one. Now, why should anyone want to do that, is a question apart (screenshot is self-explanatory Smiling
At the time I've wrote inPEct, most executable binders were similar to SFX ("Self-Extract") stubs: they simply extracted their content to somewhere (commonly %TEMP% directory). inPEct is a bit different, as it expands the host executable and encrypts & 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 ('smart feature'): if the bound program is executed by user again, hosted file won't be extracted anymore. And inPEct is very fast and small, as  it's written entirely in pure assembler (in fact, inPEct's loader has only 800 bytes!). It's encryption algorithm is very cheap, but still uses a random seed. Thus, I expect that inPEct is more stealthy than similar binders.
Please note that almost every AntiVirus program detects and quarantines inPEct (and files produced by it)! This shows it's popularity in the past, I guess Eye-wink

But today it's useful mostly as a pure assembler programming example... And for AntiVirus research, as this paper actually shows.

stas » January 1, 2007 » 23:00

Diamond Rio PMP300 FS-plugin


Diamond Rio PMP300 itself!!!

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, The Snowblind Alliance released their Open-Source RIO utility, which became a starting point of several alternative Rio manager interfaces. Mine is just one of them Smiling
First of all, there's absolutely no need to write the entire file manager. Total Commander (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 & deleting files from Diamond Rio PMP300 internal memory. It also displays the transfer speed and the total/remaining space. Take a look at this screenshot to see it in action. Behind the GUI, my plugin uses the source of the "RIO utility v1.07" by The Snowblind Alliance.

Installation:

Just the same as for many other FS-plugins:
  1. Unzip rio.wfx & rio.cfg files to Total Commander directory
  2. Choose "Configuration => Options => Operation => FS-Plugins"
  3. Choose rio.wfx
  4. Click OK.
  5. You can now access the plugin in the "Network Neighborhood"
  6. Open rio.cfg file and set the correct LPT port address (see below for more details)
Please note that DriverLINX Port I/O Driver by Scientific Software Tools, Inc. is required for plugin to operate. Get it below.

Configuration:

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

Device Manager => Printer port (LPT1) => Resources

378 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 rio.cfg file. It looks like this, by default:
# Assume that Rio is connected to LPT1
IOPort 0x378

# default
IODelayInit 20000
IODelayTx 100
IODelayRx 2

# "turbo" mode (UNSAFE!!!)
#IODelayInit 5000
#IODelayTx 1
#IODelayRx 1
Now, just update the IOPort parameter to the value you discovered.
Note all that IODelay* 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'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 turned on. It may corrupt some bits, through.
stas » May 6, 2006 » 00:26

Micro$oft Messenger Hack


Micro$oft Messenger Hack screenshot

"Micro$oft Messenger Hack" (MSMH for short Smiling is a GUI alternative to the command line "net send", with some nice additional features. Please remember that "Messenger" referred here is a Windows NT/2k/XP system service, that "Transmits net send and Alerter service messages between clients and servers. This service is not related to Windows Messenger.". Messages transferred using this service looks just like this one:

"net send usage" screenshot

MSMH is able to send the same message as above example. It lists machines on the local network, so you won't mistype host names anymore. It can send messages multiple times, also (just imagine yourself flooding "*" Eye-wink. And, using "WinPopup" method, both "From" and "To" fields can be spoofed. By the other side, "net send" method can send messages beyond your LAN, given the IP address of the remote host.
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't allow remote host to receive your messages. Well, MSMH was much funnier when I wrote it a long time ago Eye-wink
stas » May 5, 2006 » 01:53

ToFroWin CR/LF converter

ToFroWin adds the following context menu into Windows Explorer (accessible with right mouse button click over file name):

ToFroWin context menu

It simply converts between the text line endings of UN*X (CR or "\n") and DOS (CRLF or "\r\n") systems. Actually this is a Win32 GUI port of Tofrodos Ver 1.7 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!

Installation:
ToFroWin is too small and too simple to make a self-installation for it. It can be easily installed "by hand".
Extract archive to any directory ("C:\Program Files\"). Then go to this directory and execute "install.bat". To uninstall execute "uninstall.bat" and then simply delete ToFroWin files.


Starting an internet business can turn to out to be very beneficial. Through a free software one can create the web design of the site. The domain web hosting can be bought for a very cheap rate. It would be advisable to use budget web hosting in the start though.

stas » May 4, 2006 » 13:04

digitalized GPS-calibrated maps


Screenshot do OziExplorer exibindo mapa de São Paulo
(clique na imagem para ampliar)

Essa é uma versão digitalizada e calibrada por GPS do mapa rodoviário do estado de São Paulo. Para exibir esse mapa (e navegar através dele), é necessário ter instalado o software OziExplorer.
Como criei esse mapa? Primeiro, precisei de um mapa bastante detalhado que poderia ser exibido pelo meu Pocket PC. E não estava disposto a pagar por um, como o do Apontador Duo. O jeito é partir pra gambiarra, então Smiling
O mapa que eu queria carregar no meu bolso estava disponível para download no site oficial do DER-SP, em formato PDF. Porém esse formato vetorial era pesado demais para ser carregado no meu iPAQ h4355. Aliás, até o mapa vetorial do MapSource, da Garmin, é relativamente pesado para ser manipulado até no PC de grande porte. Aliás, o problema não era de carregar, mas de deslizar o mapa pros lados, de dar zoom, etc. Essas operações se processam melhor em imagens bitmap (ou raster). O problema da imagem bitmap é que ela não caberia na memória RAM por inteira. Bom, daí pesquisei, pesquisei, e me deparei com ele: o OziExplorer! Ele funciona no PC e no Pocket PC. Ele manipula os mapas bitmap. Além disso, ele as compacta. E o melhor: ele consegue trabalhar com fragmentos de um mapa bitmap. Assim, somente o(s) fragmento(s) atualmente exibido(s) são carregados na memória, o que a poupa bastante.
Ótimo; tendo nas mãos o mapa e o software, eu tinha que converter o mapa no formato aceitável para a importação pelo software. Ou seja: precisei converter de .pdf para .bmp. Para isso, me utilizei do Ghostscript (na realidade usei a interface GUI para o mesmo, o GSview). E o imenso bitmap resultante joguei direto no Img2ozf, que acompanha o OziExplorer.
Em seguida calibrei o mapa, usando a opção "Polynomial Calibration" do OziExplorer. Isso por que o mapa do site do DER não era linear, isso é, as linhas da latitude e longitude eram curvas. Calibrei o mapa pelos 30 pontos de intersecção de linhas de latitude e de longitude. Então especifiquei o datum como o padrão "WGS 84".
E o resultado de todas essas operações está disponível para o download no final dessa página Smiling


Screenshot do OziExplorer exibindo mapa de São Carlos/SP
(clique na imagem para ampliar)

Também fiz uma versão do mapa da cidade de São Carlos/SP. A diferença é que esse mapa estava originalmente num formato de AutoCAD, e que ele é linear, portanto pôde ser calibrado com apenas 2 pontos. O legal do OziExplorer é que ele pode trabalhar com os dois mapas, o do estado e o da cidade, paralelamente. Assim que você sai da área de cobertura do mapa da cidade, o mapa do estado se ativa automaticamente!

Nos screenshots acima, a linha azul é um caminho (track) gravado com meu Garmin eTrex Venture. Como se vê, ele se sobrepõe quase perfeitamente sobre a estrada representada no mapa. Porém um aparelho GPS não é necessário para usar esses mapas: você pode usá-los como consulta ou "guia rodoviário", tanto no Pocket PC quanto num laptop, por exemplo... Ou então pode aproveitar a calibração para obter coordenadas precisas de um ponto estratégico, e aí visualizá-lo pelo serviço Google Maps.
stas » April 20, 2006 » 11:51
addon » GPS » GUI » map

ASCII code explorer

Designed to be the freakin' best ASCII table viewer for DOS platform, LOL!!!

ASC.EXE screenshot

It accesses the console font bitmaps directly from the BIOS and amplifies them 16 times (bitmaps in a hex form are shown, also). User can navigate the character map using his/her mouse or the cursor keys.  For every character, it's ASCII code in decimal, hexadecimal & binary formats is displayed. One can also build strings of ASCII characters, just like in Windows' "Character Map". Foreground/background colors for the character, magnified character & character string are also editable through the GUI (there are 16 colors available for background, instead of default 8 Smiling. It's pretty useless today, but helped me a lot to develop my elder programs. By the way, this ASCII explorer was written using QBasic 4.5...

stas » April 20, 2006 » 01:52

reg3dit

This one looks like and feels like the popular "Microsoft ® Registry Editor" (A.K.A. regedit.exe Eye-wink), specifically one that comes from Win2k default installation.
It only has one (significative) difference... It will never prompt you with following message box, when started:

"Registry editing has been disabled by your administrator."
"Registry editing has been disabled by your administrator."

This restriction is supposed to save users from themselves. Well, if you've successfully located an override (like mine Smiling), I hope you really know what's you're doing! My regedit clone will ignore administrator's restriction, which consist in the following registry patch:
REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegistryTools"=dword:00000001
Then, you may use reg3dit to make all the changes you need (note that on Windows NT/2k/XP & superiors some keys would still give you "Access denied", as such OSes use per-user security policies). For example, you can unpatch that DisableRegistryTools thing and simply turn back to use default regedit.exe Smiling

P.S. - reg3dit has nothing to do with the leaked Win2k source!!! I've created it by my own.

stas » April 20, 2006 » 01:16
XML feed