Six Demon Bag
Some stuff I have worked on, which may (hopefully) be helpful to others.
Active Directory Documentation
When you inherit an existing (usually home-grown) Active Directory, it can be a real pain to figure out how the thing was actually configured by the previous admin(s). In a situation like that it's kinda nice to have a tool at hand that'll do the dirty work for you.
Of course there's pay-ware like ADscribe, but personally I find $99 kinda expensive for something you're going to use every other decade (or so). Microsoft's own Active Directory Topology Diagrammer is freeware (well, sort of, as it requires Visio), but it has to be installed, and the results weren't that convincing when I tried to run it from outside the target domain.
That is where Nils Kaczenski's José comes in handy. José is a VBScript that can be run either from the command-line or with an HTML Application as a GUI frontend. It doesn't require installation, just unpack the archive wherever you like and run the tool from there.
Not invented here, but since I contributed to the project, I'm borrowing the plumes. ;-)
A Logger class for VBScript
I got tired of having to re-implement logging routines for my VBScripts on a regular basis, so I wrote a Logger class that serves as an abstraction layer for logging to interactive console/desktop, files or eventlog. Now I just instantiate a new logger, define the logging facilities (default is console/desktop for interactive, eventlog for non-interactive execution), and can log away with the same set of methods, regardless of log target.
If you want to use the Logger class, either copy-paste the code to your script or import the class file with this neat procedure.
Thanks to Alex and Rico for their valuable input on the class interface.
Update: Version 1.1 released (now including API documentation).
Interactive VBScript Shell
Python's interactive mode is very convenient, because you can try simple stuff without having to write it to a script first. Since I have to do a lot of VBScript lately, I wanted to have something like that for VBScript, too.
I found this blog post that has almost exactly what I wanted, except for line continuation. Which is what I added (for my own convenience). You can download the modified script here.
Patch for kh2reg.py
On Linux you can simply store a server's public key in your known_hosts file to avoid being prompted for host key verification. However, PuTTY stores server public keys in a different format, so you can't simply import a public key into the Windows registry and be done with it. You can convert known_hosts files to .reg file format with this script from the PuTTY homepage, but unfortunately the script doesn't account for entries that use a non-default port:
[a.b.c.d]:2222 ssh-rsa AAAA...
This patch fixes the issue. You can also download an already patched version of the script.
Update: The official version of kh2reg.py has been updated.
Backscatter protection
Backscatter (particularly spam-induced backscatter) is one of the major annoyances of the Internet. To get rid of this crap once and for all I wrote a backscatter filter for Postfix.
Mail encryption proxy
A quick & dirty Perl script written by Alexander Bernauer and myself, because we needed our ticketing system to be able to send encrypted mail.
Wormhole
Sometimes administrators need to access the computer of a remote user, but depending on the location (e.g. hotels or foreign company networks) NAT or firewalls may get in the way. One method of getting around this problem is to establish an outbound SSH tunnel on the remote user's computer, and then connect back to the computer through that tunnel. However, setting up an SSH tunnel isn't something Joe Average usually is too comfortable with. That's why I wrote wormhole, a little application (actually a shell script encapsulated in an application bundle via Platypus) to make establishing a tunnel as simple as possible for remote Macintosh users.
Personal Firewalls
In 2004 Alexander Bernauer and I evaluated various personal firewalls. Our disillusioning findings have been published in issue #086 of the Datenschleuder, a quarterly journal issued by the Chaos Computer Club.
ntsvcfg
ntsvcfg is a Windows CMD script to automatically deactivate unneeded Windows services for either a standalone computer with its own internet connection or a computer that is part of a local network. I co-authored this script with Torsten Mann, who is hosting and maintaining it.
3D Simulation
Back in college, one of my software engineering classes was a project to develop a simple 3D engine without resorting to existing 3D routines. The implementation of my group was done in Java, because that way it was rather easy to implement the GUI, and the requirements were simple enough to be met by contemporary hardware. It's probably not really helpful to anyone, but it was fun to do, so I'm posting it anyway.
Run simulation
Project report (
, 307 kB, in German language)
Source code (
, 293 kB)
How to beat Windows software into submission
A lot of Windows software requires elevated privileges for no good reason. Usually the problem is simply that the program tries to write someplace where normal users don't have write access, in which case you can mitigate the problem by granting the users write permissions to the respective files, folders or registry keys. Here's a mini-HOWTO on how to identify (and fix) those missing permissions.
Multiboot Linux and Windows
There are some recommended ways in which order to install operating systems in order to get a working dual- or multiboot setup (e.g. install Windows 9x first, then Windows 2000; or install Windows first, then Linux). However, although these are the easiest ways to achieve the goal, they're not the only ones, and may even have considerable disadvantages. Here's how to do it the hard way.


