Ergebnis 1 bis 9 von 9
  1. #1
    Capt'n Crunch
    Registriert seit
    10.07.2008
    Beiträge
    999

    Standard Zeichenkette aus Array

    Hi, bin zu blöd um eine Art Brutforce-Liste zu erstellen...
    habe ein array und daraus sollen alle möglichen zeichen von bsp 2-12 zeichn erstellt werden. bestimmt geht das mit rekrusiven programmieren, aber ich hab ka wie ich das genau machen soll, vllt hat jemand nen tipp für mich
    dankeschön.
    edit:
    überlegung: reicht es einfach von dem string die letzte stelle (also ganz rechts) immer um eins zu erhöhen, solange bis das letzte zeichen des arrays erreicht wurde, und dann setzte ich die nächst höhere stelle eins hoch...

    z.b aax, aay aaz, aba ...

    wenn das schon eins höher ist, shieb ich das durch also so ca:

    azx,azy,azz,baa...

    stimmt die idee soweit?
    bitcoin. Banking Is Necessary. Banks Are Not. - by Lincoln6Echo

    Das ganze Mysql usw is mir zu viel arbeit um es zu lernen

  2. #2
    Tsutomu Shimomura Avatar von -=Player=-
    Registriert seit
    15.02.2006
    Beiträge
    1.549

    Standard

    das sollte dir helfen
    Code:
    <?php
    ini_set("max_execution_time",0); 
    
    $start        = 1;
    $ende        = 5;
    $source        = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789öäüÜÄÖß !?-_.,:;&$+#/§';
    $array      = array();
    
    	for($i=0;$i<strlen($source);$i++){
    		$array[]=$source[$i];
    	}
      
    	for ($i=$start;$i<=$ende;$i++){
    		permutation($array,'',$i);
    	}
      
    	function permutation($ar,$now,$end)	{
    		if(strlen($now)==$end){
    			echo $now.'
    ';
    			return;
    		}
    		 
    		for($i=0;$i<count($ar);$i++){
    			$a=$now.$ar[$i];
    			permutation($ar,$a,$end);
    		}
    	}
    ?>

  3. #3
    Capt'n Crunch
    Registriert seit
    10.07.2008
    Beiträge
    999

    Standard

    hey nice thx. werde es mir mal anschauen
    bitcoin. Banking Is Necessary. Banks Are Not. - by Lincoln6Echo

    Das ganze Mysql usw is mir zu viel arbeit um es zu lernen

  4. #4
    Sobig Wurm
    Registriert seit
    15.12.2007
    Beiträge
    217

    Standard

    Beispiel mit foreach Schleifen:

    Code:
    <?php
    $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789öäüÜÄÖß!?-_.,:;&$+#/§';
    $chars_with_space = $chars.' ';
    $result = array();
    
    foreach($chars_with_space AS $a){
    foreach($chars_with_space AS $b){
    foreach($chars AS $c){
    //foreach($chars AS $d){
    //foreach($chars AS $e){
    //foreach($chars AS $f){
    //foreach($chars AS $g){
    //foreach($chars AS $h){
    //foreach($chars AS $i){
    //foreach($chars AS $j){
    //foreach($chars AS $k){
    //foreach($chars AS $l){
      $string = $a.$b.$c.$d.$f.$g.$h.$i.$j.$k.$l;
      $result[] = $string;
    //}}}}}}}}}
    }}}
    
    var_dump($result);
    
    ?>
    Ist etwas einfacher zu verstehen und erfüllt den selben Zweck.
    Für weitere Iterationen die // passend wegmachen.

    Achja, mehr als ein paar tausend Einträge wirst du in ein Array nicht hereinbekommen. Musste also vorher die Daten wegschreiben.

    Ganz nebenbei:
    Soeine BruteForce Worlist ist schwachsinnig, jedes Bruteforce Programm kann selber den nächsten String generieren.

  5. #5
    Capt'n Crunch
    Registriert seit
    10.07.2008
    Beiträge
    999

    Standard

    bekomm ich da nicht probleme mit dem speicher? also ichs chreibe es direkt in ne db, aber trotzdem?! kann das sein?
    bitcoin. Banking Is Necessary. Banks Are Not. - by Lincoln6Echo

    Das ganze Mysql usw is mir zu viel arbeit um es zu lernen

  6. #6
    Sobig Wurm
    Registriert seit
    15.12.2007
    Beiträge
    217

    Standard

    Zitat Zitat von 36c
    Achja, mehr als ein paar tausend Einträge wirst du in ein Array nicht hereinbekommen. Musste also vorher die Daten wegschreiben.

    Ganz nebenbei:
    Soeine BruteForce Worlist ist schwachsinnig, jedes Bruteforce Programm kann selber den nächsten String generieren.
    Zitat Zitat von Hu5eL
    bekomm ich da nicht probleme mit dem speicher? also ichs chreibe es direkt in ne db, aber trotzdem?! kann das sein?
    Genauer lesen.
    Und ja, wenn man das in eine DB schreibt wird die Festplatte voll.

  7. #7
    Capt'n Crunch
    Registriert seit
    10.07.2008
    Beiträge
    999

    Standard

    naja damit das die platte voll wird rechne ich ja.. ok dann mach ich das erstmal. mal schaun was bei rauskommt, nächstes prob sind die sonderzeichen :-( scheiß zeichensätze. werde vllt heute abend den "quellcode" posten um vllt verbesserung zu erhalten

    Added after 10 hours 39 minutes:

    ok nach langer zeit melde ich mich... so verwender für die sonderzeichen jetzt iso-8859-15. benutze folgende zeichen
    string(67) "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZäÄöÖüÜ!§$%&.-_#"

    fällt euch nich was ein was vllt rein sollte?

    Added after 10 hours 48 minutes:

    ok gehe jetzt dann mal in bett, erstelle alle möglichkeiten von 1-8 stellen... mal sehen wie groß die db wird
    bitcoin. Banking Is Necessary. Banks Are Not. - by Lincoln6Echo

    Das ganze Mysql usw is mir zu viel arbeit um es zu lernen

  8. #8

    Standard

    @Player:

    Ich versteh diesen Schritt nicht:
    Code:
    for($i=0;$i<strlen($source);$i++){
          $array[]=$source[$i];
       }
    Wenn $source ein Array wäre würde ich das verstehen aber so o.O

    Mfg

    Chaos
    Eine Regierung muß sparsam sein, weil das Geld, das sie erhält, aus dem Blut und Schweiß ihres Volkes stammt.
    Es ist gerecht, daß jeder einzelne dazu beiträgt, die Ausgaben des Staates tragen zu helfen. Aber es ist nicht gerecht, daß er die Hälfte seines jährlichen Einkommens mit dem Staate teilen muß.

    Friedrich II. der Große

  9. #9
    Sobig Wurm
    Registriert seit
    15.12.2007
    Beiträge
    217

    Standard

    Zitat Zitat von 2called-chaos
    Ich versteh diesen Schritt nicht:
    Code:
    for($i=0;$i<strlen($source);$i++){
          $array[]=$source[$i];
       }
    Wenn $source ein Array wäre würde ich das verstehen aber so o.O
    Ich glaub das ist ein Typo.
    Er wollte wohl nicht auf Source als Array zugreifen sondern auf die einzelnen Buchstaben. Dann müsste es aber heissen:
    Code:
    for($i=0;$i<strlen($source);$i++){
          $array[]=$source{$i};
       }

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •