Software by Michael C. Toren

     Unless otherwise noted, all code listed below is released under the terms of the GNU General Public License. Alternate licensing may be available if you have a specific need; please send mail to mct@toren.net with details describing your unique situation.



         Projects

tcptraceroute

A traceroute implementation using TCP packets

countertrace

A traceroute faker

mailman-pop3d

POP3 interface to mailman's web interface

sipscreen

Screens unwanted inbound SIP calls



         Quick Hacks, or Minor Works

findsource.pl

Displays the local source address which would be used to reach the destination specified on the command line. Just seven lines of perl code, but demonstrates a useful, and very portable technique for determining a machine's IP address.

dns-payload-
inspection.pl

In conjunction with Linux iptables, IPTables::IPv4::IPQueue, and Net::DNS::Packet, inspects inbound UDP packets with a source port of 53 to ensure that they contain legitimate DNS data, and drops packets on the floor that do not. This script grew out of an example I used in two of my talks; please see [1] and [2] for more information.

tar.vim

A vim plugin for browsing tarfiles, version 1.00.

gpg.vim

A vim plugin for editing GPG encrypted files.



         A word about the code...

     "Can anything be sadder than work unfinished? Yes; work never begun."
               -- Christina Rossetti

     I tend to write a good deal of code from month to month; some for work, some for personal use; some large projects, some small. Normally I stop writing once the result is something that does what I need at that particular moment, which unfortunately is also usually something that isn't very customizable without hacking the source code. Despite best intentions, plans to come back at a later date to polish and release publicly rarely end up working out due to time constraints imposed by Life. As a result, most of what I write never gets published.

     Part of the reason I feel so strongly about only releasing tools which are complete, highly flexible, and fully configurable at runtime is that otherwise they end up being of little use to anyone. Experience has shown me that in most cases, hard coded values which seem appropriate while a tool is being written turn out only to be appropriate for a small number of scenarios.

     Darxus, a friend of mine, yells at me from time to time about this, encouraging me to release anyway. He argues that something, even if incomplete at the moment, is better than nothing, and that it is impossible to say what may or may not be useful to someone out there. He has a point. Afterall, isn't one of the benefits of the open source movement that one individual can start a project, and another individual pick up where he left off, without having to start from scratch?

     Still, for now, there's not much listed on these pages. I hope to change that in the future.



Sitemap Work Home Public Key Code Resume Links

Last Updated: Sunday, 10-Jun-2007 00:09:24 PDT.   Valid HTML 4.01
© 2000 - 2008 Michael C. Toren <mct@toren.net>
Schrodinger's cat is not dead.