| Category: | Miscellaneous |
| Author/Contact Info | X-3mE'89 or, if you prefer, \x58\x2d\x33\x6d\x45\x27\x38\x39 |
| Description: | This small script generates obfu's: you need a mask file (full of #'s), and your source perl file (without hash-bang). Simply call mask.pl source.pl mask.image and redirect the stdout somewhere, and here's your obfu. |
#!/usr/bin/perl
#
# mask.pl v0.1_alpha by X-3mE
# generate perl Obfu with a code
# file and a mask
#
# released under GNU GPL terms
#
my $file=shift @ARGV; # code file name
my $mask=shift @ARGV; # mask/image file
my $dot=shift @ARGV; # dot (the symbol
# used in the image
# file)
my $codestr; # string containing
# the entire perl code
# check the args existance
unless($file or $mask) {
die "Usage: $0 file obfu_mask [dot]\n"
}
# checking dot arg existance:
# if not, the std dot is '#'
unless($dot) {
$dot='#'
}
# open the source code file
open(FILE,"<$file") or die "Error: file $file\n";
# kill \n's, \t's, spaces and so on
# if you want a space in your code, use ^'s
while($f=<FILE>) {
$f=~s/\s//g;
$codestr.=$f
}
close(FILE);
# put the "clean" code in a temp file
open(FILE,">$file.tmp") or die "Error: temp file $file\n";
print FILE $codestr;
close(FILE);
open(FILE,"<$file.tmp") or die "Error: temp file $file\n";
open(MASK,"<$mask") or die "Error: file $mask\n";
my $c;
print '$_=q%'."\n";
# apply code to the mask
while(<MASK>) {
while(/$dot/) {
$c=getc(FILE);
s/$dot/$c/e
}
print
}
# print exceeding code chars
unless(eof(FILE)) {
while(!eof(FILE)) {
$c=getc(FILE);
print $c
}
}
# print final instructions
print "\n";
# old one was:
#print '%;'."\n\n".'s/\s//g;'."\n".'s/\^/ /g;'."\n";
print '%;'."\n\n".'s/\s+//g;'."\n".'s/\^/ /g;'."\n";
# add other substitution code here
print "\neval\n";
close(MASK);
unlink("$file.tmp") # remove temp file
# in old code it was so:
# system("rm -rf $file.tmp")
# end #
|
|
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: mask.pl_v0.1_alpha
by Anonymous Monk on Jul 18, 2004 at 22:11 UTC | |
by thor (Priest) on Jul 19, 2004 at 02:57 UTC | |
by Anonymous Monk on Jul 19, 2004 at 03:36 UTC | |
by X-3mE (Acolyte) on Jul 19, 2004 at 07:11 UTC |