Variablen und Funktionen unkenntlich machen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variablen und Funktionen unkenntlich machen

    Hallo Leute,

    leider stehe ich mal wieder vor einem reg-ex problem und komme nicht weiter. gesucht habe ich schon, aber nichts passendes gefunden und irgendwie bringt mich reg-ex um den verstand

    ich will alle variablen unkenntlich machen, damit man nicht gleich den script versteht.

    also alle variablen finden und den text mit md5() verschlüsseln.

    also $beispiel durch $md5('beispiel') ersetzen (weiss gott oder md5 was md5('beispiel') ergibt). demnach müsste reg-ex nach alle werten suchen die mit $ beginnen und mit einem leerzeichen, komme, semikolon, zeilenumbruch, [ und ( enden.


    vielleicht hat mal jemand ähnliches gemacht und kann paar schnippsel zum weiterbauen reinwerfen

    besten dank....
    Zuletzt geändert von joop; 18.01.2006, 15:24.

  • #2
    Sorry für die dummer Frage aber wat bringt dir das ???

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Kommt drauf an wie du deine Funktionen deklarierst.

      PHP-Code:
      function name_der_funktion($parameter1$parameter2) {
      // ...
      }

      // Oder mit Leerzeichen zwischen name_der_funktion und der Klammer 
      dann suchste einfach nach 'function [A-Za-z_0-9](' oder sowas...

      gruß
      flo

      Kommentar


      • #4
        Der Sinn der Sache ist es, dass der Script schwieriger zu verstehen ist. Mal ein triviales Beispiel:

        es ist ja ein unterschied ob da steht

        $beispiel = oder $558ED56 =

        oder?

        Klar bei dem einfachem Beispiel egal, aber bei einem koplexen Script sicher recht effektiv. Darum meine Idee alle Werte die mit einem $ beginnen und mit ; oder , oder . oder [ oder ( enden mit md5 zu verschlüsseln und zu ersetzen.

        also im script wird z.b. alle $date werde durch $md5('beispiel') ==> $558ED56 ersetzt.

        Versteht man mich

        Kommentar


        • #5
          Original geschrieben von joop
          es ist ja ein unterschied ob da steht

          $beispiel = oder $558ED56 =

          oder?
          Ja, und zwar ein gewaltiger - letzteres ist kein gültiger Variablenname.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Original geschrieben von wahsaga
            Ja, und zwar ein gewaltiger - letzteres ist kein gültiger Variablenname.
            Sunshine CMS
            BannerAdManagement
            Borlabs - because we make IT easier
            Formulargenerator [color=red]Neu![/color]
            Herkunftsstatistik [color=red]Neu![/color]

            Kommentar


            • #7
              Das könnte man ja mit einem
              PHP-Code:
              $neuerVarName 'x' md5($alterVarName); 
              umgehen ;D

              Kommentar


              • #8
                Du suchst nach $irgendwas und chiffrierst es. Außerdem machst du bestimmt auch so Sachen wie alle Zeilenumbrüche und Kommentar entfernen.

                Aber anschließend solltest du das Script nochmal testen, sonst machts am Ende etwas völlig anderes als zuvor!

                Tja wie du ahnst, ist das keine ganz einfache Aufgabe. Wahrscheinlich am besten zu lösen, wenn man PHP direkt umbaut oder eine Extension schreibt. Dann kann man sich nämlich darauf verlassen, dass der Parser schon alles zerlegt und erkannt hat. Somit sind sämtliche Umschreibungen sicherer, weil der Kontext genau bekannt ist. Allerdings wird das ein riesen Projekt, denn der Parser kennt sicherlich hunderte Token in dutzenden Kontexten und für alle müßtest du eine Behandlung parat haben.

                Da würde ich mich doch lieber auf einen fertigen Obfuscator verlassen. Such mal danach, würde mich wundern, wenn es sowas nicht auch für PHP gibt.

                Kommentar


                • #9
                  http://turck-mmcache.sourceforge.net/index_old.html damit kannste PHP Code kompilieren.
                  Sunshine CMS
                  BannerAdManagement
                  Borlabs - because we make IT easier
                  Formulargenerator [color=red]Neu![/color]
                  Herkunftsstatistik [color=red]Neu![/color]

                  Kommentar


                  • #10
                    der zend-encoder kann das was du dir wünscht auch, nur besser kostet dafür allerdings auch Geld, gleiches gilt für den eAccelerator-Encoder (nur ist der nicht ganz bugfrei hinsichtlich OOP, bzw. funktioniert mit den neuesten php-Versionen gar nicht erst)

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar

                    Lädt...
                    X