106543
Goto Top

VBA-Projekt - Quellcode schützen

Hi Leute,

ich hätte gerne gewusst, ob man den Quellcode von VBA irgendwie schützen kann, sodass kein Unbefugter diesen Auslesen kann o.Ä.
Es geht mir hierbei nicht um irgendwelche Programme welche den Quellcode dann auslesen sondern eher darum, dass bisher jeder User den Quellcode und auslesen und bearbeiten kann face-smile
Vielleicht hat ja schon jmd. von euch Erfahrungen damit gemacht.

Grüße
Exzellius

[EDIT]
Ok einiges googlen bin ich schlauer xD
also Passwortschützen ist kein Problem
nun würde ich gerne wissen, ob es möglich wäre, noch drastischere Methoden zu nehmen
[/EDIT]

Content-Key: 197344

Url: https://administrator.de/contentid/197344

Printed on: April 26, 2024 at 06:04 o'clock

Member: mayho33
mayho33 Jan 21, 2013 at 10:12:03 (UTC)
Goto Top
Im Visual Studio hast du die Möglichkeit dein Projekt in eine EXE umzuwandeln.
in VBS geht das z.B. mit VBSEDIT ganz easy per "Klick" auf "Convert into executable"
Auch einge Tools die im Internet zu finden sind können Code in eine Exe umwandeln VbsToExe z.B.
Du kannst eventuell auch in eine vbe umwandeln (nur VBS) was sich aber leicht rückgängig machen lässt.
Dotfuscator für VBA? Keine Ahnung aber eventuell gibts da was?
Mitglied: 106543
106543 Jan 21, 2013 at 10:27:23 (UTC)
Goto Top
Hey,

danke für die Mühe. face-smile
Ich wrd mich mal schlau machen.

Grüße
Exzellius
Member: Pjordorf
Pjordorf Jan 21, 2013 at 10:58:08 (UTC)
Goto Top
Hallo,

Zitat von @mayho33:
in VBS geht das
Jepp.

@106543: Aber hier geht es um VBA was ja innerhalb der Anwendung (Excel, Word, Outlook etc) direkt läuft. Da ist es mit wandeln in eeiner .exe eben nicht möglich. Passwortschutz ja. Ansonsten den VBA Code komplett auslagern in einer DLL oder gar als eigenständige Applikation (was aber dann kein VBA mehr ist).

ob es möglich wäre, noch drastischere Methoden zu nehmen
Und wer sollten denn dein Geniereiches Werk sabotieren wollen? Das lässt sich doch auch nachteilig für den durchführenden nachweisen sprich wer mutwillig Firmeneigentum (Hier der funktionsfähige VBA Code) zerstört oder beschädigt muss mit Schadenersatzforderungen sowie weitere Konsequenzen rechnen, oder? Wenn du nicht willst das jemand auch nur Ansatzweise dein VBA lesen kann, dann eben kein VBA verwenden.

Gruß,
Peter
Mitglied: 106543
106543 Jan 21, 2013 at 11:40:25 (UTC)
Goto Top
Hallo Peter,

mir ist durchaus klar, dass mein "Geniereiches Werk" *Schmunzel* seltenst sabotiert werden sollte, allerdings ist exakt dies einem Kollegen von mir passiert, von daher wollte ich Schutzvorkehrungen treffen.
Was sollte ich denn anstatt von VBA verwenden, was dann deutlich sicherer wäre?
Es muss allerdings auf ähnlich einfache weise auf Excel zugreifen können etc. face-smile
Von daher war und ist für mich VBA die beste und einfachste Lösung.

Grüße
Exzellius
Member: mayho33
mayho33 Jan 24, 2013 updated at 10:52:38 (UTC)
Goto Top
VBS kann auf Excel zugreifen. In genau dem Umfang wie VBA das auch kann (Gleiche Familie). Du must hat nur ein paar Objekte mehr erstellen am Anfang deines Codes und muss über diese Objekte dein Excel ansprechen. Nicht nennenswert umständlicher also meiner Ansicht nach.

Du hast sogar einen Vorteil mit VBS: Würdest du eventuell einbauen, dass nur Sheelts verwendet werden die in einem bestimmten Pfad liegen, könntest du damit jedes Sheet manipulieren das den Voraussetzungen entspricht. Und nicht nur das eine in dem dein VBA-Code steht.
Mitglied: 106543
106543 Jan 24, 2013 at 11:09:43 (UTC)
Goto Top
Hi mayho,

ok dann muss ich mich da mal reinarbeiten face-smile
mal sehen ob es viel umständlicher ist.
hast du da ein HowTo zur Hand ? Ich bin chronisch google-faul

Grüße
Exzellus
Member: Pjordorf
Pjordorf Jan 24, 2013 at 12:33:36 (UTC)
Goto Top
Hallo,

Zitat von @106543:
allerdings ist exakt dies einem Kollegen von mir passiert
Und der Passwortschutz ist nicht ausreichend gewesen oder war einfach keiner gesetzt? Das hält doch solche möchtegern "ich kann besser Programmieren als du und werde es jetzt tun" davon ab weiter als bis zur Passwortabfrage. Ansonsten im VBA eine Logging Funktion einbauen wer von welchen PC das ding wann geöffnet hat.

Gruß,
Peter
Member: Pjordorf
Pjordorf Jan 24, 2013 at 12:38:07 (UTC)
Goto Top
Hallo,

Zitat von @mayho33:
VBS kann auf Excel zugreifen.
Als ergänzung noch. Fast jede Hochsprache kann auch auf Excel (Office Aobjekte) zugreifen. Auch ein .NET oder ein VisiualBasic, C# usw. Fragt sich nur was sinnvoller ist und was ich tatsächlich erreichen möchte mit welchem Aufwand.

Gruß,
Peter
Mitglied: 106543
106543 Jan 24, 2013 at 13:07:29 (UTC)
Goto Top
Zitat von @Pjordorf:
Hallo,

> Zitat von @106543:
> allerdings ist exakt dies einem Kollegen von mir passiert
Und der Passwortschutz ist nicht ausreichend gewesen oder war einfach keiner gesetzt?

Hi,

bei ihm war kein Passwort drin, von daher dachte ich mir, man kann ja auch aus fremden Fehlern lernen face-smile
Member: mayho33
mayho33 Jan 25, 2013 at 16:00:05 (UTC)
Goto Top
Zitat von @Pjordorf:
Ansonsten im VBA eine Logging Funktion einbauen wer von welchen PC das ding wann geöffnet hat.

Naja, würde ich den Code eines Kollegen böswillig ändern wollen würde ich erstens das Sheet nicht vom Share aus öffnen sondern die Kopie davon ohne Netzwerkzugriff, zweitens würde jeder Zugriff geloggt werden, also auch das Öffnen des Excel.

und dazu:
Zitat von @Pjordorf:
Fragt sich nur was sinnvoller ist und was ich tatsächlich erreichen möchte mit welchem Aufwand.

Nun wie er schon sagte will er seinen Code schützen. Darum muss er den Code wohl oder übel vom Excel auslagern. Dafür gibt es schier unerschöpfliche Möglichkeiten.

Ganz einfach ist es mit VBS, weil es sich von VBA durch sozusagen nichts unterscheidet

http://mahimavbscript.blogspot.co.at/2010/09/working-with-excel-object. ...