I haven't yet done much work with obfuscation, but perhaps now would be a good time to start. I'll attempt to undo this obfu and explain what's being done.
# The first three lines are assignment
@a = ("nz ujnf","nz mpwf","nz ejtdjqmjof","nfnpsz");
$b = "Pearl H. Felzien Born August 15, 1922 Died September 22, 1998"
+;
$c = "Michael N. Felzien\nhttp://www.pied.com\nadmin\@pied.com";
# We make a second copy of $b in $nb
$nb = $b;
# We take $b, and make it into the string "Perl"
$b =~ s/^(.).*/$1erl/;
# Then we screw it all up again making it "Pfsm"
$b =~ tr/a-z/b-y/;
# Now we assign $lv to the second element in $a, "nz mpwf"
# (which, amazingly enough, is later translated a different
# way for the text "my love")
$lv = $a[1];
# And then we remove the first three characters
$lv =~ s/^...//;
# Transforming some more..
$lv =~ tr/a-y/a-z/;
# We put $b and $lv into one big obfuscated string
$d = "\n$b jt nz hsfbu $lv jo mjgf!\n";
# And finally, we put readable text into $d
$d =~ y/b-z/a-z/;
# Prints the text "Perl is my great love in life!"
print $d;
# Begin work on the second line, which starts tabbed in one
$e = "\tI efejdbuf";
# Whirl it through tr
$e =~ y/b-y/a-z/;
# Presto, we print "I dedicate"
print $e;
# Now we're now going to loop through each element in
# @a, using a C style for loopfor($i=0;$i<@a; $i++) {
# We'll change the contents of @a in place with tr
$a[$i] =~ tr/b-z/a-z/;
# If we're at the last element in @a...
if($a[$i]eq$a[-1]) {
# Assign some gurgled text to $f
$f='boe nz mjgf up ifs';
# And we'll immediatly "ungurgle" it
$f=~y/b-z/a-z/;
# This prints "and my life to her memory."
print " $f ".$a[$i].".\n";
}
# If it's not the last element, print it. The first
# three elements we'll be printing are "my time",
# "my love", "my discipline"
else {
print " ". $a[$i] . ",";
}
}
# Lastly, we print the unobfuscated $b (now $nb) and $c,
# which are his mothers name and his signature
print"\n--$nb\n\n$c\n\n";
Some excellent obfuscation!
Michael, I'm sorry for your loss. I wish you the best of luck in all you do. Thanks for the code, and keep up the good work!
-Eric
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.