# Convert Vbswg1.50b worms to standard VBScript
#  Tailored to AnnaKournikova worm.
#  Copyright Patrick Audley 2001
#  Released to the public domain.

open(O,"<AnnaKournikova.vbs");
$data = <O>;
close(O);


$data_new = "";
sub decode {
  my $to_decode = shift;
  my $concat = "";
  for( $i = 0; $i < length($to_decode); $i+=2 ) {
    my @vars;
    $vars[1] = substr( $to_decode, $i, 1 );
    $vars[2] = substr( $to_decode, $i+1, 1 );
    foreach my $var (1,2) {
      $num = ord($vars[$var]);
    EXT_SWITCH: {
	$num == 15 && do { $vars[$var] = chr(10); last EXT_SWITCH; };
	$num == 16 && do { $vars[$var] = chr(13); last EXT_SWITCH; };
	$num == 17 && do { $vars[$var] = chr(32); last EXT_SWITCH; };
	do { $vars[$var] = chr(ord($vars[$var]) - 2 ); };
      }
      $concat = $vars[2].$vars[1];
    }
    print "Run: $i\n";
    print "  Input 1(".substr($to_decode,$i,1).") = \"".$vars[1]."\"\n";
    print "  Input 2(".substr($to_decode,$i+1,1).") = \"".$vars[2]."\"\n";
    print "  Concat: \"".$concat."\"\n";
    $data_new = $data_new.$concat;
    print "  Data_new: \"".$data_new."\"\n";
  }
}
decode($data);
open(OUT,">AnnaKournikova.decoded");
print OUT $data_new;
close(OUT);


syntax highlighted by Code2HTML, v. 0.9