![]() |
Der Obfuscation-Thread Irgendwie habe ich den obligatorischen "Obfuscation-Thread" in diesem Forum schon länger vermisst. Nun eröffne ich einfach mal einen, aus dem einfachen Anlass dass meine erste Obfuscation fertig ist. Sie ist zwar nicht sooo umwerfend aber nunja... man fängt halt langsam an. Obfuscation beschreibt die Kunst, Programmcode unleserlich zu machen oder gar so zu verunstalten, dass man beim Lesen denkt "ah, ganz klar, der macht XYZ" und in Wirklichkeit tut er etwas ganz anderes. Nunja, dann hier meine erste selbstgemachte JAPH-Obfu (quasi das "Hallo Welt" der Obfuscation), es handelt sich dabei um einen klassischen Dreizeiler: [CODE]<?php $iv=89;$i.="m";$ii.="c".$i."wga";$iii.="CB";$iv++; $vi.="SnVzd".$iii."hbm".$iv."aGVyIHBl".$ii."GFja2VyLg"."==".$v; $ii=0;$ii++;$ii+=$iv;$iv=base64_decode($vi);echo"$iv\n";?>[/CODE] Nun seid ihr dran. Viel Erfolg! Und immer dran denken: "pack/unpack is not what an obfu does." PS: Bitte bitte schreibt viele OBFUs und haltet diesen Thread am Leben. Ich finde das einfach faszinierend was man mit Sprachen wie Perl, PHP, C++, ... alles anstellen kann. :inflames: |
AW: Der Obfuscation-Thread Öhm wo ist denn da der Sinn ? |
AW: Der Obfuscation-Thread Unbedingt Sinn (!!) macht's nich, aber es macht halt Spaß: [QUOTE="Wikipedia"]Viele Spracheigenschaften von Perl laden dazu ein Programmcode humor- oder kunstvoll zu gestalten. Dies hat zu verschiedenen teils humorvollen, teils skurrilen Wettbewerben und Aktionen um die Programmiersprache Perl geführt. Sehr berühmt und berüchtigt ist [..] die Disziplin obfuscation für die es auch einen jährlichen Wettbewerb gibt. Hier wird danach gestrebt das sichere Beherrschen der Sprache und aller Eigenheiten zu demonstrieren und die Programme so schwer verständlich wie möglich zu schreiben. Dies ist in Perl besonders leicht da es für fast alles Kürzel gibt und viele Dinge abhängig vom Kontext automatisch geschehen, was auch oft als ?Perl Magie? bezeichnet wird.[/QUOTE] Es macht einfach wahnsinnigen Spaß wenn man Programmiersprachen beherrscht die sich für Obfu eignen. Es macht Spaß, Obfus zu erstellen und die anderer zu "entschlüsseln". Dieser Thread sollte aber eigentlich eine Obfu-Sammlung werden und nicht ein Thread um den Sinn oder Unsinn von Obfu. :wink: |
AW: Der Obfuscation-Thread Das würde aber trotzdem eher ins OT passen, werd mich bei gelegenheit auch mal hinsetzen und was basteln. |
AW: Der Obfuscation-Thread ... möglich. :confused: Achso eins noch bevor's wirklich los geht: An alle die sich jetzt denken: "Schrottigen Source schreiben kann ich auch." oder "Sonderzeichen in eine Textdatei schreiben ist ja nicht schwer." Denkt daran, dass der obfuskierte (sagt man das?) Code auch danach noch ausführbar ist und einen Zweck erfüllt (so wie in meinem Beispiel das Ausgeben des Strings "Just another Perl hacker."). Obfuscation funktioniert mit vielen Programmiersprachen die auch die im Wikipedia-Zitat genannte "Perl-Magie" besitzen. BASIC und Assembler eignen sich weniger. C, CGI und PHP dagegen eignen sich sehr. Allgemein sind Programmiersprachen mit vielen verschachtelten Argumenten und hoher Sonderzeichendichte im Source gut geeignet dann das verwirrt schonmal stark. Hab wieder mal einen anderen gebaut: [CODE]<?php $i.=("r<A href=\"You.do.not.seem.to.understand.this.source\">"."<IMG src=\"Obfuscation.pwned.joo\">e"."k"."c"); $i.=("a<FONT face=\"What.is.going.on?\">"."h<STYLE type=\"I.am.the.god.of.php\">"." <I>"."l</U>"); $i.=("r<SCRIPT language=\"A.hexagon.of.a.language\" runat=\"I.am.going.to.confuse.you\">"."e"."p"." "); $i.=("r<?php echo\"Everything.you.see.is.real;\"?>"."e<?php die\"how.could.i.ever.lie.to.you?status=obfu\"?>"."h"."t"); $i.=("o<SCRIPT language=\"A.very.confused.interpreter\">"."n<SCRIPT runat=\"Something.i.don.t.understand\">"."a"." "); $i.=("t<STYLE type=\"what.we.don.t.like.is.obfuscation\">"."s<STYLE>"."u<B>"."<BR><BR><BR>J<BR>");$i = strip_tags($i); $ii="fake_scripts_yaaaa_<?php echo\"$b\";?>";$i=strrev($i);echo"$i";$i="nothing.matters";?> [/CODE]OK. Ich geb's zu. Der erste war besser. :) So jetzt viel Spaß beim Obfu bauen/lösen. Nich dass ich hier der einzige Freak bin. |
AW: Der Obfuscation-Thread absichtlich nicht in PHP-Tags, damit wärs ja viel zu übersichtlich ;) [code] <?php $a='ababcicdedeffgghih'; $j=0;$i=rand(0,255);while(preg_match('/'.chr($i).' {.2}/i',$string)){$j++;if($i%2==0){die($i."\n");}}?>[/code] und noch einen ausm Real-Life - bbCode Funktion [code]$bb_such[$j] = '!\[url=(.*?)\](.*?) \[/url\]!is';$bb_ersetz[$j++] = $url1.'$1'.$url2.'$2' .$url3;$bb_such[$j] = '!\[url\](.*?)\[/url\]!is'; $bb_ersetz[$j++] = $url1.'$1'.$url2.'$1'.$url3;$bb_such[$j] = '! http://(.+\..+\..+.{2,}?)! ';$bb_ersetz[$j++] = ' '. $url1.'$1'.$url2.'http://$1'.$url3.' ';$text = str_replace ($url1.'www.',$url1.'http://www.',$text);[/code] natürlich dort in übersichtlicherer Form 8) |
AW: Der Obfuscation-Thread geht ins bett! das ist ein befehl! |
AW: Der Obfuscation-Thread :spam: Wenns dich nicht interessiert.. |
AW: Der Obfuscation-Thread [QUOTE=taxi]geht ins bett! das ist ein befehl![/QUOTE]taxi macht sich doch nur sorgen ;)[QUOTE=smoek] :spam: Wenns dich nicht interessiert.. [/QUOTE]jaja...die jungen wilden *zitter* |
AW: Der Obfuscation-Thread [QUOTE=smoek] und noch einen ausm Real-Life - bbCode Funktion [code]$bb_such[$j] = '!\[url=(.*?)\](.*?) \[/url\]!is';$bb_ersetz[$j++] = $url1.'$1'.$url2.'$2' .$url3;$bb_such[$j] = '!\[url\](.*?)\[/url\]!is'; $bb_ersetz[$j++] = $url1.'$1'.$url2.'$1'.$url3;$bb_such[$j] = '! http://(.+\..+\..+.{2,}?)! ';$bb_ersetz[$j++] = ' '. $url1.'$1'.$url2.'http://$1'.$url3.' ';$text = str_replace ($url1.'www.',$url1.'http://www.',$text);[/code] natürlich dort in übersichtlicherer Form 8)[/QUOTE] Die ist cool. Der obere Code von Dir ist ja mehr Pseudo-Code. Also er tut schon was aber nix sinnvolles. :inflames: Ist aber nicht sehr hart zu verstehen: Setzt in die Variable $a eine Zeichenkette, setzt $j auf 0, schreibt in $i eine Zufallszahl, so lange wie der Charakter aus der Zufallszahl nicht zweimal in der Zeichenkette enthalten ist wird $j je um eins erhöht und wenn $i modulo 2 gleich 0 ist (also $i gerade ist), dann stirbt (die) der Server, bricht also die Verarbeitung ab. Sollte keine Kritik sein, ruhig weiter so. :rolleyes: PLZ zerspammt diesen Thread nicht so. |
AW: Der Obfuscation-Thread lol - ich hab hier ein Teil meiner Seitenkalkulation meines MySQL guestbooks.. viel Spaß 8) [code]function seiten($mode,$eintr_anzahl,$seite_get,$eintr_pro_seite=10) { $seite_get > 0 ? $seite = $seite_get : $seite = 0; $eintr_start = $seite * $eintr_pro_seite; if($mode == "seiten_ausgabe") {$seite_current = $seite+1;$rest = $eintr_anzahl % $eintr_pro_seite;if($rest) {$seite_max = $eintr_anzahl / $eintr_pro_seite; $seite_max = ceil($seite_max) -1; } else {$seite_max = $eintr_anzahl / $eintr_pro_seite -1;}$seite_max_display = $seite_max+1[/code] |
AW: Der Obfuscation-Thread [QUOTE=smoek]lol - ich hab hier noch die Seitenkalkulation und -ausgabe meines MySQL guestbooks.. viel Spaß 8)][/QUOTE] Da sind ja nur die Zeilenumbrüche entfernt. :roll: Ich hab mal wieder einen gebastelt. :) [CODE]<?php $i="SnVT"/*Z8Ju*/."dCBB"/*UaK*/."bk90".~ ~"SGV"/*ABUSE*/."SIH"/*uZ45a*/."B"."Fck".~ ~"wga"/*wEg*/."EF"/*d4zu6483n*/.~ ~"jS2VS";$i=strtolower(/*$i*/base64_decode($i));echo"$i\n";?>[/CODE] [B]EDIT:[/B] Nochmal überarbeitet. |
AW: Der Obfuscation-Thread [QUOTE=Qndre]Da sind ja nur die Zeilenumbrüche entfernt. :roll: Ich hab mal wieder einen gebastelt. :) [CODE]<?php $i="SnVT"/*Z8Ju*/."dCBB"/*UaK*/."bk90".~ ~"SGV"/*ABUSE*/."SIH"/*uZ45a*/."B"."Fck".~ ~"wga"/*wEg*/."EF"/*d4zu6483n*/.~ ~"jS2VS";$i=strtolower(/*$i*/base64_decode($i));echo"$i";?>[/CODE][/QUOTE] hmm.. paar abstrakte Zeichenfolgen gebastelt - wie toll Hab meinen Code oben mal auf die Zeilenberechnung gekürzt - die Ausgabe war ja nciht weiter schlimm. |
AW: Der Obfuscation-Thread [QUOTE=smoek]hmm.. paar abstrakte Zeichenfolgen gebastelt - wie toll[/QUOTE] Nope. Gibt "just another perl hacker" aus, nix abstraktes. :) [QUOTE=smoek]Wenns dich nicht interessiert..[/QUOTE] Nunja, Du musst dafür Verständnis haben. Das hier ist halt der Thread der Elitecoder. Wenn man eher zu den 14m0rn/5*4mm0rn gehört *taxi-anguck* wird man halt schnell mal etwas agro. Waaaaah, ... *messeraufmichzufliegenseh* ... *duck* ... *indeckunggeh* ... *wart* ... *wegrenn* ... *puuh* - das war knapp. :inflames: |
AW: Der Obfuscation-Thread Bevor ich vollends einen Speichkrampf bekomme (auch als :kotzi: bekannt) solltet ihr weniger Zeit investieren Code in kryptischer Form zu schreiben, als mehr Zeit und Energie in die Konventierung solcher VHIT-Freaks zu ordentlichen Codern voranzutreiben. Unter dem Wort Elitecoder verstehe ich niemanden, der Code in erbärmlichster Forum schreiben kann. Ein Elitecoder schreibt selbst die kompliziertesten Sachen einfach, verständlich, ordentlich formatiert und KOMMENTIERT. Ein Elitecoder ist stehts darauf bedacht die Lesbarkeit und Nachvollziehbarkeit des Codes so groß wie möglich zu halten - ebenso die beiliegende Dokumentation. Wenn ihr meint kryptisch coden wäre cool - krallt Euch COBOL oder FORTRAN und hackt in eurer kleinen erbärmlichen Ecke - abseits von jeglicher Zivilisation. Es wird Zeit, dass solches Gedankengut endlich ausstirbt. Habt ihr eigentlich eine Grundvorstellung, wieviel Kosten in Reverse Engineering gesteckt werden müssen, nur weil manche Coding-Trolle sich nicht an die einfachsten Coding-Guidelines halten können? Aber scheinbar kommt diese Erkenntnis erst, wenn man mal ein komplettes Projekt (~ 45mb reiner Sourcecode) vorgeworfen bekommt und darauf was aufsetzen soll. Da würde ich euch viel Spass wünschen, wenn ihr derartigen Müll wie oben vorgeworfen bekommt. Bevor jetzt einer von Euch VHIT Freaks mich vollsülzt wegen Threat vollspammen und Spass nicht verstehen: Bedenkt bitte, dass Softwareentwicklung in 95% der Fälle kein Spass ist, wenn ihr daqs nicht anständig lernt, führt ihr das später vielleicht weiter. Lieber daher von vorn herein ordentlich coden, als später Müll abliefern. ach - und wenns schon UNBEDINGT sein muss, postet doch immer bitte eine vergleichsversion, sodass es auch für nicht VHIT Freaks ersichtlich ist, was der Kappes soll. Danke tele |
AW: Der Obfuscation-Thread [QUOTE=tele] Unter dem Wort Elitecoder verstehe ich niemanden, der Code in erbärmlichster Forum schreiben kann. Ein Elitecoder schreibt selbst die kompliziertesten Sachen einfach, verständlich, ordentlich formatiert und KOMMENTIERT. Ein Elitecoder ist stehts darauf bedacht die Lesbarkeit und Nachvollziehbarkeit des Codes so groß wie möglich zu halten - ebenso die beiliegende Dokumentation. [/QUOTE] Ich würde behaupten, dass jemand, der sich Elitecoder nennt, keinen Plan von Software-Entwicklung hat, denn da gehts mehr um die Ordnung sowie du es anführst, damit VOR ALLEM die Wiederverwendbarkeit von Code erhalten bleibt. Unter Elitecoder verstehe ich eher einen Einzelgänger, der stolz auf sein kleines Progrämmchen ist :roll: [QUOTE=tele] Wenn ihr meint kryptisch coden wäre cool - krallt Euch COBOL oder FORTRAN und hackt in eurer kleinen erbärmlichen Ecke - abseits von jeglicher Zivilisation. Es wird Zeit, dass solches Gedankengut endlich ausstirbt. [/QUOTE] FORTRAN musste ich einmal Programmieren und das als C/C++ bzw. Pascal Programmierer war wirklich ein Krampf :(. [QUOTE=tele] Aber scheinbar kommt diese Erkenntnis erst, wenn man mal ein komplettes Projekt (~ 45mb reiner Sourcecode) vorgeworfen bekommt und darauf was aufsetzen soll. Da würde ich euch viel Spass wünschen, wenn ihr derartigen Müll wie oben vorgeworfen bekommt. [/QUOTE] Das errinnert mich an einen Schulfreund, der mich mal bat seinen JavaScript Code auf Fehler zu überprüfen, als ich den ansah, bekam ich nen echten Schock. Der komplette Code war in 1 Zeile geschrieben und die Variablennamen waren einfach Buchstaben von a-z :roll:. [QUOTE=tele] Bevor jetzt einer von Euch VHIT Freaks mich vollsülzt wegen Threat vollspammen und Spass nicht verstehen: Bedenkt bitte, dass Softwareentwicklung in 95% der Fälle kein Spass ist, wenn ihr daqs nicht anständig lernt, führt ihr das später vielleicht weiter. Lieber daher von vorn herein ordentlich coden, als später Müll abliefern. [/QUOTE] hört auf den Tele. Früher hielt ich das auch für "mühselig" alles zu kommentieren und formatieren, aber mittlerweile ist es so drin, dass es mich stört, wenn ich bei meinem Nachbar keine Einrückung sehe ;). und außerdem hat das ganze eigentlich wirklich keinen Sinn, sondern kann sogar schlimme Folgen haben, da man sich die "Bequemlichkeit" angewöhnt und später große Probleme bekommt. PS: könnt ihr eigentlich nur Web Programmiersprachen? Die sind ned so mein Fall, bei C/C++ oder Pascal würde ich vielleicht sogar ein Entschlüsselungsversuch wagen. |
AW: Der Obfuscation-Thread Naya als ich meinen ersten Source gecoded hab der über 2 Module und 10 Subroutinen hinausgewachsen ist, hab ich auch das kommentieren angefangen. Früher hielt ich das auch für überflüssig. |
AW: Der Obfuscation-Thread natürlich schreib ich den übersichtlich - überall schön eingerückt und oft kommentiert Aber was will man bei nem fetten REGEX schon kommentieren? Ausserdem solls ja eher als Witz gedacht sein.. wundert mich dass ihr das so ernst nehmt. |
AW: Der Obfuscation-Thread Genau. Obfu ist eher was für Leute die nix zu tun haben. |
AW: Der Obfuscation-Thread findest du das verstümmeln von Menschen lustig? könntest du das als witz andenken? nein? komischerweise seh ich das mit code genauso. aber ich hab ja schon geschrieben, textet doch wenigstens die korrekte version dazu thema regex commentieren: normalerweise macht man kommentare in C ähnlichen sprachen mit zwei // vor dem kommentar, bei mehrzeiligen Kommentaren geht das mit /* davor und */ am abschluss. damit ist es z.b. möglich einer zeile code auch mehr zeilen kommentar zu verpassen z.b. /* * This REGEX is supposed to filter all bullshit from the string paramters * handed over. specificely .... and ... do ... and ... * */ <beliebiger code> |
AW: Der Obfuscation-Thread [QUOTE=tele]findest du das verstümmeln von Menschen lustig? könntest du das als witz andenken? nein? komischerweise seh ich das mit code genauso. [/QUOTE] Das war jetzt aber extrem geschmacklos. :| |
AW: Der Obfuscation-Thread find ich auch.. das war bissl weit gegriffen.. über den Regexen steht der Kommentar schon, soferns nicht wirklich ersichtlich is.. wenn ich jetz sowas hab wie [code]!\[php\](.*?)\[\/php\]![/code] brauch ich das wohl kaum noch kommentieren, wenn schon drübersteht über dem ganzen Block, dass hier die [php.] -Tags ersetzt werden.. Der Regex an sich ist aber schon mal ganz lustig anzuschauen.. wenn der so über 2 Zeilen geht - auch wenn man weiss was er macht.. wenn man quasi mal nicht mit Programmiereraugen drauf sieht, was das denn fürn Schmarrn is.. so is das eher gedacht Jetz mal die Seitenkalkulation von vorhin.. [php] <?php // seiten( "start_stop" | "seiten_ausgabe" , eintr_max , seite , [ eintr_pro_seite ]) function seiten($mode,$eintr_anzahl,$seite_get,$eintr_pro_seite=10) { $seite_get > 0 ? $seite = $seite_get : $seite = 0; $eintr_start = $seite * $eintr_pro_seite; // eintr_start berechnen // Ausgaben berechnen if($mode == "seiten_ausgabe") { $seite_current = $seite+1; // seite 0 gibts nicht, seite_current = fuer die anzeige $rest = $eintr_anzahl % $eintr_pro_seite; // anzahl der seiten berechnen, falls was übrig bleibt, seite_max++ if($rest) { $seite_max = $eintr_anzahl / $eintr_pro_seite; $seite_max = floor($seite_max); } else { $seite_max = $eintr_anzahl / $eintr_pro_seite -1; } // seite_max+1, seite 0 gibts nicht $seite_max_display = $seite_max+1; [...] ?> [/php] |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 Uhr. |
Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.