Miscellanous Utilities

Cryptography

This cryptography example shows how a message in a file can be encrypted and decrypted using the RSA encryption algorithm. You can also generate new key pairs using this program and choose odd key lengths for extra protection.

A fun thing to try with this is to encrypt with public key #1, then private key #2. Then try decrypting with private key #1, then public key #2. It seems RSA encryption is additive!

Please note that proper security will likely depend on the keys chosen being real prime numbers (large ones are actually harder to find), and some java runtime environments often require return to be pressed before data entered at the keyboard is passed to it. Also trying to encrypt a long message with a shorter key produces a random mess. Divide your message into sections first.

Ethernet Wake-on-LAN

This wake-on-lan utility can send a magic packet using UDP to machines of your choice. This allows the wakeup of computers on remote ethernets so long as you know what the computer's IEEE MAC address is. The first parameter is the target's IP address (or DNS name), the second is the MAC address in ??-??-??-??-??-?? form. The packet is sent to UDP port 9, the discard port, so that is what the computer will normally do if it is already awake.

MP3 Management

This file renamer, rewritten in C, scans a given folder for mp3 files.

It tags files found with the current filename then changes the filename to represent the file's last modification date. This is intended to preserve the file with a hopefully unique name derived from the date and time of creation/modification, when new stream rips with similar names are written to the directory.

The file remover removes files smaller than a preset size from a given folder. This will usually be rips of uninteresting songs Small because you stopped listening, and so stopped ripping.

NEC e616v Mobile Phone from GNU / Linux

This phone can be controlled via libusb like RS232 once the necessary proprietary codes are passed as shown in the e616v program. When you run this program, standard in/standard out are connected to the phone, so you can type V.25ter (AT Commands) and see the phone's response. A blank line by itself causes it to exit, that I recommend over control-C or just unplugging the phone, for now.

IPv4 Route list from bogons list

Inverse takes a text bogons list such as provided by the simpler bogons reference page or the mor thorough but more frequently changing bogon IPs

It attempts to generate a list of routes that are a better alternative to default routes that imply 127.0.0.0/8 or even 192.0.2.0/24 should be routed around the Internet! Users can also add the IP addresses to blacklist to the same list prior to Inverse parsing it and they too get excluded from the route tables, which can be more efficient than using IPtables for the same purpose.

I have an example showing how to use this.

Unreal Tournament

I created Extra console commands for Unreal Tournament GOTY edition.

It provides list event in the game for use with causeevent. I also added uncauseevent which can reverse the effect in some cases. I also added msg your message, to make it easier to change the text on ingame ledboards than typing set ScrollingMessageTexture ScrollingMessage your message.

Enter help at the ingame console prompt for info when installed. You may find umodpack useful to install this in Debian. UTPG patches may also be useful. I created it using this guide.

After the installation of Unreal Tournament GOTY for Linux I have found that it does not decompress the game maps ready for play.

To use this I assume that you have already run the 'UT' or 'UT GOTY' installer as root and are now running as your usual login user. (You won't need to be root again) This is because I prefer not to make any more changes to the UT tree once the default is installed :-) which helps keep its integrity and lets you reinstall the system whilst keeping customisations safely in your home directory.

Now run 'ut' from the command prompt. The game fails to run, of course, because the maps haven't been decompressed, but, the directory structure ~/.loki/ut/ has been created in your home directory, into which the maps will be decompressed when you run my script. You will probably want to install additional .umod files now.

cd /usr/local/games/ut/System/
for N in ../Maps/*.unr.uz
do
	../ucc decompress $N
done
mv ~/.loki/ut/System/*.unr ~/.loki/ut/Maps/

For this you need to install Umodpack, and this is available in Aptitude under Debian.

Rather than set Umodpack "xumod" to work as root on the /usr/local/games/ut directory, I prefer to run it on my local copy /home/michael/.loki/ut. Thereby preventing any module screwups from mandating a reinstall of ut, or a root compromise....

For this to work it is necessary to trick xumod into thinking that your local directory is the true ut root. To do this it presence checks for the file Core.u, so we simply cp /usr/local/games/ut/System/Core.u ~/.loki/ut/System/Core.u; You may run 'ut' once more to check the ini files have been copied over to user, then xumod should hopefully work as expected.

CGI from this computer

If you have installed the geoip debian package, the database can be kept up to date as follows.

#!/bin/sh
cd /usr/share/GeoIP/
wget -c http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
# rm GeoIP.dat
gunzip GeoIP.dat.gz

The End