#!/usr/bin/perl
# Crack for CHARON-VAX Hobbyist Edition build 4867
# 
# Spent hours trying to figure out where it was calling the date-check function
# from, then realised it could be fixed simply by changing a text string. Arse.
#
# RPM available from my website if you can't find it.
#
# Vortex, 20/10/2001
# http://www.caffeine.org.uk/vortex/

print "              ___ _  _   _   ___  ___  _  _     _  _   _   __  __\n";
print "             / __| || | /_\\ | _ \\/ _ \\| \\| |___| || | /_\\  \\ \\/ /\n";
print "            | (__| __ |/ _ \\|   / (_) | .` |___| __ |/ _ \\  >  < \n";
print "             \\___|_||_/_/ \\_\\_|_\\\\___/|_|\\_|   |_||_/_/ \\_\\/_/\\_\\\n";
print "Cracks 1/5/2001 date expiration on Charon-VAX Hobbyist build 4867\n";
print "Cracked by vortex\@caffeine.org.uk, thanks to Matt for the RPM.\n";
print "-"x80;

print "Opening /usr/charon-vax/charons...";
sysopen(CHARON, "charons", 1) || die " FAILED! Can't find/write file";

    # Do the useful bit (literally just change a string)
    print "OK\nSetting expiry date 1000 years into the future...";
    sysseek(CHARON, 0x00084F52, 0);
    syswrite(CHARON, "1/1/3000", 8);
    print "OK\nResetting lame startup banner to lamer startup banner...";
    sysseek(CHARON, 0x00085380, 0);
    syswrite(CHARON, "Hobbyist edition. Date cracked by vortex\@caffeine.org.uk. Have fun VAX fans", 75);

print "OK\nCleaning up...";
close(CHARON);
print "Now go find some VMS media :) You have 1000 years of fun ahead! :)\n";
print "-"x80;
