[gelöst] Versuchte Dateizugriffe vom Programm protokollieen

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Tutti
Beiträge: 260
Registriert: 25.07.2005 19:37:59

[gelöst] Versuchte Dateizugriffe vom Programm protokollieen

Beitrag von Tutti » 15.01.2009 17:08:51

Das ist jetzt eine eher etwas ungewöhnliche Frage, aber vielleicht kann mir hier jemand helfen. Ich soll für eine Kollegin ein kleines Programm ans laufen bekommen, wovon sie mehrere Versionen sowohl des Quelltextes als auch eine vorkompilierte Datei bekommen hat. Der Author selbst wußte nur noch, dass man wahrscheinlich eine bestimmte Pfadstruktur einhalten muss. Da er das Programm vor einigen Jahren geschrieben hat, kann er sich an keine Details mehr erinnern. Daher hat er einfach alles geschickt, was er so gefunden hat.

Das Programm ist in Visual Basic 6 geschrieben. Ich finde keinen kostenlosen Compiler, der den alten Quelltext noch kompilieren kann, also muss die vorkompilierte Datei herangezogen werden. Diese funktioniert jedoch nicht, und ich bin mir nahezu zu 100% sicher woran es liegt - kanns aber nicht so einfach beheben. Beim Programmstart kommt der Fehler "Runtime Error 76: Path not found".
Ich habe es auf 3 verschiedenen Rechnern unter
-Windows 98SE
-Windows XP SP3
-Windows Vista
-Debian Etch mit Wine
probiert mit jedesmal effektiv das gleiche Resultat.

Aus dem vorhandenen Quelltext kann ich lesen, dass eine Datei (die ist auch vorhanden) geladen wird, von der ist jedoch der Pfad hardgecoded im Quellcode. In zwei verschiedenen Versionen habe ich zwei unterschiedliche Pfade gefunden. Leider hat die kompilierte Datei wohl eine dritte Möglichkeit. Das ist zumindest meine Vermutung für den obigen Fehler, da ich die Datei in die beiden Verzeichnisse plus mögliche Varianten gelegt habe. Ich habe zwar einen kostenlosen Decompiler für Visual Basic gefunden (ich will ja nur den blöden Pfad auslesen, habe ja sogar legal den Quellcode leider nur eine falsche Version), der konstruiert jedoch nicht die Subroutinen in der dieser Pfad drinsteht. Das macht dann nur die Version, die kostet. Kann man zufälligerweise irgendwie protokollieren auf welches Verzeichnis, selbst wenn es nicht existiert, ein Programm zugreifen will?
Offene Dateien kann ich mir ja mit "lsof" anzeigen lassen, aber für so einen Fall hab ich leider nichts gefunden. Vielleicht hab ich aber auch nur nicht die richtigen Suchwörter benutzt.

Vielen Dank

*edit*
Titel leicht geändert (eines -> vom), da das sonst mit dem gelöst Tag nicht gepasst hätte.
Zuletzt geändert von Tutti am 15.01.2009 20:10:24, insgesamt 1-mal geändert.

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: Versuchte Dateizugriffe eines Programm protokollieren

Beitrag von Spasswolf » 15.01.2009 17:11:26

Kann man zufälligerweise irgendwie protokollieren auf welches Verzeichnis, selbst wenn es nicht existiert, ein Programm zugreifen will?
Debianstrace kann das ,wobei ich nicht genau weiß wie man das mit wine benutzt, eventuell so

Code: Alles auswählen

strace -o LOGDATEI -ff wine Programm.exe
Edit: Oder du guckst dir mit einem Hexeditor das kompilierte Programm an.

Tutti
Beiträge: 260
Registriert: 25.07.2005 19:37:59

Re: Versuchte Dateizugriffe eines Programm protokollieren

Beitrag von Tutti » 15.01.2009 18:22:15

Spasswolf hat geschrieben:
Kann man zufälligerweise irgendwie protokollieren auf welches Verzeichnis, selbst wenn es nicht existiert, ein Programm zugreifen will?
Debianstrace kann das ,wobei ich nicht genau weiß wie man das mit wine benutzt, eventuell so

Code: Alles auswählen

strace -o LOGDATEI -ff wine Programm.exe
Danke für den Tipp, das werde ich mal testen.
Spasswolf hat geschrieben: Edit: Oder du guckst dir mit einem Hexeditor das kompilierte Programm an.
Das habe ich schon versucht, vergessen zu erwähnen sorry. Leider ist dieser Link nicht als Klartext zu sehen. Ich nehme an es liegt daran, dass er in einer Prozedur / Sub Routine (oder wie das bei VB heißt), aufgerufen wird.

Tutti
Beiträge: 260
Registriert: 25.07.2005 19:37:59

Re: Versuchte Dateizugriffe eines Programm protokollieren

Beitrag von Tutti » 15.01.2009 20:04:08

Spasswolf hat geschrieben:
Kann man zufälligerweise irgendwie protokollieren auf welches Verzeichnis, selbst wenn es nicht existiert, ein Programm zugreifen will?
Debianstrace kann das ,wobei ich nicht genau weiß wie man das mit wine benutzt, eventuell so

Code: Alles auswählen

strace -o LOGDATEI -ff wine Programm.exe
Jap sehr geil, EXAKT dieser Befehl war es. Bin eben nach Hause gekommen und konnte es probieren. Das hat zwar 17 Log Dateien mit ingesamt 6.1 MB erstellt (geil für 2sec Programm Lauf und Exit mit einer Fehlermeldung). Da ich aber weiß, wie die Datei heißt, konnte ich den Pfad sehr schnell finden. Top Programm läuft sogar mit Wine perfekt.

Vielen Dank!

Antworten