Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
Mentos05_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 26.07.2007
Beiträge: 26

Hilfe beim Quelltext auslesen
Verfasst am: 15.01.2008, 18:18

Hallo zusammen =)
Ich bin gerade dabei, ein Programm zu schreiben, welches Seiten in einer Listbox öffnet und den Quellcode speichert.
Diesen möchte ich dann nach Usernamen und Passwörtern durchsuchen.

Mein String sieht so aus:

<?php
$host = "localhost";
$user = "user";
$pwd = "pwd";
$db = "db";
define(PREFIX, 'webs_');
?>


<?php
$host = "localhostxx";
$user = "user2";
$pwd = "pw"";
$db = "db2";
define(PREFIX, 'webs_');
?>


jetzt möchte ich den Usernamen und das Passwort gerne rausfiltern.

dafür habe ich auch schon folgenden Code gebastelt:

Code:

Dim aPos As Long
Dim bPos As Long
Dim cpos As Long
Dim dpos As Long
Dim sUsername As String
Dim sPasswort As String

'Benutzernamen suchen
aPos = InStr(txt_quelltext, "$user = """)
bPos = InStr(txt_quelltext, "$pwd")
sUsername = Mid(txt_quelltext, aPos + 9, bPos - aPos - 14)
MsgBox sUsername

'Passwort suchen
cpos = InStr(txt_quelltext, "$pwd = """)
dpos = InStr(txt_quelltext, "$db")
sPasswort = Mid(txt_quelltext, cpos + 8, dpos - cpos - 13)
MsgBox sPasswort


Allerdings sucht er mir ja so nur den ersten Usernamen und das erste Passwort heraus. Ich möchte aber den kompletten Text durchsuchen bis zum Ende.
Hat jemand eine Ahnung wie das machbar wäre? Weiß im Moment absolut nicht weiter. =/

Mit freundlichen Grüßen
Mentos05
 
sollniss_
Coder
Coder

Anmeldedatum: 08.09.2007
Beiträge: 212


Verfasst am: 15.01.2008, 18:51

vielleicht so:

Code:

Dim aPos As Long
Dim bPos As Long
Dim cpos As Long
Dim dpos As Long
Dim sUsername As String
Dim sPasswort As String
x = FreeFile
y = FreeFile

For i = x To y
'Benutzernamen suchen
aPos = InStr(txt_quelltext, "$user = """)
bPos = InStr(txt_quelltext, "$pwd")
sUsername = Mid(txt_quelltext, aPos + 9, bPos - aPos - 14)
MsgBox sUsername

'Passwort suchen
cpos = InStr(txt_quelltext, "$pwd = """)
dpos = InStr(txt_quelltext, "$db")
sPasswort = Mid(txt_quelltext, cpos + 8, dpos - cpos - 13)
MsgBox sPasswort
Next i

http://sollniss.1x.to/

 
Teto_
Poster
Poster

Anmeldedatum: 28.02.2007
Beiträge: 106


Verfasst am: 15.01.2008, 18:58

Ich verstehe nicht mal genau was er eigentlich vor hat.Für mich sieht das aus als ob er in ner php datei nach den pw´s und so suchen will,was ja lokal auch geht.

Wenn er aber mit Seiten, Webseiten meint kann er das sowieso vergessen,weil letzendlich im quelltext keine PHP Befehle stehen.
 
Mentos05_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 26.07.2007
Beiträge: 26


Verfasst am: 15.01.2008, 19:22

@Teto
Nein, ich habe den Quelltext lokal auf meinem Rechner in einer Textbox(txt_quelltext). Ein Beispielquelltext habe ich ja auch schon gegeben.
Ich durchsuche also nur die Textbox.

@solniss
Wenn ich mit instr Befehlen arbeiten kann, ist schwer davon auszugehen, das ich auch ne einfache if schleife hinkriege.^^

Ich erläuter das Problem vielleicht mal lieber etwas genauer

Also der Code ist ja folgender:

Code:

'Benutzernamen suchen
aPos = InStr(txt_quelltext, "$user = """)
bPos = InStr(txt_quelltext, "$pwd")
sUsername = Mid(txt_quelltext, aPos + 9, bPos - aPos - 14)
MsgBox sUsername


Das Problem liegt hier:
Code:

aPos = InStr(txt_quelltext, "$user = """)
bPos = InStr(txt_quelltext, "$pwd")


Er nimmt immer die gleiche Startposition, dadurch findet er also auch nur den ersten Eintrag. Ich möchte das er nach dem ersten Fund, weitersucht. Dazu müsste ich irgendwie die Startposition der Suche ändern, also die bisherigen Stellen zum Fund zur Startposition addieren, damit er nach dem Fund weitersucht.
Ich weiß jedoch nicht, wie ich das in Visual Basic ausdrücken könnte.

Hoffe auf Hilfe =)

Mit freundlichen Grüßen Mentos05
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 15.01.2008, 19:38

Dazu brauchst du ganz einfach eine Schleife.
Kleines Beispiel
Code:

bPos = 0
Do
 aPos = InStr(bPos + 1, txt_quelltext, "$user = """)
 bPos = InStr(aPos + 1, txt_quelltext, "$pwd")
 
 if aPos <> 0 or bPos <> 0 then
  'Dein Code zum auslesen
 Else
  exit do
 End if
loop


Die Schleife läuft solange, bis einer der beiden gesuchten Strings nicht mehr gefunden wird.
Außerdem fängt jede Suche per InStr nach der letzten Position an
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Mentos05_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 26.07.2007
Beiträge: 26


Verfasst am: 15.01.2008, 21:20

ZiG hat Folgendes geschrieben:
Dazu brauchst du ganz einfach eine Schleife.
Kleines Beispiel
Code:

bPos = 0
Do
 aPos = InStr(bPos + 1, txt_quelltext, "$user = """)
 bPos = InStr(aPos + 1, txt_quelltext, "$pwd")
 
 if aPos <> 0 or bPos <> 0 then
  'Dein Code zum auslesen
 Else
  exit do
 End if
loop


Die Schleife läuft solange, bis einer der beiden gesuchten Strings nicht mehr gefunden wird.
Außerdem fängt jede Suche per InStr nach der letzten Position an



Mit Msgboxen funktioniert das ganze auch prima, vielen Dank an dich dafür!
Aber jetzt steh ich vor dem Problem das ich sUsername in ein Listview haben will.
Habe also folgendes versucht:



Code:

apos = o
bpos = 0

Do
 apos = InStr(bpos + 1, txt_quelltext, "$user = """)
 bpos = InStr(apos + 1, txt_quelltext, "$pwd")
 
 If apos <> 0 Or bpos <> 0 Then
  'Dein Code zum auslesen
  For i = 1 To lst_hp.ListCount
  sUsername = Mid(txt_quelltext, apos + 9, bpos - apos - 14)
  lvw.ListItems.Add 1, , sUsername
  Next i
  Exit Do
 Else
  Exit Do
 End If
Loop


Dabei macht er allerdings immer den gleichen Eintrag. Und ohne die Schleife stürzt mein ganzer PC ab, weil die Do Schleife nicht beendet wird. Denke ich jedenfalls.^^
Schreib ich aber ein Exit Do ohne die For-Schleife, hört er nach dem ersten Eintrag auf.

Aber das ist eigentlich auch alles nicht das was ich gerne hätte.
Am liebsten wäre es mir, wenn ich so viele Einträge im Listview machen würde, wie er gefunden hat. Aber ich weiß nicht genau wie das zu realisieren ist. Hat instr irgendwie einen Index oder so?

Mfg mentos05
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 15.01.2008, 21:41

Code:

apos = 0
bpos = 0

Do
 apos = InStr(bpos + 1, txt_quelltext, "$user = """)
 bpos = InStr(apos + 1, txt_quelltext, "$pwd")
 
 If apos <> 0 And bpos <> 0 Then
  'Dein Code zum auslesen
  sUsername = Mid(txt_quelltext, apos + 9, (bpos - apos) - 14)
  lvw.ListItems.Add 1, , sUsername
  DoEvents
 Else
  Exit Do
 End If
Loop


So müßte es gehen
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Mentos05_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 26.07.2007
Beiträge: 26


Verfasst am: 15.01.2008, 21:43


Ach Mensch auf das Do Events hätte ich auch selber kommen können...
Trotzdem vielen herzlichen Dank für deine Hilfe!

Mit freundlichen Grüßen
Mentos05
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: passwort suchen, quelltext, auslesen, durchsuchen, quellcode

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Passwort Generator 1633 08.07.2010, 01:32
Keine neuen Beiträge Passwort Schutz? 942 25.10.2007, 07:31
Keine neuen Beiträge Das passwort an die E-Mail von mir senden? 609 17.10.2007, 22:18
Keine neuen Beiträge Passwort Generator by sollniss 1344 28.11.2008, 18:03
Keine neuen Beiträge TUT zur Passwort abfrage 1084 10.08.2007, 16:06
 


[ Time: 0.2107s ][ Queries: 103 (0.1346s) ][ GZIP on - Debug on ]