|
| Autor |
Nachricht |
Mentos05_ 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

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

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

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

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

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

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

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 |
|
| |
|
 |
|
|