Anzeige
Archiv - Navigation
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
640to644
640to644
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schutz durch Öffnung aus vb.exe

Schutz durch Öffnung aus vb.exe
26.07.2005 21:34:22
Peter
Hallo Excel Gemeinde.
Ich möchte mein mit reichlich vba Code versehenes Programm schützen, indem ich meine Excel Datei über ein Visual Basic . Exe Programm starte.
Diese exe Anwendung soll ebenfalls den 15 Ziffern Passwordschutz der Excel Datei eingeben (Knackprogramme schaffen derzeit anscheinend nur bis zu 9 Zeichen, und brute force Attacken scheitern -hoffentlich- durch Sonderzeichen).
Dadurch kann man die Excel Datei nur mit Makros starten (status bars und Tastaturbefehle sind außer Kraft!). Zwar ist der VBA Programmschutz wohl mit entsprechenden Programmen zu knacken, das ist aber nutzlos wenn man nicht an die Datei selbst ran kommt, deren Password in der exe verborgen ist.
Den Code für die VB.exe bekomme ich aber nicht hin.
Hat jemand eine Idee?
Peter

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schutz durch Öffnung aus vb.exe
26.07.2005 21:48:54
Nepumuk
Hi,
das kommt darauf an, was das Programm leisten soll. Nur öffnen im immer selben Ordner und immer mit dem selben Kennwort, oder alles Variabel.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Schutz durch Öffnung aus vb.exe
26.07.2005 22:16:41
Peter
Hi Nepumuk,
exe soll ganz einfach sein, immer der gleiche Ordner, immer das gleiche Kennwort
Peter
AW: Schutz durch Öffnung aus vb.exe
26.07.2005 22:25:56
Matthias
Hallo Peter,
Nepumuk möge mich korrigieren, er hat es mir schließlich auch beigebracht:

Const Dateiname = "Dateiname.xls"
Const pw = "123"
Private Sub Form_Load()
Me.Show
DoEvents
On Error GoTo ERRHANDLER
Set xlApp = CreateObject("Excel.Application")
If Err.Number > 0 Then
MsgBox "Microsoft(R) Excel ist nicht installiert.", vbCritical, "fehlende Software"
GoTo ENDE
End If
If Val(xlApp.Version) < 9 Then
MsgBox "Das Programm braucht mindestens Microsoft(R) Excel 9 (Office 2000)!", vbCritical, "Versionskonflikt"
GoTo ENDE
End If
xlApp.Visible = False
xlApp.Workbooks.Open FileName:=App.Path & "\" & Dateiname, ReadOnly:=False, Password:=pw
If Err.Number > 0 Then
MsgBox "Die Datei konnte nicht geöffnet werden!", vbCritical, "unerwarteter Fehler"
End If
ENDE:
Set xlApp = Nothing
End
ERRHANDLER:
MsgBox "Fehler " & Err.Number & vbLf & Err.Description, vbCritical, "unerwarteter Fehler"
Set xlApp = Nothing
End
End Sub

Die Form kann z.B. eine Bitte Warten-Meldung anzeigen.
Hier wird auch noch abgefragt, ob Excel überhaupt installiert ist und wenn ja welche version (kannst du ja weglassen).
Gruß Matthias
Anzeige
AW: vergessen:...
26.07.2005 22:30:32
Matthias
Hallo Peter,
...

Dim xlApp As Object

an den Anfang.
Gruß Matthias
AW: Schutz durch Öffnung aus vb.exe
26.07.2005 22:49:02
Nepumuk
Hallo Matthias,
nach dem Erstellen des Objektes (CreateObject) fragst du die Fehlernummer ab. Wenn aber ein Fehler dabei passiert, bist du schon in deinem "ERRHANDLER". Denn die Anweisung lautet: On Error GoTo ERRHANDLER
Wozu du die Form anzeigst ist mir nicht klar. Sind da irgendwelche Hinweise drauf?
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Schutz durch Öffnung aus vb.exe
26.07.2005 22:42:12
Nepumuk
Hallo Peter,
dann so: Öffner VB mit einer Standard-EXE. Lösche die Form und füge ein Standardmodul ein. Darin folgender Code:
Option Explicit

Private Sub Main()
    Dim xlApp As Object
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Workbooks.Open "D:\test.xls", Password:="DeinKennwort"
    Set xlApp = Nothing
    End
End Sub

Wenn du ein anderes Icon haben willst, muss die Form drin bleiben, und du musst ihr ein Icon geben und die Visible – Eigenschaft auf False setzen. Die brauchst du ja nicht. Dann benötigst du kein Modul und der Code sieht so aus:
Option Explicit

Private Sub Form_Load()
    Dim xlApp As Object
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Workbooks.Open "D:\test.xls", Password:="DeinKennwort"
    Set xlApp = Nothing
    End
End Sub

Das sind natürlich nur Primitivversionen ohne Fehlerbehandlung. Aber bei VBA gut kannst du das ja noch ausbauen. Die Sprachen sind bis auf die Excel / Officespezifischen Sprachelemente identisch.
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Schutz durch Öffnung aus vb.exe
26.07.2005 22:46:57
Matthias
Hallo Nepumuk,
da du grade bei dem Thema bist:
Kann man nicht mit einem Hex-Editor die EXE-Datei ansehen und das Kennwort auslesen? Ich habe es zwar nicht im Klartext gefunden, aber vielleicht ist es ja recht simpel verschlüsselt.
Gruß Matthias
AW: Schutz durch Öffnung aus vb.exe
26.07.2005 23:00:51
Nepumuk
Hallo Matthias,
ja, das ist möglich. Um dich davor zu schützen, musst du das Kennwort verschlüsselt in einer Konstanten halten und zur Laufzeit entschlüsseln. Der Entschlüsselungsalgorithmus ist, wie die Programmanweisungen selbst so gut wie nicht auszulesen.
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
Danke für die Info - o.w.T.
26.07.2005 23:06:18
Matthias
:-)
AW: Schutz durch Öffnung aus vb.exe
26.07.2005 23:06:08
Nepumuk
Hi Matthias,
hier siehst du das Kennwort (DeinKennwort) wie ich es im meinem Beispiel verwendet habe:
Userbild
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Schutz durch Öffnung aus vb.exe
27.07.2005 09:07:27
Peter
Hallo Mathias und Nepumuk,
vielen Dank für die schnelle Hilfe. Komme leider mit beiden Lösungen noch nicht zu Rande, könnt ihr vielleicht die Schritte in VB noch etwas genauer erläutern.
Ist nach eurer Erfahrung eine 15 stelliges Password bei Excel zu knacken, das sind ja reichlich Permutationen?
vielen Dank
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige