On Fri, 03 Nov 2000 16:48:34 +0100,
Tina Mueller <tina.m...@pixelpark.com> wrote:
> ich persoenlich kenne keine tricks. mein erstes und bis jetzt einziges
> JAPH hab ich so hingebastelt.
also bei mir funzt dein JAPH net...
danielt@perceval:~/tmp> perl test | hexdump
0000000 0d0a
0000002
Es sei denn, es soll genau das ausgeben :)
> gruss,
> tina
bye,
Da.Ta.
--
Danijel Tasov, Daniel...@CameloT.de. PGP-Fingerprint:
00 3A 65 0C 47 66 46 27 E2 AF 3A C4 1C 2E E8 EE
# College is like a woman -- you work so hard to get in, and nine months
# later you wish you'd never come.
Das ist ganz nett und funktioniert folgendermaßen ... nee, kann sich
jeder ja mal selbst anschauen.
Dein System unterstützt anscheinend kein select.
Dietmar
Dein System unterstüzt kein select(), was mich wundert.
>danielt@perceval:~/tmp> perl test | hexdump
>0000000 0d0a
>0000002
Das Script gibt fast 4KB Daten aus.
--
Björn Höhrmann ^ mailto:bjo...@hoehrmann.de ^ http://www.bjoernsworld.de
am Badedeich 7 ° Telefon: +49(0)4667/981ASK ° http://bjoern.hoehrmann.de
25899 Dagebüll # PGP Pub. KeyID: 0xA4357E78 # http://learn.to/quote +{i}
..weaving a secure, well-formed, standard compliant WWW for =everyone=..
* Du möchtest einen String haben
* Woraus besteht der String?
-> Zeichen die wiederum aus einzelnen Bits bestehen
* Wie kannst du diese Zeichen erzeugen und kombinieren, damit dein
String herauskommt?
-> Deine Aufgabe
Du musst die notwendigen Daten für den String im Script speichern, das
billigste Beispiel dafür wäre
print 'Cl...@Claus-Netz.de'
Nicht sehr kreativ, das kann man steigern:
print scalar reverse 'ed.zteN-sualC@sualC'
Oder vielleicht auch
print map chr hex, qw!43 6C 61 75 73 40 43 6C 61 75 73 2D 4E 65 74 7A
2E 64 65!
Vielleicht auch
print '"ALX^mnALX^OcHYWMIH'^'a----------b----c--'
Bei den letzten 3 Beispielen sind die notwendigen Daten besser
versteckt, als beim ersten. Du kannst jetzt die Komplexität nach
belieben steigern, in meinen Beispielen werden ja nicht mehr als 2
Datenquellen verwendet und die Daten sind vorgegeben.
Du kannst die Bestandteile der Daten die du zur Erstellung brauchst
errechnen, durch Reguläre Ausdrücke oder Bitoperationen manipulieren,
etc. pp. der Phantasie sind eigentlich keine Grenzen gesetzt. Du kannst
viele Variablen benutzen, exzessiv vom impliziten $_ Gebrauch machen,
Daten als Oktal- oder Hexadezimalzahlen oder als Binäre Daten speichern
oder binäre Daten erstellen und damit Manipulationen vornehmen, was
immer du willst. Perl bietet genügend "kryptische" Funktionen wie pack,
unpack, map und oft benötigte wie chr, ord, hex, sprintf, eval usw.
Speziell eval bietet dir die Möglichkeit, dass du den Quellcode zur
Laufzeit selber erstellst, was den Code wiederum kleiner machen kann.
Wenn du einen Weg gefunden hast, schreibe alles unmittelbar
hintereinander weg und wenn es <= 4*80 Zeichen sind, hast du was
brauchbares.
Das ganze fällt auch in die Kategorie "Obfuscated Perl", ein Grund, warum
so viele Perl hassen (und andererseits so viele Leute Perl lieben).
Ich persönlich hab erst einen "Obfuscated Code" geschrieben, mit dem Title
"Beatles Revival". Nicht sonderlich kreativ, aber irgendwie bin ich schon
ein wenig stolz auf mein erstes Stück (ok, es is zu lang für eine
Signature :) ):
#!/usr/bin/perl -w
*yellow
=sub#marine?
{$what #yellow
=sub#marine?
{q/
rekcahlreprehtonatsuj/}
;$/
=$what
#is this
->("button")
#good for?
;#Ringo,
%whereis=#the
map{p("lease?")
=>$_}reverse(
#Don't
split//,(
join#us!
"",$/));print
$whereis#John, Ringo?
{$_}for sort{$a<=>$b}
#Where are the
keys#,
%whereis}#the
;sub#marine, Ringo???
p{$p++}
#Ok, let's sing:
#We all live in a
yellow("submarine!");
lg,
le
--
"Bus error -- driver executed."
-- anonymous
> Ich persönlich hab erst einen "Obfuscated Code" geschrieben, mit dem Title
> "Beatles Revival".
Was du geschrieben hast ist eine andere Kategorie, nämlich "Perl
Poetry".
Such mal in google.com nach Perl Poetry nach Beispielen.
Ciao,
Martin
Wenn du dich nur auf ihn beziehst, antworte doch bitte auch auf sein
Posting und _nicht_ auf meines :-)
>Das ganze fällt auch in die Kategorie "Obfuscated Perl", ein Grund, warum
>so viele Perl hassen (und andererseits so viele Leute Perl lieben).
Schon ein wenig älter, aber...
[...]
From: kar...@ife.ee.ethz.ch (Andreas Karrer)
Newsgroups: de.comp.lang.perl
Subject: Re: perl-Script schuetzen
Date: 26 Aug 1997 14:20:54 GMT
Naja, nachdem doch einige Personen diesen Perl-Code
#!/usr/local/bin/perl4
++$|;$*=$|+
$|;$$=($**$*+$|
)**$**$*;$,=$$*$* ;$'=$,+$|--
;$+=$***($**$*);$;= $,-$*;$'.=',';@_=
(($,-$+-$*-$*).',', $',($,+$+).',',$'
,($;+$+).',',($+ *$*).',',($$+
$+).',',$', $',$;.',',
$',$');
($_,$@,$#)=($]=~
/\$\$.(.)(.)(.):/)
;++$#;$\=$_;$#++ ;$/=++$#;++$\
;$\++;($:, $;,$$,$,)=($]=~
/:.(.)(.)(.)(.)/)
;$^=++$/ ;++$^;++$,;$^++
;$,++;@+=( '"'.$:.$$.$/.
$,++.$@ ,$:. $_.$\.$^++
.'(\''.$\. ($#_+(++$|))
);@==( $;.$\.$#.$,, '`'.$:.$;.
$$.$^,'-'.$; ,@+);@'=(@=,
'\',',@_,$% .')"`',$|.'>&'.
($|+$|));`@'`
verstehen (http://www.perl.org/wits-a2-3a.html), duerfte es schwierig
sein, wirklich unverstaendlichen, aber sinnvollen Perl-Code zu
schreiben.
[...]
Naja, ich war mir nicht sicher, ob's Poetry oder Obfuscation ist. Immerhin
läuft's.
[Obfuscation deleted]
Ja, das ist ein Hammer. (Gott sei Dank gibt's Vim und
Syntax-Highlighting :)
Das hier gefällt mir auch sehr gut, von Abigail:
$; # A lone dollar?
=$"; # Pod?
$; # The return of the lone dollar?
{Just=>another=>Perl=>Hacker=>} # Bare block?
=$/; # More pod?
print%; # No right operand for %?
Grüße Claus
--
Claus Näveke ICQ: 24702444 eMail: Cl...@Claus-Netz.de
"Claus Näveke" schrieb:
> hier gibts ja einige Leute die irgendwelche mehr oder weniger verrückte
> Perlcodes als Signatur haben. Gibts da irgendwelche Tricks um solche Dinger
> zu basteln? Ich würde nämlich gerne meine Mailadresse in so einen Ein- oder
> Zweizeiler packen.
diese nennt man JAPH's, denn im original wird
"Just another Perl hacker," geprintet.
zusaetzlich gilt, dass es in 4 zeilen von je
80 zeichen passen sollte, also fuers usenet gut
lesbar.
ich persoenlich kenne keine tricks. mein erstes und bis jetzt einziges
JAPH hab ich so hingebastelt.
vielleicht gibt es auxh ein tool dafuer; abigail
antwortete jedenfalls in c.l.p.m. mal auf die frage,
ob jemand ein tool zum verschluesseln bzw. unlesbarmachen von
code habe, mit ja... =)
gruss,
tina
--
$|++;@_=map{chr(ord($_)-$|)}split//,"Kvtu!bopuifs!Qfsm!Ibdlfs-";$\="\r";@a=qw(<
^ > v);$§="_"x25;until($§!~m~_~){$o=int(rand 28)+65;next
if$s{$o}++;$o==91?$o=44
:($o==92?$o=32:0);$g=chr$o;for(0..24){if($_[$_]=~m)$g)i){for$m(@a,$_[$_]){substr
$§,$_,$|,$m;print$§;select$/,$/,$/,0.1}}}print$§}print$/ #
http://tinita.de
Grüße Claus
>> Vielleicht auch
>>
>> print '"ALX^mnALX^OcHYWMIH'^'a----------b----c--'
>>
> Das ist gut, danke. Gibts eine Umkehrfunktion zu ^?
^ ist die Umkehrfunktion.
$ perl
print '"ALX^mnALX^OcHYWMIH'^'a----------b----c--'^'a----------b----c--';
"ALX^mnALX^OcHYWMIH$
> Ich habe nämlich ehrlichgesagt keine Ahnung was ^ bewirkt (hab auch
> in meinen schlauen Büchern nichts gefunden),
perldoc perlop
Binary "^" returns its operators XORed together bit by
bit. (See also the section on Integer Arithmetic and the
section on Bitwise String Operators.)
A B A^B
1 0 1
0 1 1
0 0 0
1 1 0
A^B B (A^B)^B = A
1 0 1
1 1 0
0 0 0
0 1 1
XOR wird von schlechten Programmen (AFAIK auch von Windows für manche
Werte in der Registry) zur "Verschlüsselung" benutzt.
Ciao,
Martin
Grüße Claus
Naja, ich weiss nicht, das gemeine ist hier nur die Kommentierung die
einen auf die falsche Fährte bringen soll, wenn man versucht das zu
analysieren. Wenn man `perldoc perlvar` kennt, ist das nicht sehr magic.
Anders geschrieben wäre das:
#!/usr/bin/perl
use English;
$SUBSCRIPT_SEPARATOR = $LIST_SEPARATOR;
$SUBSCRIPT_SEPARATOR{
Just=>another=>Perl=>Hacker
} = $INPUT_RECORD_SEPARATOR;
print %SUBSCRIPT_SEPARATOR;
Ja: ^
: Ich habe nämlich ehrlichgesagt keine Ahnung was ^ bewirkt (hab auch in
: meinen schlauen Büchern nichts gefunden),
XOR (exklusives ODER), logisch oder bitweise, mit der Wahrheitstabelle
x | y | x^y
---+---+-----
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0
in Perl auch als low-precedence Operator "xor".
Siehe `perldoc perlop', in den Abschnitten
"Bitwise Or and Exclusive Or",
"Logical or and Exclusive Or" und
"Bitwise String Operators" (inkl. JAPH-Beispiele).
Die findet man auch, wenn man nach ^ sucht (und Regexp'e ueberspringt).
cu,
Martin
--
One OS to rule them all | Martin Vorlaender | VMS & WNT programmer
One OS to find them | work: m...@pdv-systeme.de
One OS to bring them all | http://www.pdv-systeme.de/users/martinv/
And in the Darkness bind them.| home: mar...@radiogaga.harz.de
Mies formulierte Frage. $a ^ $b hat exakt ein Ergebnis, man kann das
nicht verändern. Was du tun kannst, ist, $a und/oder $b entsprechend zu
wählen. Gehe einfach alle Zeichen des (resultierenden?) Strings durch
(z.B. 'foreach (split '', $string) {} ) und erzuge passende Zeichen,
sprich, "ok" if "$z1"^"$z2" =~ /^[\x20-\x7F]$/;
> Gibts da irgendwelche Tricks um solche Dinger zu basteln?
Ja. Abigail, eine der Meister der Kunst, hat mal bei TPC einen Vortrag über
JAPHs gehalten und einige Tricks erläutert. Die Folien sind auch im Netz
irgendwo. Leider habe ich nicht mehr die URL parat (ich vermute, irgendwo unter
http://www.foad.org/~abigail/ , aber ich weiß nicht, ob sie von dort verlinkt
sind.)
Gruß,
Philip
--
Philip Newton <nospam...@gmx.li>
If you're not part of the solution, you're part of the precipitate.
http://www.foad.org/~abigail/Perl/Talks/Japhs/
Hallo Leute,
mein absoluter Favorit ist:
|@ARGV=split(/\S\n?/,<<EOF);$a+=length(shift),vec($_,$a,1)=1while@ARGV;print;
| :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
| :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
| :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
| :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
| :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
| :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-) :-)
|EOF
leider nicht von mir ;-)
Gruß
Christian
--
Wir wissen zwar nicht, wo wir hinwollen,
werden aber als erste dabei sein.
http://www.clackas.de/ Perl Delphi Linux MP3 Searchengines Domainchecker
FAQ lesen nicht vergessen: http://www.worldmusic.de/perl/mini-faq.html
> On Fri, 03 Nov 2000 16:48:34 +0100,
> Tina Mueller <tina.m...@pixelpark.com> wrote:
>> ich persoenlich kenne keine tricks. mein erstes und bis jetzt einziges
>> JAPH hab ich so hingebastelt.
> also bei mir funzt dein JAPH net...
> danielt@perceval:~/tmp> perl test | hexdump
> 0000000 0d0a
> 0000002
> Es sei denn, es soll genau das ausgeben :)
hm, ich kenne hexdump nicht.
auf welchem system hast du's denn ausprobiert?
wenn es dort nicht funktioniert, ist es keinrichtiges
JAPH, da die eigentlich portabel sein sollten. =(
gruss,
tina
--
http://tinita.de \ enter__| |__the___ _ _ ___
tina's moviedatabase \ / _` / _ \/ _ \ '_(_-< of
search & add comments \ \ _,_\ __/\ __/_| /__/ perception
please don't email unless offtopic or followup is set. thanx