Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Große String-Liste out of Memory - Hilfe? (https://www.delphipraxis.net/180065-grosse-string-liste-out-memory-hilfe.html)

Pogoner 20. Apr 2014 14:19

Große String-Liste out of Memory - Hilfe?
 
Guten Tag
Folgendes Problem: Der Code funktioniert einwandfrei, solange die Stringliste nicht zu groß wird. Das wird sie allerdings unweigerlich, daher meine Frage - wie kann ich das umgehen:

Kann sein, dass hier ein oder 2 'end' komisch sitzen, da ich eine Menge Kommentarcode grade der Übersichtlichkeit wegen gelöscht habe.
Das Programm soll eine Website auf nicht-verlinkte Unter-Seiten absuchen.
Mein Problem ist leider, dass bei 52 Zeichen und über 5 Stellen (ich glaube) der Cluster zu groß wird und ich selbst mit 8GB RAM out of Memory bekomme.
Jetzt will ich die ganzen Möglichkeiten aber eigentlich garnicht speichern, sondern es würde mir ja reichen, sie direkt mit dem Spider abzufragen - wenn ich allerdings npw nicht in Cluster oder Result abspeichere, funktioniert der Code nichtmehr... Wenn mir da jemand helfen könnte, der da mehr versteht als ich, wäre das sehr nett:?
Ich sitze schon seit Stunden dran und habs mit Freeandnil, Destroy/Create, Savetofile und Writeln versucht, um das zu umgehen, aber ich bekomms nicht hin:(
Wie kann ich diese ganzen Kombinationen erstellen lassen und direkt abgreifen, ohne dass eine riesige Stringlist entsteht?

Vielen Dank schonmal:thumb:


Delphi-Quellcode:
function TForm1.bruteforce (astring: string;substr: string; startlen: integer; endlen: integer):LongInt;

var
spider: TSpider;
i,n,x,y, z : integer;
npw, Zeile: string;
Txtdatei: Textfile;

label step1;

begin

Hlplst.Clear;
Cluster.Clear;
Results.Clear;

y:= 0;

spider := TSpider.Create(Self);

urls := 'www.Testwebsite.com/' ;

For x:= 1 to length(substr) do
  begin
    Hlplst.Add(substr[x]);
  end;

step1:

        for i := 0 to hlplst.Count -1 do begin
                for n := 1 to length(astring) do begin

                npw := hlplst.Strings[i]+astring[n];

               Cluster.Add(npw);                                  
             

                if length(npw) >= startlen then
                begin                                            
                Results.Add(npw);                                
           
        // Hier beginnt nur der Spider
                        urlk := urls + npw      ;
                        spider.Initialize(urlk);
                        spider.CrawlNext();

                 
                         Edit1.Text := Spider.LastUrl;
                         Edit2.Text := Spider.LastHtmlTitle;

                                If Edit2.Text = 'Vorhanden' then
                                begin
                                        Memo4.Lines.Add (Edit1.Text);
                                end;
                                               
          // Hier endet er


                end;
        end;
        HlpLst.Clear            ;                        
        hlplst.AddStrings(Cluster);                        
        Cluster.Clear     ;                                  
   

        if length(npw) + 1 <= endlen then goto step1;                                
        hlplst.Clear;
     end;
        result := 0;
        Label1.Visible := False;
       
         


        end;

  end;

Popov 20. Apr 2014 14:42

AW: Große String-Liste out of Memory - Hilfe?
 
Also 8MB sollten nicht die Grenze sein. In Grunde sollte das locker bis paar GB gehen. Es kann sein, dass du einfach nicht mehr ausreichen zusammenhängenden Speicher hast.

TStrings besitzt die Eigenschaft Capacity. Normalerweise muss man sich um die nicht kümmern, die wird bei Bedarf automatisch erhöht. Man kann den Wert aber auch manuell setzten wenn man in etwa weiß wie viele Einträge kommen. Bei dir wären das die Menge
Delphi-Quellcode:
length(substr)
als Wert. Also vorher die Zahl ermitteln, noch 10% als Reserve dazugeben und gleich zu Beginn Capacity mit dem Wert setzten. Entweder kommt dann die Fehlermeldung an der Stelle oder es gibt keine Überraschungen mehr.

Dalai 20. Apr 2014 14:43

AW: Große String-Liste out of Memory - Hilfe?
 
Ich empfehle dringend, das Label rauszuschmeißen und stattdessen eine rekursiv arbeitende Funktion aufzubauen! Goto ist böse. Davon abgesehen wird
Delphi-Quellcode:
spider
nirgendwo ersichtlich freigegeben. Das Problem ist IMO keineswegs eine zu große Stringliste sondern ein falsches Konzept. Mir ist durchaus bewusst, dass Menschen Schwierigkeiten haben, rekursiv zu denken (ebenso wie exponentiell), aber der Aufwand lohnt sich.

Ergänzung: Alternativ, wenn die Rekursion unnötig oder ungeeignet ist, bietet sich vielleicht eine for- oder while-Schleife an, deren Durchlauf man mit
Delphi-Quellcode:
Continue
überspringen kann.

MfG Dalai

Popov 20. Apr 2014 14:57

AW: Große String-Liste out of Memory - Hilfe?
 
Diese Schleife
Delphi-Quellcode:
  step1:

  //..

  if length(npw) + 1 <= endlen then goto step1;
kann man auch so lösen
Delphi-Quellcode:
  repeat

  //..

  until (length(npw) + 1) > endlen;
Die repeat Schleife wird so lange wiederholt, bis (length(npw) + 1) > endlen ist.

Nebeinbei. U. U. kann das missverstanden werden:
Delphi-Quellcode:
if length(npw) + 1 <= endlen
. Hier prüft Delphi
Delphi-Quellcode:
endlen
evtl. nur gegen die
Delphi-Quellcode:
1
.

Pogoner 20. Apr 2014 17:56

AW: Große String-Liste out of Memory - Hilfe?
 
Danke erstmal für die Antworten
Zitat:

Zitat von Popov (Beitrag 1256272)
Also 8MB sollten nicht die Grenze sein. In Grunde sollte das locker bis paar GB gehen. Es kann sein, dass du einfach nicht mehr ausreichen zusammenhängenden Speicher hast.

Da hast du dich verlesen, ich sprach von 8GB.

Danke für den Goto-Ersatz - ich hatte noch mit Goto programmieren gelernt und bin darin verhaftet^^

Aber mein Problem bleibt. Ich muss erneut darauf hinweisen, dass es die Stringlist (Bei unter 5 Stellen ~600MB RAM Bedarf funktioniert alles einwandfrei) ist. Ich errechne mit der Funktion unten bei 5 Stellen und 52 möglichen Zeichen 380204032 Strings - allein die Savetofile Textdatei zu öffnen braucht mindestens 10 Sekunden mit Notepad. Mehr Stellen erhöhen die Potenz. Ich bräuchte eine Möglichkeit, die Kombinationen, die in Results gespeichert werden bzw in Cluster direkt abzugreifen, um das Entstehen einer so großen Stringlist zu verhindern.

Danke erneut:)

€dit: Das Konzept funktioniert, ich habe den Spider mit Memofeldern getestet und die Results/Cluster-Stringlisten mit Savetofile ausgelesen. Es liegt an der riesigen Menge, die er berechnet. Wenn ich die StringLists per Freeandnil freigebe, ist mein RAM wieder völlig in Ordnung.

Sir Rufo 20. Apr 2014 18:08

AW: Große String-Liste out of Memory - Hilfe?
 
Es wäre auch hilfreich deine Delphi Version zu kennen (kannst du in deinem Profil eintragen) und ob du auch eine 64bit-Anwendung erzeugst, sonst kannst du auf deine 8GB Speicher eh nicht zählen ;)

BTW: Das macht die Verarbeitung künstlich langsamer
Delphi-Quellcode:
                         Edit1.Text := Spider.LastUrl;
                         Edit2.Text := Spider.LastHtmlTitle;
und die Controls sollten auch nicht als Zwischenspeicher misbraucht werden ;)

Uwe Raabe 20. Apr 2014 18:12

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Pogoner (Beitrag 1256284)
Ich bräuchte eine Möglichkeit, die Kombinationen, die in Results gespeichert werden bzw in Cluster direkt abzugreifen, um das Entstehen einer so großen Stringlist zu verhindern.

In dem Fall wäre es vielleicht hilfreich, wenn du den prinzipiellen Ablauf z.B. in einem Flussdiagramm verdeutlichst. Dann kann man schneller sehen, wo man den Algorithmus abändern kann um den Speicherverbrauch zu reduzieren.

Pogoner 20. Apr 2014 18:24

AW: Große String-Liste out of Memory - Hilfe?
 
Wow ihr seid ja schnell
Ich benutze Delphi 6.
Mein System ist 32bit.

Allein schon, dass die Cluster-Stringlist bei 5 Stellen knapp 600MB verbraucht, und ich bis 10 Zeichen gehen muss (exponentiell steigend) macht die 8GB irrelevant...

Gefolgt bin ich diesem Tutorial hier, bei dem die Funktion besser erklärt ist, als ich es könnte: http://www.delphipraxis.net/attachme...delphi_131.pdf

Kurz gesagt:
_____a___b___c___d
aa| aaa aab aac aad
ab| aba abb abc abd
ac| aca acb acc acd
ad| ada adb adc add

Linke Spalte ist die Hlplst, die Kombinationen ist die Cluster-Stringlist
Aber ehrlichgesagt hab ich nicht verstanden, wo ich wann meine Cluster-Werte abgreifen kann und die Cluster-Liste wieder reseten kann, ohne dass sie wieder von vorne anfängt...

Die Edit-Felder mach ich raus und frage es direkt ab - guter Hinweis.

Danke nochmals^^

Sir Rufo 20. Apr 2014 18:44

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Pogoner
ich selbst mit 8GB RAM out of Memory bekomme

von denen du rein gar nichts hast bei einer 32bit Anwendung.

Und wenn du den Speicher stark fragmentierst, dann ist sogar schon weit vor der 32bit-Grenze von 2GB Schluss.

Pogoner 20. Apr 2014 18:48

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1256289)
Und wenn du den Speicher stark fragmentierst, dann ist sogar schon weit vor der 32bit-Grenze von 2GB Schluss.

Ja aber das ist ja nicht mein primäres Problem - Selbst wenn ich 100GB nutzen könnte, würde mir das in dem Fall nicht helfen, da der Bedarf mit jeder Stelle Faktor 10 wächst. Deshalb will ich die Cluster-Liste ganz vermeiden und die Einträge direkt in den Spider einspeisen... Nur ich weiß eben nicht, wo/wie ich das tun kann...

Sir Rufo 20. Apr 2014 18:51

AW: Große String-Liste out of Memory - Hilfe?
 
Irgendwie erstellst du ja diese Liste, also du erstellst jeden einzelnen Eintrag und fügst diesen in die Liste.

Nun füg den Wert nicht in die Liste, sondern übergib den Wert an die Routine, die etwas damit macht

Pogoner 20. Apr 2014 18:58

AW: Große String-Liste out of Memory - Hilfe?
 
Ja das will ich ja die ganze Zeit:-D Aber wie schon 2x gesagt - ich weiß nicht, wo ich das tun muss. Für mich mit meinem einfachen Delphi-Gemüt liest sich der Code nicht so einfach:?
Delphi-Quellcode:
step1:

        for i := 0 to hlplst.Count -1 do begin
                for n := 1 to length(astring) do begin

                npw := hlplst.Strings[i]+astring[n];

               Cluster.Add(npw);                 //wenn ich das hier entferne, gehts nichtmehr
                                                  //dann kommt nur aa bis a0, aber nicht aaa-aa0 etc
                                                  //sonst hätte ich es hier abgegriffen
                                                  //desweiteren loopt es dann die aa-a0 immer wieder
                if length(npw) >= startlen then
                begin
                Results.Add(npw);                
                end;
        end;
        HlpLst.Clear ;
        hlplst.AddStrings(Cluster);
        Cluster.Clear ;
   

        if length(npw) + 1 <= endlen then goto step1;
        hlplst.Clear;
     end;
        result := 0;
        Label1.Visible := False;
€dit - Und mir ist schon bewusst, dass das für euch wahrscheinlich eine blöde Frage ist.... Sorry^^

Uwe Raabe 20. Apr 2014 19:55

AW: Große String-Liste out of Memory - Hilfe?
 
Wenn ich das jetzt richtig verstanden habe, nimmt man die Buchstaben aus substr und fügt jeweils alle Kombinationen der Buchstaben aus astring an. Die resultierenden Kombinationen werden, so sie eine Länge von startlen bis endlen haben in die Liste result geschrieben und dem Spider übergeben.

Frage: Was passiert mit der Liste results? Die wird in deinem Code nirgendwo sonst verwendet.

Sir Rufo 20. Apr 2014 20:18

AW: Große String-Liste out of Memory - Hilfe?
 
Wenn ich mir das so betrachte, dann ist
Delphi-Quellcode:
Results
die Liste, die ständig wächst.
Sollten diese Werte irgendeine Relevanz haben, dann kann man diese auch direkt in eine Datei schreiben und damit den Speicher entlasten.

Kommentiere zunächst mal das
Delphi-Quellcode:
Results.Add(...);
aus und schau dir den Speicherverbrauch an.

Ich weiß aber nicht, ob ich zum Thema BruteForce und Webseiten hier wirklich weiterhelfen möchte ...

Pogoner 20. Apr 2014 20:37

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1256297)
Wenn ich das jetzt richtig verstanden habe, nimmt man die Buchstaben aus substr und fügt jeweils alle Kombinationen der Buchstaben aus astring an. Die resultierenden Kombinationen werden, so sie eine Länge von startlen bis endlen haben in die Liste result geschrieben und dem Spider übergeben.

Frage: Was passiert mit der Liste results? Die wird in deinem Code nirgendwo sonst verwendet.

Ja die Results-Liste stammt noch aus dem "Tutorial" - anstatt in die Liste, möchte ich es in den Spider übergeben. Bevor ich das tun kann, wird die Cluster-Liste allerdings zu groß und ich kann ehrlichgesagt mit den Schleifen nicht so gut umgehen, um es im richtigen Moment abzugreifen bzw die Liste wieder freizugeben...

Zitat:

Zitat von Sir Rufo (Beitrag 1256300)
Kommentiere zunächst mal das Results.Add(...); aus und schau dir den Speicherverbrauch an.

Die Results ist ja nur ein Teil der Cluster-Liste. Ich habe sie kommentiert und bin nur 100MB runter, der Großteil ist von der anderen belegt... (Mittelteil meiner Tabelle mit allen Kombinationen)

Zitat:

Zitat von Sir Rufo (Beitrag 1256300)
Sollten diese Werte irgendeine Relevanz haben, dann kann man diese auch direkt in eine Datei schreiben und damit den Speicher entlasten.

Die Werte haben keine Relevanz - außer dass ich sie (wenn sie x Stellen lang sind) dem Spider übergeben möchte

Zitat:

Zitat von Sir Rufo (Beitrag 1256300)
Ich weiß aber nicht, ob ich zum Thema BruteForce und Webseiten hier wirklich weiterhelfen möchte ...

Naja also ich will ja kein Passwort knacken oder etwas ähnliches - es ist mehr eine sportliche Herausforderung, eine versteckete Unterseite zu finden. Diese ist offen zugänglich für den, der den Link kennt - Keine Sorge:wink:

Uwe Raabe 20. Apr 2014 20:55

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Pogoner (Beitrag 1256304)
Zitat:

Zitat von Sir Rufo (Beitrag 1256300)
Ich weiß aber nicht, ob ich zum Thema BruteForce und Webseiten hier wirklich weiterhelfen möchte ...

Naja also ich will ja kein Passwort knacken oder etwas ähnliches - es ist mehr eine sportliche Herausforderung, eine versteckete Unterseite zu finden. Diese ist offen zugänglich für den, der den Link kennt - Keine Sorge:wink:

Ganz so unbedarft ist das aber nicht! Nach deiner Aussage kommen da 380204032 Strings zusammen, von denen ein großer Teil zu einem HTML-Call führt. Das kann durchaus schon als Versuch einer DOS-Attacke angesehen werden.

Abgesehen davon wurde dir der passende Lösungsansatz bereits in Post 3 aufgezeigt.

Pogoner 20. Apr 2014 21:13

AW: Große String-Liste out of Memory - Hilfe?
 
Okay, dann muss ich eine Pause einbauen - eine DDOS Attacke möchte ich nicht verursachen, sonst hätte ich mir die Mühe nicht gemacht und einfach LOIC runtergeladen...
Die nichtexistierenden Seiten haben keinen HTML-Titel - also es wird nichts eingetragen...

Ich denke, gemeint mit der Lösung ist die For-While Schleife mit Continue?
Es wäre super-nett wenn mir das jemand als Code-Beispiel aufschreiben könnte, wo mir das mit der Cluster-Listengröße weiterhilft?
Wenn ich nicht mit meinem minderen Wissen schon stundenlang rumgetestet hätte, würde ich euch hier auch nicht darum bitten, mir am besten ein Lösungsbeispiel zu geben...:oops:

Popov 20. Apr 2014 22:02

AW: Große String-Liste out of Memory - Hilfe?
 
Ich habe mir die ganzen Antworten jetzt nicht richtig durchgelesen und so ganz verstehe ich nicht was das Ergebnis sein soll, aber es gibt den alten Spruch: kommt der Prophet nicht zum Berg, muss der Berg zum Propheten kommen (oder so in der Art). Out of Memory bedeutet nicht immer, dass zuwenig RAM allgemein da ist, sondern auch, dass es zu wenig an einem Stück da ist. Wenn also der RAM Speicher nicht ausreicht, wie wäre es wenn du die Liste direkt auf der Festplatte erstellst?

Uwe Raabe 20. Apr 2014 22:03

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Pogoner (Beitrag 1256310)
Ich denke, gemeint mit der Lösung ist die For-While Schleife mit Continue?


Eigentlich zielte ich eher auf die Rekursion hin. Also in etwa so:

Delphi-Quellcode:
function TForm1.bruteforce(astring: string;substr: string; startlen: integer; endlen: integer):LongInt;

  procedure CheckURL(const url: string);
  begin
    spider.Initialize(urlk);
    spider.CrawlNext();

    Edit1.Text := Spider.LastUrl;
    Edit2.Text := Spider.LastHtmlTitle;

    If Edit2.Text = 'Vorhanden' then begin
      Memo4.Lines.Add (Edit1.Text);
    end;
  end;

  Procedure TesteString(const Basis: string);
  var
    npw: string;
    I: Integer;
  begin
    for I := 1 to Length(astring) do begin
      npw := Basis + astring[I];
      if startlen <= Length(npw) then begin
        CheckURL(urls + npw);
      end;
      { Abbruchbedingung }
      if Length(npw) < endlen then begin
        { hier probieren wir dann ein Zeichen mehr }
        TesteString(npw);
      end;
    end;
  end;

var
  I: Integer;
begin
  For I := 1 to length(substr) do begin
    TesteString(substr[I]);
  end;
end;
Bei solchen Rekursionen muss man zwar auf seinen Stack aufpassen, aber da der Parameter als const übergeben wird, der lokale string auf dem Heap angelegt wird und die Rekusionstiefe maximal
Delphi-Quellcode:
endlen
ist sollte das kein Problem werden. Diese Lösung verbraucht fast gar keinen Speicher.

Pogoner 20. Apr 2014 23:28

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1256316)
Bei solchen Rekursionen muss man zwar auf seinen Stack aufpassen, aber da der Parameter als const übergeben wird, der lokale string auf dem Heap angelegt wird und die Rekusionstiefe maximal
Delphi-Quellcode:
endlen
ist sollte das kein Problem werden. Diese Lösung verbraucht fast gar keinen Speicher.

Ich musste 2x lesen:)

Erstmal vielen vielen Dank für die Mühe, mir eine konkrete Lösung hinzuschreiben :thumb:

Also nachdem ich es jetzt geschafft habe, diese Prozeduren richtig zu deklarieren und TForm1 davorzumachen, musste ich es etwas drehen, weil er sonst einen Fehler gebracht hat (; erwartet aber . gefunden bei TForm1"."CheckURL):

Allerdings ist noch irgendein Fehler drin?

Delphi-Quellcode:
function TForm1.bruteforce(astring: string;substr: string; startlen: integer; endlen: integer):LongInt;

{das hier hab ich nach oben}

  var
  I: Integer;

begin
  For I := 1 to length(substr) do begin
    TesteString(substr[I]);
  end;
  end;



procedure TForm1.CheckURL(const url: string);
begin
//spider.Initialize(urlk);
//    spider.CrawlNext();
    showmessage ('CheckURL');
    Edit1.Text := Spider.LastUrl;
    Edit2.Text := Spider.LastHtmlTitle;

    If Edit2.Text = 'Vorhanden' then begin
      Memo4.Lines.Add (Edit1.Text);
      end;
end;

procedure TForm1.TesteString(const Basis: string);
var
    npw: string;
    I: Integer;
  begin
 // Showmessage ('works');                                 //Message kommt
    for I := 1 to Length(astring) do begin
      npw := Basis + astring[I];
  //    showmessage (npw);                                 //Message kommt nicht
      if startlen <= Length(npw) then begin
        CheckURL(urls + npw);
      end;
      { Abbruchbedingung }
      if Length(npw) < endlen then begin
        { hier probieren wir dann ein Zeichen mehr }
 //        showmessage (npw + 'Nr.2');                      //Message kommt nicht
        TesteString(npw);
      end;
    end;
  end;
Angesteuert hab ich es per
Delphi-Quellcode:
bruteforce('abcd','abcd',2,2);
- Aber bis auf die erste Nachricht kommt nichts weiter? :?

Uwe Raabe 20. Apr 2014 23:48

AW: Große String-Liste out of Memory - Hilfe?
 
Wenn du mal genau hinsiehst, wirst du merken, daß die Prozeduren CheckURL und TesteString lokal zu der Methode bruteforce deklariert sind und nicht als Methoden von TForm1. Bei CheckURL ist das ziemlich egal, aber bei Testestring werden die an bruteforce übergebenen Parameter (astring, startlen und endlen) verwendet. In deiner Version kann es die aber nicht sehen. Die Tatsache, daß es anscheinend trotzdem compiliert, läßt vermuten, daß es noch andere Variablen dieses Namens gibt. Ob die aber immer den richtigen Inhalt haben ist eher fraglich.

Perlsau 21. Apr 2014 01:03

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Pogoner (Beitrag 1256304)
Naja also ich will ja kein Passwort knacken oder etwas ähnliches - es ist mehr eine sportliche Herausforderung, eine versteckete Unterseite zu finden. Diese ist offen zugänglich für den, der den Link kennt - Keine Sorge:wink:

Du möchtest dir Informationen zugänglich machen, die nicht für dich bestimmt sind!

Solche Seiten sind ja nicht zufällig "versteckt", sondern aus einem ganz bestimmten Grund: Der Urheber möchte diese Seiten nicht veröffentlichen. Das ist sein gutes Recht, das du nicht mit deinen illegalen Methoden umgehen darfst.

Mit anderen Worten: Ich möchte nicht, daß du oder sonst jemand via BruteForce die versteckten Seiten auf meinem Web-Server ausfindig macht, denn die wurden ausschließlich für ganz bestimmte Kunden abgelegt, denen ich den Link dazu freiwillig gebe. Weder dir noch sonst jemandem ist es gestattet, sich diese Seiten mittels BruteForce-Techniken oder anderen illegalen Mitteln zugänglich zu machen. Konkret: Dich und alle anderen geht der Inhalt dieser nicht veröffentlichten Seiten absolut nichts an!

himitsu 21. Apr 2014 01:21

AW: Große String-Liste out of Memory - Hilfe?
 
Und wer bezahlt die Serverauslastung, inkl. des anfallenden Traffics, durch diesem Angriff?

Popov 21. Apr 2014 01:51

AW: Große String-Liste out of Memory - Hilfe?
 
Um Seiten zu Hacken gibt es bessere Methoden.

Manchmal ist es sogar leichter als man denkt. Manche Seiten lassen dich ohne Passwort rein, du musst nur sagen: ich bin Google.

Brute-Force ist ja nett, aber wer es richtig macht, der baut in seine Passwörter Sonderzeichen ein. Schon ist der Alpha-Spaß umsonst.

Fortgeschrittene fangen nicht mit a und b an, sondern nutzen Wörter. Denn entweder nutzt man Wörter, Wörter mit Sonderzeichen oder macht es gleich richtig mit Kauderwelsch mit Sonderzeichen.

Pogoner 21. Apr 2014 02:38

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von himitsu (Beitrag 1256334)
Und wer bezahlt die Serverauslastung, inkl. des anfallenden Traffics, durch diesem Angriff?

Angriff? Also bitte - Für 1000 Abfragen braucht das Programm 80 Sekunden... Das sind knapp über 12 Anfragen pro Sekunde, bei denen "Not Found" herauskommt.
Ich bin ja nicht sehr bewandert mit DDos, aber Google hat mir soeben gesagt, dass entsprechende Scripte um die 5000 Anfragen pro Sekunde generieren...

Zitat:

Zitat von Popov (Beitrag 1256337)
Um Seiten zu Hacken gibt es bessere Methoden.
Manchmal ist es sogar leichter als man denkt. Manche Seiten lassen dich ohne Passwort rein, du musst nur sagen: ich bin Google.
Brute-Force ist ja nett, aber wer es richtig macht, der baut in seine Passwörter Sonderzeichen ein. Schon ist der Alpha-Spaß umsonst.

Leute - ich möchte bei einer Seite einfach nur wissen, ob eine nicht verlinkte Unterseite mit einer mir bekannten String-Länge existiert. Ich will nichts hacken:roll:

Zitat:

Zitat von Perlsau;1256333Du möchtest dir Informationen zugänglich machen, die nicht für dich bestimmt sind![/COLOR
[/SIZE][/B]

Solche Seiten sind ja nicht zufällig "versteckt", sondern aus einem ganz bestimmten Grund: Der Urheber möchte diese Seiten nicht veröffentlichen. Das ist sein gutes Recht, das du nicht mit deinen illegalen Methoden umgehen darfst.

Mit anderen Worten: Ich möchte nicht, daß du oder sonst jemand via BruteForce die versteckten Seiten auf meinem Web-Server ausfindig macht, denn die wurden ausschließlich für ganz bestimmte Kunden abgelegt, denen ich den Link dazu freiwillig gebe. Weder dir noch sonst jemandem ist es gestattet, sich diese Seiten mittels BruteForce-Techniken oder anderen illegalen Mitteln zugänglich zu machen. Konkret: Dich und alle anderen geht der Inhalt dieser nicht veröffentlichten Seiten absolut nichts an!

Um ehrlich zu sein sehe ich dieses Problem nicht: Der Urheber hat diese Seite veröffentlicht, nur weiß nicht jeder den Link. Ich wüsste nicht, warum dieser Versuch "illegal" sein sollte. Das Nicht-aggressive Spider von Websites fällt nicht unter irgendeinen Straftatbestand http://de.wikipedia.org/wiki/Computersabotage. Google spidert nur nach verlinkten Sites, aber mir ist nicht ersichtlich, warum Seiten, die nicht verlinkt sind plötzlich unter einen besonderen Schutz fallen - sie sind prinzipiell offen im Internet zugänglich, nur nicht ausgewiesen. Sollte ich das hier per Hand probieren, wäre das auch illegal deiner Sicht nach? Ist die nicht-verlinkte Seite durch ein Passwort geschützt, so gebe ich dir natürlich Recht, aber das ist hier nicht der Fall.
Ich kann ja auch nicht irgendwelche Copyright-geschützten Werke auf solch eine Seite hochladen und sagen, dass das keine Verbreitung ist da die Seite ja nicht verlinkt war und ich den Link niemandem gegeben habe.

Zitat:

Zitat von Uwe Raabe (Beitrag 1256331)
Wenn du mal genau hinsiehst, wirst du merken, daß die Prozeduren CheckURL und TesteString lokal zu der Methode bruteforce deklariert sind und nicht als Methoden von TForm1. Bei CheckURL ist das ziemlich egal, aber bei Testestring werden die an bruteforce übergebenen Parameter (astring, startlen und endlen) verwendet. In deiner Version kann es die aber nicht sehen. Die Tatsache, daß es anscheinend trotzdem compiliert, läßt vermuten, daß es noch andere Variablen dieses Namens gibt. Ob die aber immer den richtigen Inhalt haben ist eher fraglich.

Ich habe mir die Mühe gemacht und alles nochmal neu gemacht. Bisher habe ich noch nie mit lokal deklarierten Prozeduren gearbeitet sondern das immer über (Schande über mich) unsichtbare Buttons gelöst...Autodidakt eben - irgendwie hats geklappt...
So ist das allerdings viel Praktischer :-D Danke für deine Mühe - auch mit den Schleifen komme ich nun besser zurecht. Es geht ja nicht immer nur um das aktuelle Programm - was man kann, kann man. Erneut muss ich mich nochmal bedanken :!:
Der Spider selbst hat nun auch Speicher gefressen, was sich allerdings mit spider.ClearspideredURLs lösen lies.

Perlsau 21. Apr 2014 06:11

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Pogoner (Beitrag 1256339)
ehrlich zu sein sehe ich dieses Problem nicht: Der Urheber hat diese Seite veröffentlicht, nur weiß nicht jeder den Link. Ich wüsste nicht, warum dieser Versuch "illegal" sein sollte. Das Nicht-aggressive Spider von Websites fällt nicht unter irgendeinen Straftatbestand http://de.wikipedia.org/wiki/Computersabotage. Google spidert nur nach verlinkten Sites, aber mir ist nicht ersichtlich, warum Seiten, die nicht verlinkt sind plötzlich unter einen besonderen Schutz fallen - sie sind prinzipiell offen im Internet zugänglich, nur nicht ausgewiesen. Sollte ich das hier per Hand probieren, wäre das auch illegal deiner Sicht nach? Ist die nicht-verlinkte Seite durch ein Passwort geschützt, so gebe ich dir natürlich Recht, aber das ist hier nicht der Fall. Ich kann ja auch nicht irgendwelche Copyright-geschützten Werke auf solch eine Seite hochladen und sagen, dass das keine Verbreitung ist da die Seite ja nicht verlinkt war und ich den Link niemandem gegeben habe.

Der Urheber – das bin im Falle meines Webservers ich selbst – hat diese versteckten Seiten eben nicht veröffentlicht: Sie sind nicht für die Öffentlichkeit gedacht und daher auch nicht der Öffentlichkeit zugänglich. Du aber versuchst mit deinem Programm, diese versteckten – und daher eben nicht öffentlichen – Seiten öffentlich zu machen. Dagegen habe ich was und würde dich auch sofort privat verklagen, wenn du das bei mir versuchen solltest. Und du darfst mir glauben: Da hättest du ganz ganz schlechte Karten. Ich betreibe ein Gewerbe und biete manchmal einem Kunden Resultate meiner Arbeit zum Download auf versteckten Seiten an, deren Link nur dieser eine Kunde erhält. Wenn du dir jetzt diese Seiten unberechtigt (=illegal) zugänglich machst, erschleichst du dir Kenntnisse aus meiner Arbeit, die dir nicht zustehen. Diese Seiten sind eben nicht "prinzipiell offen im Internet zugänglich", denn sonst gäbe es einen öffentlichen Link, um auf diese Seiten zuzugreifen. Wieso möchtest du dich meinem Wunsch und meiner Absicht, diese Seiten nicht zu veröffentlichen, widersetzen und Einsicht in Daten nehmen, die dich absolut nichts angehen? Und lädst du dir dann auch kostenpflichtige Anwendungen von meinem Webserver herunter, ohne zu bezahlen? Die sind nämlich auch dort gespeichert und nicht öffentlich ausgewiesen. Und wenn ich einen Passwortschutz einbaue, knackst du den dann ebenfalls mit deinen Brute-Force-Methoden? Dann würde ich dich nämlich gleich mal als potentiellen Kriminellen anzeigen. Junge Junge ...:evil:

Daniel 21. Apr 2014 08:00

AW: Große String-Liste out of Memory - Hilfe?
 
Gemach.
Eine HTTP-Anfrage an einen Server zu senden, ist erstmal nicht illegal und auch noch keine Grundlage für einen kriminelle Karriere.

Du (@Pogoner) musst Dir aber darüber im Klaren sein, dass Du versuchst, Zugriff auf Seiten zu erlangen, zu denen Du - aus welchem Grund auch immer - keine Adresse genannt bekamst. Allein die Tatsache, dass die Inhalte offenbar nicht weiter geschützt sind, befug Dich nicht, Dich da frei zu bedienen: Wenn ich meine Wohnungstür offen lasse, dann kann man mir zurecht vieles vorwerfen, aber Dich berechtigt es noch lange nicht, in meiner Sockenschublade zu wühlen.

Solltest Du dabei Deine Software zu aggressiv vorgehen lassen und den Betrieb des Webservers stören, kann daraus tatsächlich eine unangenehme Situation für Dich erwachsen, weil man Dir dann zurecht und nachweisbar vorwerfen könnte, den Geschäftsbetrieb zu stören. Gleiches gilt, wenn Deine Software einen nennenswerte Menge an Traffic - und damit etwaige Kosten für den Betreiber - verursachen sollte. Sei Dir darüber im Klaren, dass Du auf dünnem Eis wandelst.


Allerdings:
Wenn man sich die Logs von populären Web-Servern mal anschaut, wird man als Admin schnell feststellen, dass hunderte, teils tausende unkontrollierte Anfragen an der Tagesordnung sind. Hier jetzt mit den Worten"kriminell" und Klage" um sich zu werfen, kann man machen, wenn einem langweilig ist - an der Realität geht es jedoch vorbei. Wenn man Inhalte für schützenswert erachtet, soll man sie mit den gängigen Mitteln schützen und nicht nur halbherzig - ist ja wie der Schlüssel unter der Fußmatte.


Du hast verschiedene Lösungsansätze erhalten und das Stichwort "Datenbank" will ich noch in den Raum werfen. Wenn Deine Datenmenge zu groß wird, um sie gleichzeitig im Speicher zu halten, dann lagere sie aus auf einen Datenträger.

Perlsau 21. Apr 2014 08:16

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Daniel (Beitrag 1256345)
Eine HTTP-Anfrage an einen Server zu senden, ist erstmal nicht illegal und auch noch keine Grundlage für einen kriminelle Karriere.

Vollkommen richtig. Allerdings geht es hier nicht um eine harmlose und neutrale HTTP-Anfrage.

Zitat:

Zitat von Daniel (Beitrag 1256345)
Du (@Pogoner) musst Dir aber darüber im Klaren sein, dass Du versuchst, Zugriff auf Seiten zu erlangen, zu denen Du - aus welchem Grund auch immer - keine Adresse genannt bekamst. Allein die Tatsache, dass die Inhalte offenbar nicht weiter geschützt sind, befug Dich nicht, Dich da frei zu bedienen: Wenn ich meine Wohnungstür offen lasse, dann kann man mir zurecht vieles vorwerfen, aber Dich berechtigt es noch lange nicht, in meiner Sockenschublade zu wühlen.

:thumb: Sehr schön formuliert, absolut passendes Beispiel: Ob ich jetzt meine Wohnungstüre offen lasse, mein Fahrrad kurz unabgeschlossen stehen lasse oder mein Laptop in der Kneipe während des Ganges zur Toilette nicht sichere – all dies erlaubt noch niemandem, sich legal zu bedienen und in die Wohnung einzudringen, das Fahrrad wegzunehmen und/oder zu benutzen oder sich Einblick in die Daten auf meinem Laptop zu verschaffen oder sich sonst wie daran zu schaffen zu machen, geschweige denn, es wegzunehmen. Genau so verhält es sich auch mit versteckten HTML-Dateien auf meinem Webserver: Die gehen niemanden, dem ich nicht explizit Zugang gewähre, etwas an.

Zitat:

Zitat von Daniel (Beitrag 1256345)
Wenn man sich die Logs von populären Web-Servern mal anschaut, wird man als Admin schnell feststellen, dass hunderte, teils tausende unkontrollierte Anfragen an der Tagesordnung sind. Hier jetzt mit den Worten"kriminell" und Klage" um sich zu werfen, kann man machen, wenn einem langweilig ist - an der Realität geht es jedoch vorbei. Wenn man Inhalte für schützenswert erachtet, soll man sie mit den gängigen Mitteln schützen und nicht nur halbherzig - ist ja wie der Schlüssel unter der Fußmatte.

Wenn jemand öffentlich die Absicht äußert, sich Daten anzueignen, die ihm nicht zustehen, ist das im Grunde Ankündigung einer kriminellen Handlung. Und wer sich bereits Methoden wie Brute-Force-Ermittlung von versteckten HTML-Dateien bedient, der schreckt auch nicht davor zurück, dieselbe Methode beim Knacken eines Paßwortschutzes einzusezten, den ich selbstverständlich für alle meine versteckten Server-Verzeichnisse einsetze.

Bernhard Geyer 21. Apr 2014 08:26

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Daniel (Beitrag 1256345)
Allerdings:
Wenn man sich die Logs von populären Web-Servern mal anschaut, wird man als Admin schnell feststellen, dass hunderte, teils tausende unkontrollierte Anfragen an der Tagesordnung sind. Hier jetzt mit den Worten"kriminell" und Klage" um sich zu werfen, kann man machen, wenn einem langweilig ist - an der Realität geht es jedoch vorbei

Das versuchte Einbrüche im Rechner automatisiert ablaufen heißt aber nicht das man nicht dagegen vorgehen sollte (Ein ungeschützter Windows-Rechner ist AFAIK in < 10 Minten nach dem direkten Verbinden mit dem Internet übernommen). Und wenn hier jemand eine entsprechende Attacke unternehmen will sollten wir ihn auch nicht helfen. Im schlimmsten Fall (Nachfolger von dem "Berühmten" von Gravenreuth) bekommt man hier (als Forenbetreiber?) auch 'ne Klage/Abmahnung wegen Mittäterschaft aufgebrummt.

Für die meisten diese Attacken wird man ein müdes Lächeln vom (in diesen Dingen erfahrenen) Polizisten bekommen wenn man sowas aufnehmen will. Er weiß das solche Angriffe aus dem Ausland bzw. über Zombierechner erfolgen. Die Erfolgschancen wären nahe 0!

Pogoner 21. Apr 2014 11:27

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1256351)
Das versuchte Einbrüche im Rechner automatisiert ablaufen heißt aber nicht das man nicht dagegen vorgehen sollte ... Und wenn hier jemand eine entsprechende Attacke unternehmen will sollten wir ihn auch nicht helfen

Wer genau versucht hier in Rechner einzubrechen? Ich weiß, es ist einfacher sich in einen Thread einzuklinken, als alle 3 Seiten zu lesen aber um das Einbrechen in Rechner geht es hier nicht.


Zitat:

Zitat von Perlsau (Beitrag 1256343)
Und wenn ich einen Passwortschutz einbaue, knackst du den dann ebenfalls mit deinen Brute-Force-Methoden? Dann würde ich dich nämlich gleich mal als potentiellen Kriminellen anzeigen. Junge Junge ...:evil:

Da fühlt sich aber jemand ganz gehörig auf den Schlips getreten - und lesen scheint auch nicht dein Fall zu sein, ich habe mehrfach erwähnt, dass ich nicht vorhabe, irgendein Passwort zu knacken.

Zitat:

§ 202a
Ausspähen von Daten

(1) Wer unbefugt sich oder einem anderen Zugang zu Daten, die nicht für ihn bestimmt und die gegen unberechtigten Zugang besonders gesichert sind, unter Überwindung der Zugangssicherung verschafft, wird mit Freiheitsstrafe bis zu drei Jahren oder mit Geldstrafe bestraft.

(2) Daten im Sinne des Absatzes 1 sind nur solche, die elektronisch, magnetisch oder sonst nicht unmittelbar wahrnehmbar gespeichert sind oder übermittelt werden.
Halten wir mal den Ball flach und schauen uns die Rechtslage an, Meister: Selbst das Auslesen von Kreditkarten ist nicht illegal - also solltest du deinen Geldbeutel wie in deinen Beispielen unbeaufsichtigt rumliegen lassen und ich würde deine Kreditkarte kopieren, so wäre das legal : http://www.dr-bahr.com/news/kein-str...ungskarte.html
Auch fange ich nicht wie in § 202b private Gespräche ab, will mir keinen Vermögensvorteil wie nach § 263a verschaffen. Und ich ich nichts runterladen.
Auch das einwählen in ungesicherte WLAN-Netze ist im Übrigen legal http://www.rechtslupe.de/strafrecht/...-netzen-323014
Es mag ja sein, dass dir das garnicht passt, weil du das gerne so machst, aber solange ich deine Website nach solchen Seiten abgrasen würde ohne dass ich mit den 12 Anfragen pro Sekunde jetzt wie es im Gesetz verlangt ist
Zitat:

eine Datenverarbeitung, die für einen anderen von wesentlicher Bedeutung ist, erheblich stört
ist es soweit ich als juristischer Laie durchblicke nicht illegal und du wirst es dir gefallen lassen müssen bzw eine Zugangssicherung einrichten müssen, sodass sie gegen unberechtigten Zugang besonders gesichert ist, wie es im Gesetztestext verlangt ist :idea:




Zitat:

Zitat von Daniel (Beitrag 1256345)
Gemach.
Eine HTTP-Anfrage an einen Server zu senden, ist erstmal nicht illegal und auch noch keine Grundlage für einen kriminelle Karriere.

Seh ich genauso.

Zitat:

Zitat von Daniel (Beitrag 1256345)
Gleiches gilt, wenn Deine Software einen nennenswerte Menge an Traffic - und damit etwaige Kosten für den Betreiber - verursachen sollte. Sei Dir darüber im Klaren, dass Du auf dünnem Eis wandelst.

Da weiß ich leider zu wenig: Beim Aufruf der nicht-existenten Seite kommt folgende Meldung:
Zitat:

Not Found

The requested URL /thechosensite/12345asdfg.html was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache Server at www.thechosensite.com Port 80
Führen 12 Aufrufe einer solchen Seite zu beträchtlichem Traffic für den Betreiber? Gewollt ist das ja wie erwähnt nicht...

Zitat:

Zitat von Daniel (Beitrag 1256345)
Du hast verschiedene Lösungsansätze erhalten und das Stichwort "Datenbank" will ich noch in den Raum werfen. Wenn Deine Datenmenge zu groß wird, um sie gleichzeitig im Speicher zu halten, dann lagere sie aus auf einen Datenträger.

Ja die Datenbank hatte ich auch schon in Betracht gezogen, aber bei Millionen Einträgen war mir einerseits die mögliche Größe suspekt, als auch der Zeitverlust beim eintragen/auslesen - die direkte Weitergabe, die mir Uwe Raabe gezeigt hat war genau das, was ich versucht hatte, hinzubekommen.
Wäre die Liste an sich allerdings wichtig gewesen, hätte ich die Datenbank wohl nehmen müssen...

EWeiss 21. Apr 2014 12:42

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Und wenn hier jemand eine entsprechende Attacke unternehmen will sollten wir ihn auch nicht helfen.
Ohne weiter auf das Thema einzugehen..
Dann tut es einfach nicht mehr. :)

gruss

Pogoner 21. Apr 2014 13:25

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von EWeiss (Beitrag 1256367)
Ohne weiter auf das Thema einzugehen..

Das ist dir gelungen. :thumb:

Wenn noch jemand etwas zum Thema beitragen möchte: Meine Frage ist immernoch offen, ob die 12 Aufrufe einer "Not Found" - Seite pro Sekunde eine wesentliche Belastung für einen Webserver darstellen (Die Seite existiert ja nicht). Sollte die Frage bejaht werden, so werde ich die Zahl verringern. Es geht hier - ums zum 10. Mal zu sagen - nicht darum, den Server anzugreifen.

Meine zweite Frage ist programmtechnischer Natur: Wenn ich 4 Felder derart berechnen möchte:
Delphi-Quellcode:
Zufallsgenerator('abcdefghijklmnopqrstuvwxyz','1234567890','abcdefghijklmnopqrstuvwxyz','1234567890')
Dann funktioniert das...so nicht?
Also der Reihenfolge nach a1a1-->a1a2-->a1a3-->...-->c3g6-->c4g7-->c4g8 etc... Das Rekursiv-Denken fällt mir wirklich schwer -.-

Delphi-Quellcode:
function TForm1.Zufallsgenerator(astring: string;bstring: string; cstring: string; dstring: string)


Procedure ErstelleString(const Basis: string);
  var
    npw: string;
    I1, I2, I3, I4, u: Integer;
  begin
                                                               

    for I1 := 1 to 26 do begin
      npw := Basis + astring[I1]  ;
        for I2 := 1 to 10 do begin
          npw := npw + bstring[I2]   ;
           for I3:= 1 to 26 do begin
             npw:= npw + cstring[I3]    ;
              for I4:= 1 to 10 do begin
               npw := npw + dstring[I4];         //Aber so funktioniert es eindeutig nicht^^
               showmessage (npw);
   

var
  I: Integer;
begin

  For I := 1 to length(bstring) do begin
 // showmessage (inttostr(I));
    ErstelleString(bstring[I]);
  end;
end;

EWeiss 21. Apr 2014 13:36

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Das ist dir gelungen.
Will ich doch hoffen. :thumb:

gruss

Dalai 21. Apr 2014 15:47

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Pogoner (Beitrag 1256370)
Das Rekursiv-Denken fällt mir wirklich schwer -.-

Ich glaube, das Erarbeiten von Grundlagen wäre ein guter Ansatzpunkt für dich. Was ist Rekursion? Wie funktioniert sie? Das Wichtigste ist, dass sich eine rekursive Funktion selbst wieder aufruft, logischerweise mit anderen Werten in ihren Parametern. Ebenso wichtig ist, dass eine rekursive Funktion eine sinnvolle Abbruchbedingung hat, damit man die Funktion verlässt, wenn nichts mehr zu tun ist (und nicht den Stack überlaufen lässt).

Nun sprach ich Grundlagen nicht ohne Grund an, denn mir fiel auf, dass du in deiner Funktion ErstelleString 4 geschachtelte Schleifen mit derselben Laufvariable benutzt. Das kann nicht funktionieren. Jede Schleife braucht ihre eigene Laufvariable. Weiterhin sollte man wissen, dass lokale Prozeduren auf alle Variablen ihrer umgebenden Prozedur/Funktion Zugriff haben, d.h. es ist nicht einmal klar, welches I nun gemeint ist (das aus Zufallsgenerator oder ErstelleString). Ich weiß nicht, ob der Compiler so intelligent ist und die Variable mit dem kleinsten Gültigkeitsraum/Scope bevorzugt.

Unabhängig davon sehe ich nicht, wo Rekursion helfen könnte, einen Zufallsgenerator zu implementieren bzw. in diesem Fall einen zufälligen String zu erstellen.

MfG Dalai

Pogoner 21. Apr 2014 16:01

AW: Große String-Liste out of Memory - Hilfe?
 
Oh, ich sehe gerade, dass da noch 4x I steht - Das hatte ich dann in I1, I2, I3, I4 verändert da ich mir das schon dachte...

Zitat:

Zitat von Dalai (Beitrag 1256385)
Unabhängig davon sehe ich nicht, wo Rekursion helfen könnte, einen Zufallsgenerator zu implementieren bzw. in diesem Fall einen zufälligen String zu erstellen.

MfG Dalai

Naja bei der Rekursion ging es ja darum meine unbeliebten Goto-Schleifen zu ersetzen...

Wie müsste ich es denn schreiben, um solche Strings zu produzieren: a1a1, a1a2, a1a3, ..., c3g6, c4g7, c4g8, ..., z0z0 ?

MfG

Perlsau 21. Apr 2014 16:32

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Pogoner (Beitrag 1256364)
Wer genau versucht hier in Rechner einzubrechen? Ich weiß, es ist einfacher sich in einen Thread einzuklinken, als alle 3 Seiten zu lesen aber um das Einbrechen in Rechner geht es hier nicht.

Frag doch nicht so blöde: Du natürlich! Die versteckten Seiten sind nicht zugänglich, was du mit deinem Angriff ändern möchtest: Du versuchst, dir Zugang zu Informationen zu verschaffen, die nicht für dich bestimmt sind. Und du glaubst wirklich, das wäre legal?

Zitat:

Zitat von Pogoner (Beitrag 1256364)
Da fühlt sich aber jemand ganz gehörig auf den Schlips getreten - und lesen scheint auch nicht dein Fall zu sein, ich habe mehrfach erwähnt, dass ich nicht vorhabe, irgendein Passwort zu knacken.

Erstens fühle ich mich nicht auf den Schlips getreten, sondern von dir bedroht, und zweitens ist das kein Grund, beleidigend zu werden und mir zu unterstellen, ich könne nicht lesen. Ich bin einer der belesensten Menschen, die ich kenne!

Natürlich schreibst du, du seist ganz harmlos und möchtest auf keinen Fall irgend einen Schaden anrichten. Die Entscheidung, das zu glauben oder nicht, mußt du aber schon denen überlassen, die das lesen. Oder glaubst du einem Angeklagten, daß er nur zum Spaß Kreditkarten-Doubletten herstellt und nicht vorhat, sich damit finanzielle Vorteile zu ergaunern?

Meine versteckten Seiten sind allein schon dadurch, daß sie versteckt sind, gegen unbefugten Zugang gesichert: Befugt sind nur diejenigen, die über den Link zu diesen Dateien verfügen. Das Herausfinden der Dateinamen bzw. URLs dieser versteckten HTML-Seiten via Brute Force erfordert genau so viel Aufwand wie das Herausfinden des Passworts einen passwortgeschützten Ordners. Das eine ist ebenso mit dem Einsatz krimineller Energie verbunden wie das andere.

Worin sollte jetzt der Unteschied bestehen zwischen dem Brute-Force-Hacken der versteckten Dateien und dem Brute-Force-Hacken der Passwörter geschützter Verzeichnisse?

Bitte nenne doch einmal die Absicht, die sich hinter dieser von dir hier erfragten Brute-Force-Methode verbirgt: Zu welchem Zweck möchtest du denn diese versteckten Seiten ermitteln?

Zitat:

Zitat von Pogoner (Beitrag 1256364)
Halten wir mal den Ball flach und schauen uns die Rechtslage an, Meister: Selbst das Auslesen von Kreditkarten ist nicht illegal - also solltest du deinen Geldbeutel wie in deinen Beispielen unbeaufsichtigt rumliegen lassen und ich würde deine Kreditkarte kopieren, so wäre das legal

Es geht hier aber nicht um das Auslesen von Kreditkarten. Du hast dich nicht an offen herumliegenden Geldbörsen, in denen sich private Dinge befinden, die dir nicht gehören und die dich daher auch nichts angehen, zu vergreifen! Ich empfinde deine Einstellung als kriminell!

Seltsam: Ich kann mich an Threads erinnern, da wurde rigoros auf die Illegalität des automatisierten Auslesens von öffentlich zugäglichen Internetseiten hingewiesen. Versuche, nicht öffentliche Seiten auszulesen, scheinen der Foren-Führung jedoch keineswegs gegen den Strich zu gehen.

Zitat:

Zitat von Pogoner (Beitrag 1256364)
Auch fange ich nicht wie in § 202b private Gespräche ab, will mir keinen Vermögensvorteil wie nach § 263a verschaffen. Und ich ich nichts runterladen.

Selbstverständlich fängst du private Kommunikation ab, wenn du dir versteckte Seiten herunterlädst, deren Inhalt nicht für dich bestimmt ist und die du mit Brute-Force-Methoden ermittelt hast. "Och, ich wollte doch gar nichts stehlen, Herr Kommissar, ich schaute mich dort nur ein wenig um ..." stotterte der Einbrecher beim Verhör. "Nein, ich wollte doch gar nicht private Kommunikation abhören, nein meine Datenbank hab ich nur zum Spaß, ich würde nie jemanden erpressen oder mir einen unerlaubten Vorteil verschaffen, das müssen Sie mir glauben, Herr Kommissar!"

Zumindest ich gestatte dir nicht, meine versteckten HTML-Seiten ausfindig zu machen. Im Übrigen wird mein Server-Provider es sich ganz gewiß nicht gefallen lassen, wenn du, weil dir das Brute-Forcing bei langen Dateinamen zu lange dauert, dann doch Methoden anwendest, die einer DOS-Attacke gleichkommen. Deine zahlreichen Beteuerungen in allen Ehren – allein ich neige nicht dazu, solchen Beteuerungen leichtfertig Glauben zu schenken.

"Würdest du mir mal kurz deine Brieftasche leihen?" – "Wozu denn das?" – "Ach, ich finde die so toll, ich möchte die mal kurz meinem Kumpel zeigen." – "Ah, klar, aber nicht aufmachen, hörst du?" – "Keine Bange, ich bin ehrlich, mir kannst du vertrauen." ... und ward nie mehr gesehen ...

Zitat:

Zitat von Pogoner (Beitrag 1256364)
Auch das einwählen in ungesicherte WLAN-Netze ist im Übrigen legal

Nicht ablenken: Es geht hier nicht um das Einwählen in ungesicherte WLAN-Netze!

Zitat:

Zitat von Pogoner (Beitrag 1256364)
Es mag ja sein, dass dir das garnicht passt, weil du das gerne so machst,

Bitte? Weil ich was gerne wie mache?

Zitat:

Zitat von Pogoner (Beitrag 1256364)
aber solange ich deine Website nach solchen Seiten abgrasen würde ohne dass ich mit den 12 Anfragen pro Sekunde jetzt wie es im Gesetz verlangt ist
Zitat:

eine Datenverarbeitung, die für einen anderen von wesentlicher Bedeutung ist, erheblich stört
ist es soweit ich als juristischer Laie durchblicke nicht illegal und du wirst es dir gefallen lassen müssen bzw eine Zugangssicherung einrichten müssen, sodass sie gegen unberechtigten Zugang besonders gesichert ist, wie es im Gesetztestext verlangt ist :idea:

Noch einmal die Frage: Wieso möchtest du dich über meine deutlich geäußerte Absicht, bestimmte HTML- und andere Dateien vor der Öffentlichkeit zu verbergen und diese nur einem ausgewählten Kreis von Kunden zugänglich zu machen, hinwegsetzen? Kannst du dir auch nur einen Moment vorstellen, daß eine derartige Ignoranz der Bedürfnisse und Wünsche eines anderen einer Herabwürdigung gleichkommt? So nach dem Motto: "Ist mir egal, was du willst, ich hol mir von dir, was ich will, da kannst du Handstand machen und bitten und betteln, ist mir alles egal!"

Deine Haltung erinnert mich an jenen Kurierfahrer vor meiner Wohnung, der sich nach Feierabend dort auf den Parkplatz stellte, die Tür seines Van aufstieß und seine Anlage voll aufdrehte. Ich konnte nicht mehr weiterarbeiten, dieses heftige Bumm-Bumm, das sogar durch das geschlossene Fenster in mein Arbeitszimmer drang, brachte schon fast die Leseköpfe meiner Festplatten zum Vibrieren. Also ging ich runter und teilte diesem Menschen mit, daß hier im Haus niemand seine Vorführung hören wolle. Der wurde sofort aggressiv: "Ist doch mir egal, ich mach, was ich will. Verpiß dich oder ich hol die Polizei." Worauf ich erwiderte: "Au ja, das finde ich eine gute Idee!" Daraufhin stieg er aus und kam drohend auf mich zu in der Hoffnung, daß ich ängstlich zurückweichen möge. Tat ich aber nicht. "Sie belästigen mich hier! Ich kann Musik hören, wo und wann ich will!" Worauf er sich umdrehte und zurück zu seinem Auto ging, die Musik abstellte und zu telefonieren begann. Ich rief ihm zu: "Vielen Dank für Ihr Verständnis!" und ging wieder rauf in meine Wohnung.

Was bezweckst du mit diesem Vorgehen, dir URLs von versteckten Dateien auf Webservern abzuspeichern? Wozu benötigst du Informationen darüber, welche Dateien außer den öffentlich zugänglichen sonst noch auf meinem Webserver zu finden sind, wenn du dir diese Dateien angeblich nicht herunterladen willst? Ich kann mir keinen anderen Zweck als einen illegalen vorstellen.

Dalai 21. Apr 2014 16:49

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Pogoner (Beitrag 1256386)
Naja bei der Rekursion ging es ja darum meine unbeliebten Goto-Schleifen zu ersetzen...

Naja, mit viel gutem Willen kann man Gotos als Schleifen bezeichnen ;). Eigentlich sind es Sprungziele/Sprungmarken (in Delphi eben mit Label deklariert), die von irgendwo innerhalb derselben Funktion angesprungen werden können. Aber überleg dir mal selber, inwiefern Rekursion für das Befüllen eines Strings mit zufälligen Zeichen helfen sollte.

Zitat:

Wie müsste ich es denn schreiben, um solche Strings zu produzieren: a1a1, a1a2, a1a3, ..., c3g6, c4g7, c4g8, ..., z0z0 ?
Naja, der Ansatz mit den geschachtelten Schleifen war nicht so verkehrt, denke ich. Aber eine Rekursion war das ja nicht wirklich. Noch eine Sache ist mir aufgefallen: alle deine for-Schleifen laufen bis 26, obwohl die Strings mit den Ziffern nur 10 Zeichen lang sind. Da wird es schicke Exceptions hageln... Oh, ich sehe gerade: letzteres hast du ebenfalls bereits ausgebessert.

MfG Dalai

EWeiss 21. Apr 2014 16:49

AW: Große String-Liste out of Memory - Hilfe?
 
@Perlsau
Davon ab das hätte man auch in einem Satz formulieren können.
Aber gut du schreibst halt gern.

Zitat:

@Pogoner: Die nichtexistierenden Seiten haben keinen HTML-Titel - also es wird nichts eingetragen...
ein widerspruch in sich selbst..

Oder warum möchtest du plötzlich
Zitat:

Zufallsgenerator('abcdefghijklmnopqrstuvwxyz','123 4567890','abcdefghijklmnopqrstuvwxyz','1234567890' )
verwenden, generieren wenn da nicht die Absicht dahinter verborgen ist etwas schreiben zu wollen?

Garantiert von mir gibt's keine Hilfe!
Solche Machenschaften unterstütze ich einfach nicht.

@Dalai
Gib ihm noch mehr Infos so das er am ende das umsetzen kann was er denn so vor hat.
Vielleich auf deiner Webseite?
Wenn du denn eine hast.

gruss

Daniel 21. Apr 2014 17:19

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

Zitat von Perlsau (Beitrag 1256388)
Frag doch nicht so blöde: Du natürlich! Die versteckten Seiten sind nicht zugänglich, was du mit deinem Angriff ändern möchtest: Du versuchst, dir Zugang zu Informationen zu verschaffen, die nicht für dich bestimmt sind. Und du glaubst wirklich, das wäre legal? [...] Erstens fühle ich mich [...] von dir bedroht, [...] Schaden anrichten [...] finanzielle Vorteile zu ergaunern [...] Einsatz krimineller Energie [...] Ich empfinde deine Einstellung als kriminell! [...] Selbstverständlich fängst du private Kommunikation ab [...] Methoden anwendest, die einer DOS-Attacke gleichkommen

Frank ... :roll: ... tief durchatmen. Ich denke, dass nun auch der Letzte von uns verstanden hat, dass Du dieses Vorhaben nicht gutheißt. Das ist in Ordnung. Doch Du gehst zu weit. Du unterstellst Dinge, die nicht mehr weit von der Verleumdung entfernt sind. Du schreibst Dich in Rage und wunderst Dich dann, warum wir zwei in sehr regelmäßigen Abständen aneinander geraten. Genau deswegen.


Zitat:

Zitat von EWeiss (Beitrag 1256390)
Garantiert von mir gibt's keine Hilfe!

Auch das ist völlig in Ordnung - aber dann belasse es bitte dabei.

EWeiss 21. Apr 2014 17:41

AW: Große String-Liste out of Memory - Hilfe?
 
Zitat:

@Daniel Auch das ist völlig in Ordnung - aber dann belasse es bitte dabei.
Werd ich tun... bin raus.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz