Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: Re: Here is a commercial obfuscator

by diotalevi (Canon)
on Mar 14, 2003 at 17:23 UTC ( #243123=note: print w/replies, xml ) Need Help??

in reply to Re: Here is a commercial obfuscator
in thread Here is a commercial obfuscator

I obfuscated Real Synthetic Audio Downloader using that patch.

require(LWP::UserAgent); ($| = 1); ($rnIrQvE = '/home/josh/rsa/'); ($rnIrRKG = '.wma'); ($rnIrsLCr = qr[http://.+?\.asx]); sub QROtT () { package constant; $FpnynE; } ($Hn, $ED, $EF); ($Hn = 'LWP::UserAgent'->new); (my $qBJAyBnqF = trG_qBJAyBnqF()); qBJAyBnq_svyrF($rnIrQvE, $qBJAyBnqF); sub trG_qBJAyBnqF { my(%qBJAyBnqF); (my(@wF_HEyF) = map((('' . $_) . 'sho +wlist.js'), ('', 'previous-'))); JSURL: foreach my $wF_HEy (@wF_HEyF) { '???'; ($EF = $Hn->get($wF_HEy)); ($EF->is_success or next JSURL); (my(@nFK_HEyF) = ($EF->content =~ /$rnIrsLCr/g)); ASXURL: foreach my $nFK_HEy (@nFK_HEyF) { '???'; ($EF = $Hn->get($nFK_HEy)); (my $Jzn = $EF->content); ($Jzn =~ s/[\s\15\12]+//g); (($Jzn =~ /(\d+)-(\w+)/) or (warn(((q['] . $Jzn) . q[' did +n't match /(\\d+)-(\\w+)/])) and next)); (my($qnGr, $FCrrq) = ($1, $2)); if (((not $qBJAyBnqF{$qnGr}) or ($FCrrq eq 'isdn'))) { ($qBJAyBnqF{$qnGr} = $Jzn); '???'; } else { '???'; } } } return((\%qBJAyBnqF)); } sub qBJAyBnq_svyrF { (my($qvErpGBEL, $qBJAyBnq) = @_); foreach my $onFr_svyr (sort(keys(%$qBJAyBnq))) { (my $Jzn_HEy = $$qBJAyBnq{$onFr_svyr}); '???'; (my $svyr = (($qvErpGBEL . $onFr_svyr) . $rnIrRKG)); if (-e($svyr)) { '???'; next; } ($ED = 'HTTP::Request'->new('GET', $Jzn_HEy)); ($EF = $Hn->request($ED, $svyr)); '???'; print(($svyr . "\n")); } }

Replies are listed 'Best First'.
Re: Re: Re: Here is a commercial obfuscator
by Anonymous Monk on Mar 14, 2003 at 18:20 UTC
    > $Hn->request($ED, $svyr)); Here is a bug (one from a zillion) in your hack - the method name is not obfuscated here.

      Well... since the method name belongs to the LWP package I can't very well go changing that unless I perform the same steps on LWP as well. Anyhow, the patch as written renames pad and stash accesses. It does introduce bugs where otherwise correct accesses to %ENV would now fail. If the obfuscator were actually correct it'd need to have special cases to avoid changing things that shouldn't be. I figure that's best implemented by adding support for a list of expressions that may not be altered. Anyhow, since I don't need an obfuscation filter I'm not going to alter B::Obfuscate to add that support. Changing string constants is somewhat problematic but not irresolvable given the framework provided by B::Deparse.

      I'll leave it to someone else to extend the new module.

      Seeking Green geeks in Minnesota

        In that particular line, method name shouldn't be obfuscated of course. It was meant that your patch doesn't even try to obfuscate method names.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://243123]
and a soft breeze sighs...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (6)
As of 2018-05-20 14:52 GMT
Find Nodes?
    Voting Booth?