#!/usr/bin/perl -w
my (@DATOS, @linea, $linea, $numero);
$archivo="level_2.rar.enc";
@hexdump=`hexdump $archivo | awk '{ print \$2":"\$3":"\$4":"\$5":"\$6":"\$7":"\$8":"\$9}'`;
foreach $linea (@hexdump) {
chop $linea;
@linea = split (/:/, $linea);
foreach $numero (@linea) {
if ( $numero =~ s/a5([0-9A-F][0-9A-F])/$1/i ) {
shaggy_crack($numero);
}
}
}
sub shaggy_crack {
$numero = hex($1);
$numero = $numero ^ 0xa5;
$numero = sprintf ('%x', $numero);
if ( $numero =~ /^[0-9A-F]$/i ) { $numero =~ s/([0-9A-F])/0$1/i; }
$numero =~ s/([0-9A-F])([0-9A-F])/$2$1/i;
print chr(hex($numero));
}