Welcome to HBH! If you had an account on hellboundhacker.org you will need to reset your password using the Lost Password system before you will be able to login.

XECryption algorithm decryptor - Perl Code Bank


XECryption algorithm decryptor
takes encrypted file and outputs the original text. in this encryption algorithm every character turns into .ddd.ddd.ddd where d is digit.
                #!/usr/bin/perl
#XECryption algorithm decryptor
# usage: decrypt.pl encrypted_file
#takes encrypted file and outputs the original text.
#in this encryption algorithm every character turns into .ddd.ddd.ddd where d is digit.


use strict;

main(@ARGV);

sub main{
	my($file_path,$fh,$data,@x,@sum,$space,$password,$asci);
	$file_path = shift;
	open($fh,"<$file_path") or die "Can't open $file_path: $!";
	read($fh,$data,-s $fh);
	close($fh);
	$data=~s/\r\n//g;
	$data=~s/\n//g;
	@x = split('\.',$data);
	shift @x; # dump first one, it's empty!
	while (@x > 0){
		push (@sum,shift(@x) + shift(@x) + shift(@x));
	}
	$space = mostcommon(@sum); # this should be space!
	$password = $space - 32;
	while (@sum > 0){
		$asci = shift(@sum) - $password;
		print chr($asci);
	}
}

sub mostcommon{
	my @nums = @_;
	my(@most_common, %once, %common);
	my $mcc=2; # if there are no common substrings don't store
	
	while( @nums > 0){
	  my $key = shift @nums; #slide down 1 number
	  $common{$key}++;
	  if($common{$key} > $mcc){
	    $mcc=$common{$key};
	    @most_common=($key); #new max set entire array to $key
	  }
	  elsif($common{$key} == $mcc){
	    push(@most_common, $key);  # tack $key onto largest
	  }
	
	  if($common{$key} == 1){
	    $once{$key}=1;
	  }elsif($once{$key}){
	    delete $once{$key};
	  }
	}
	return shift @most_common;
}
            
Comments
Sorry but there are no comments to display