Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Öffnen einer Datei in Entwicklungsmodus verhindern?

129 views
Skip to first unread message

Torsten Krebs

unread,
Jan 7, 2003, 11:18:42 AM1/7/03
to
Hallo NG!

Gibt es eine Möglichkeit eine Datei so zu schützen, dass der Anwender nicht
in den Entwicklungsmodus schalten und damit den Code deaktivieren kann?

Hintergrund der Frage ist die Sicherheit des SourceCodes unter XLS2000. Wenn
jemand eine Datei im Entwicklungsmodus öffnet ist es für denjenigen ja ein
leichtes über ein entsprechendes Tool an das PWD des SourceCodes zu kommen
und im Code rumzufuhrwerken! Dafür suche ich eine Lösung um den Code gegen
fremde Eingriffe zu schützen!

Gruss
Torsten Krebs


Bernd Held

unread,
Jan 7, 2003, 12:32:36 PM1/7/03
to
Hallo Torsten,

man könnte die Tastenkombination Alt+F11 deaktivieren:

Sub DeaktivierenAltF11()
Application.OnKey "%{F11}"
End Sub

Wenn Du dieses Makro beim Öffnen der Arbeitsmappe ablaufen lässt, dann wird
es über die Tastenkombination Alt+F11 nicht möglich sein, in die
Entwicklungsumgebung zu kommen.

Eventuell ein Schritt in die gewünschte Richtung...

Viele Grüße
Bernd
MVP für Microsoft Excel
Jetzt neu: Excel-VBA in 21 Tagen neue FAQs
und Makros unter http://held-office.de


"Torsten Krebs" <tkr...@misag.com> schrieb im Newsbeitrag
news:#FJ8rhmtCHA.2636@TK2MSFTNGP11...

Frank Arendt-Theilen

unread,
Jan 7, 2003, 2:47:18 PM1/7/03
to
Hallo bernd,
und was ist mit der Visual Basic Symbolleiste?

MfG Frank
_________________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
eMail: Thei...@t-online.de, Homepage: http://www.xl-faq.de

Hans-Elmar Kliebisch

unread,
Jan 7, 2003, 5:43:01 PM1/7/03
to
Hallo,

Ergänzung:
Aber auch so kann nicht verhindert werden, dass jemand beim Start der
Datei - je nach Sicherheitseinstellungen - die Nachfrage "Makros
deaktivieren" bejaht.

--
Gruß

Hans-Elmar Kliebisch
Win XP Home, Office 2000
"Hans-Elmar Kliebisch" <newsg...@kliebisch-online.de> schrieb im
Newsbeitrag news:#PXBr2ptCHA.1644@TK2MSFTNGP12...
> Hallo,
>
> da bietet sich doch eher der VBE-Passwortschutz an, zu finden im
VBA-Editor
> unter "Extras"/"Eigenschaften von VBA-Projekt"/"Schutz".
> Damit kommt niemand mehr ohne Passwort an den Code.
>
> --
> Gruß
>
> Hans-Elmar Kliebisch
> Win XP Home, Office 2000
> "Frank Arendt-Theilen" <Thei...@t-online.de> schrieb im Newsbeitrag
> news:vibm1vg28rt4jsnbs...@4ax.com...

Hans-Elmar Kliebisch

unread,
Jan 7, 2003, 5:38:42 PM1/7/03
to
Hallo,

da bietet sich doch eher der VBE-Passwortschutz an, zu finden im VBA-Editor
unter "Extras"/"Eigenschaften von VBA-Projekt"/"Schutz".
Damit kommt niemand mehr ohne Passwort an den Code.

--
Gruß

Hans-Elmar Kliebisch
Win XP Home, Office 2000
"Frank Arendt-Theilen" <Thei...@t-online.de> schrieb im Newsbeitrag
news:vibm1vg28rt4jsnbs...@4ax.com...

Torsten Krebs

unread,
Jan 8, 2003, 4:01:01 AM1/8/03
to
Hallo zusammen!

Erstmal vielen Dank für die zahlreichen Antworten!

Leider lösen alle das Problem nicht ganz.

- Alt+F11 habe ich bereits deaktiviert -> öffne ich die Mappe aber mit
gedrückter Shift Taste bin ich im normalen Excel-Entwicklungsmodus, komme in
den VBE und kann wieder alles mögliche anstellen
- Die Symbolleisten werden in meiner Applikation alle ausgeblendet, das
Problem besteht also auch nicht
- VBE-Passwort-Schutz ist eingeschaltet aber es ist ja hinlänglich bekannt,
dass dieser Schutz nicht wirklich gut ist. Im Web findet man problemlos
kleine Tools mit denen man die Passwörter im Klartext auslesen kann. Das ist
also auch kein wirklicher Schutz!

Das einzige was ich bisher mal gesehen habe, was wirklich einbruchssicher
war, war ein VBA-Code der unter Excel 95 oder früher erstellt wurde. Dort
kam man dann unter 2000 gar nicht erst zu einer Passworteingabe. Aber das
ist nicht wirklich praktikabel.

Alles in allem kommt man also superfix in den Code rein und das möchte ich
irgendwie verhindern. Ich bin mir halt nicht sicher ob es irgendwelche
Tricks gibt, um das ganze sicherer zu machen oder ob ich mich einfach damit
abfinden muss, dass es nicht sicherer geht.

MfG
Torsten Krebs
Software-Consultant
Win 2K, Excel 2000

"Hans-Elmar Kliebisch" <newsg...@kliebisch-online.de> schrieb im

Newsbeitrag news:avfl5n$e7tns$1...@ID-9879.news.dfncis.de...

Thomas Ramel

unread,
Jan 8, 2003, 4:15:37 AM1/8/03
to
Grüezi Torsten

Torsten Krebs schrieb:


>
> - Alt+F11 habe ich bereits deaktiviert -> öffne ich die Mappe aber mit
> gedrückter Shift Taste bin ich im normalen Excel-Entwicklungsmodus, komme in
> den VBE und kann wieder alles mögliche anstellen
> - Die Symbolleisten werden in meiner Applikation alle ausgeblendet, das
> Problem besteht also auch nicht
> - VBE-Passwort-Schutz ist eingeschaltet aber es ist ja hinlänglich bekannt,
> dass dieser Schutz nicht wirklich gut ist. Im Web findet man problemlos
> kleine Tools mit denen man die Passwörter im Klartext auslesen kann. Das ist
> also auch kein wirklicher Schutz!

Das VBE-Passwort ist so leicht nicht auszulesen - zumindest setzt es eine
gewisse 'kriminelle' Energie voraus.

Was ich (noch) nicht ganz verstehe: Was meinst Du mit 'Enwicklungsmodus'?

> Alles in allem kommt man also superfix in den Code rein und das möchte ich
> irgendwie verhindern. Ich bin mir halt nicht sicher ob es irgendwelche
> Tricks gibt, um das ganze sicherer zu machen oder ob ich mich einfach damit
> abfinden muss, dass es nicht sicherer geht.

'Sicherheit' ist in Excel nicht gleich 'unknackbar'. Es geht hier wohl eher
um das unbeabsichtigte Löschen und Verändern von Code und/oder Inhalten.

Wenn Du gar keinen Einblick in die Programmierung erlauben willst, musst Du
ein Com-Add-In erstellen oder Excel via VB 'fernsteuern'. Ein VB-Programm
besteht dann lediglich noch aus einer .exe und eventuellen .dll.

--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

Torsten Krebs

unread,
Jan 8, 2003, 6:07:05 AM1/8/03
to
Hi Thomas!

Klar setzt das Auslesen des Passworts eine gew. kriminielle Energie voraus.
Aber selbst auf Seiten wie Herbers Excel-Server gibt es kleine Tools um
"vergessene" PWDs auszulesen. Von daher wird man fast mit der Nase drauf
gestossen...

Sorry, ich meinte "Entwurfsmodus". In diesem Modus sind alle Makros
ausgeschaltet. Wenn Du eine Datei aus Excel heraus öffnest und während des
gesamten Ladevorgangs die linke Shift-Taste gedrückt hälst, startet die
Datei in diesem Modus ohne AutoOpen- bzw. WorkbookOpen-Prozeduren
auszuführen.

Es geht mir schon eher um das absichtliche Verändern von Code.

Wie baue ich ein Com-AddIn?!

Die Idee mit VB & DLL hatte ich auch schon, aber da hab ich mich noch nicht
ran getraut. Gibts da irgendwelchen bekannten Probleme?

Gruss
Torsten

"Thomas Ramel" <t.r...@mvps.org> schrieb im Newsbeitrag
news:3E1BEC39...@mvps.org...

Thomas Ramel

unread,
Jan 8, 2003, 8:26:21 AM1/8/03
to
Grüezi Torsten

Torsten Krebs schrieb:
>

> Klar setzt das Auslesen des Passworts eine gew. kriminielle Energie voraus.
> Aber selbst auf Seiten wie Herbers Excel-Server gibt es kleine Tools um
> "vergessene" PWDs auszulesen. Von daher wird man fast mit der Nase drauf
> gestossen...

Das VBE-Projekt-Paswort ist da aber meines Wissens nicht dabei.
Da führt der mir bekannte Weg über einen HEX-Editor.
Mehr dazu aber nicht.

> Sorry, ich meinte "Entwurfsmodus". In diesem Modus sind alle Makros
> ausgeschaltet. Wenn Du eine Datei aus Excel heraus öffnest und während des
> gesamten Ladevorgangs die linke Shift-Taste gedrückt hälst, startet die
> Datei in diesem Modus ohne AutoOpen- bzw. WorkbookOpen-Prozeduren
> auszuführen.

Ja; das ist mir bekannt. An den VBA-Teil kommst Du bei einem geschützten
Projekt so aber nicht ran:

Rechtsklick im VBA-Esitor auf das Projekt --> Eingenschaften von
VBA-Projekt --> Register: 'Schutz' --> [x] Projekt für Anzeige sperren den
Haken setzen und unten ein Kennwort vergeben.

> Es geht mir schon eher um das absichtliche Verändern von Code.

Das wäre dann die Methode mit dem VBA-Projekt-Kennwort.

Um die Tabellenblätter ebenfalls zu verbergen setzt Du sie im
Workbook_BeforeClose-Ereignis auf xlVeryHidden, dann sidn sie per Fenster
--> Einblenden *nicht* einblendbar.
Eine 'Dummytabelle' mit dem lakonischen Hinweis, dass das Projekt ohne
aktivierte Makros nicht läuft, setzt Du darin sichtbar.

Bein Öffnen im Workbook_Open-Ereignis verbirgst Du die 'Dummytabelle' und
setzt die andern Tabellnblätter wieder sichtbar.

Wenn nun die Mappe bei aktivierten Makros geschlossen wird, werden die
Tabellenblätter verborgen.

Öffnest Du die Mappe mit aktivierten Makros läuft alles wie es soll.

Öffnest Du die Mappe mit deaktivierten Makros hast Du nur die DummyTabelle
drin.

An den VBA-Code kommst Du wegen des VBA-Prokjekt-Kennwortes auch nicht ran.

Das ist so in etwa das 'sicherste', das mit Excel zu erzielen ist.

> Wie baue ich ein Com-AddIn?!

Mit der Office-Developer-Version.

> Die Idee mit VB & DLL hatte ich auch schon, aber da hab ich mich noch nicht
> ran getraut. Gibts da irgendwelchen bekannten Probleme?

Ein paar Dialekt-Probleme vielleicht, die aber lösbar sind.
Da müsstest Du dich mal in den entsprechenden VB-Groups erkundigen.

Torsten Krebs

unread,
Jan 8, 2003, 10:56:40 AM1/8/03
to
Hallo Thomas!

Das mit dem VBA-Projekt-Kennwort ist mir bekannt und eben für jenes hab ich
auf einer Seite von Herber (kann auch seine alte gewesen sein) entweder das
Tool selbst oder einen Link gefunden um dieses im Klartext auszugeben. Naja
aber das Thema bringt mich eh nicht weiter mit dem Knacken oder nicht, also
genug davon.

Der Tip mit dem VeryHidden ist super. Es hinkt nur an einer Stelle. Der
grösste Teil meines Codes befindet sich in Modulen und Klassenmodulen. In
den Worksheets selbst sind nur die Prozeduraufrufe für die einzelnen Objekte
drin.

Ich denke das sicherste wäre wirklich eine VB-DLL. Da muss ich wohl mal ein
wenig rumprobieren.

Wie unterscheidet sich ein Com-AddIn von dem mir bekannten
Standard-Excel-AddIn (.xla)?

Vielen Dank für Deine Mühe!

Torsten


"Thomas Ramel" <t.r...@mvps.org> schrieb im Newsbeitrag

news:3E1C26FD...@mvps.org...

0 new messages