Verschleierungstool für MS Excel VBA

8

Was sind einige Empfehlungen von Tools, die VBA-Code in Formularen, Modulen und Klassenmodulen verschleiern können?

Ich habe ein wenig recherchiert und hier in den Archiven nachgelesen, aber seit einiger Zeit wurde nichts mehr erwähnt, daher dachte ich, dass diese Empfehlungen veraltet sein könnten.

Ein paar davon, die ich an anderen Orten gelesen habe, sind:

  • CrunchCode
  • Obfu-VBA

Bitte korrigiere mich auch, wenn ich falsch liege, aber nach meinem Verständnis ist die vereinfachte Logik eines Verschleiers:

  • Verschlüsseln Sie den VBA-Code mit einer definierten Logik (ändern Sie X zu Y)
  • Das Tool erstellt eine neue Arbeitsmappe, in der der VBA-Code verschlüsselt ist, aber alles andere gleich bleibt.
  • Das Werkzeug kann die definierte Logik verwenden, um zum ursprünglichen VBA-Code zurückzukehren (Wechsel von Y zu X)

Stimmt das? Was muss ich bei der Auswahl der "definierten Logik" beachten? Ich habe schon vorher mit CrunchCode herumgespielt und es gab eine Fülle von Möglichkeiten, aber sie waren alle fremd für mich.

Danke für jede Hilfe:)

    
Chronix3 27.05.2013, 01:27
quelle

4 Antworten

3

Ich habe CrunchCode gekauft und darauf geachtet, dass es 64-Bit-Systeme nicht unterstützt. Der Support ist wirklich schlecht (keine E-Mail-Antworten über ein paar Wochen). Die Zeichenfolgenverschlüsselungsfunktion wird all Ihre Zeichenfolgenvergleiche und MsgBoxes vermasseln, da entschlüsselte Zeichenfolgen nicht mit den Originalen übereinstimmen. Empfehlen Sie dieses Produkt zu vermeiden!

    
andrewkoay 04.07.2015 04:18
quelle
1

Meine vorherige Antwort war schlecht erforscht und da niemand geantwortet hat, dachte ich, Sie hätten eine bessere Antwort verdient. Nach dem Testen von CrunchCode scheint es, dass es durch die folgenden Techniken verschleiert:

  • Umbenennen

Die Nummer eins Verschleierungstechnik besteht darin, alle Semantiken zu entfernen und die Wahrscheinlichkeit zu reduzieren, dass irgendein Kontext abgeleitet wird. Dies war häufig ein Problem in den Tagen des Assembler-Codes, als es sehr schwer war zu sagen, was der Code tun würde, wenn Sie sich damit nicht auskannten.

Groß- und Kleinbuchstaben mit schlechtem Abstand machen das Lesen sehr schwierig.

  • Entfernung von Kommentaren

Wie oben wird dadurch die Möglichkeit des Verständnisses des abgeleiteten Codes beseitigt.

  • Substitution

Das Überladen von Operatoren (durch die Verwendung von benutzerdefinierten Funktionen) ist eine nützliche Technik. Sie können dies in VBA tun und ich erinnere mich immer daran, dass dies eine Frage war, die mir während eines Interviews gestellt wurde:

Sub 1: x = z + y
Sub 2: x = y + z

Es wird nachgewiesen, dass Sub 2 länger dauert als Sub 1. Warum ist das?

Von 10 Befragten war ich der Einzige, der das Überladen von Betreibern erraten hat, also ist das immer bei mir geblieben. Sie können festlegen, dass Code sich sehr anders verhält als beabsichtigt. Das Additionssymbol kann zum Subtrahieren, Dividieren oder jeder anderen Anzahl von Kombinationen gemacht werden. Wenn etwas Grundlegendes im Code geändert wird, ist es viel schwieriger, den Quellcode zu verstehen.

  • Extras

Als zusätzlicher Schritt wäre ich wahrscheinlich versucht, dem Quellcode viele redundante Methoden hinzuzufügen. Im Wesentlichen Teile von Code, die sinnlosen Code ausführen, wenn eine Bedingung wahr ist. Diese Bedingung ist niemals wahr, aber weil der Code schwer zu lesen ist, ist dies schwer zu verstehen.

Im Wesentlichen funktioniert es wie das genaue Gegenteil aller Codierungsstandards, die ich in den letzten Jahren gelesen habe. Alles, was Sie als Entwickler tun sollten, um Ihren Code lesbarer zu machen (schließlich sollten wir unseren Code nicht nur für die Maschine, sondern auch für andere Entwickler schreiben - wen kümmert es, dass Sie diese Methode auf eine einzige Zeile reduzieren können, wenn niemand versteht es?).

Vorbehalt: Es gibt keine sichere Möglichkeit, jemanden daran zu hindern, den Quellcode zu stehlen. Ich kenne Leute, die ihre Open-Source-Projekte gestoppt haben, weil Leute kompilierte Versionen als ihre eigenen verkauften. Es ist nur eines dieser Dinge für Entwickler. Verschleierung wird einen Teil des Weges gehen, ist aber nicht 100% garantiert, um einen entschlossenen Entwickler davon abzuhalten, es zu stehlen, aber es ist ein Fall von mehr Ärger als es Wert ist, also haben sie abnehmende Erträge (zB könnten sie die gleiche Funktionalität in schreiben Zeit, die es dauert, den Code zurückzuentwickeln).

Ich hoffe, das hilft - für weitere Informationen besuche das YouTube-Video hier (mit sehr ominös klingender Musik!)

    
csharpforevermore 13.10.2014 10:09
quelle
0

Wenn es Ihnen nichts ausmacht, kopieren und einfügen und doppelte Überprüfung des Produkts Vbobfuscator scheint nett zu sein. Ist sowohl vba als auch vbscript. Ändert Var- und Funktionsnamen. www.vbobfuscator.net. Verschleierung ist viel komplexer als ein einfaches Suchen und Ersetzen ... das wird nicht funktionierenden Code liefern;)

    
Harry 24.07.2015 15:22
quelle
0

Online VBScript Obfuscator (Verschlüsseln / Schützen von VBS)

  

Mit diesem praktischen VBS-Tool können Sie Ihr VBScript in ein   verschleierte VBS - Quellcode, ohne Kompromisse / Änderung der   Skriptfunktionen und die VBScript-Schlüsselwörter. Dies Kostenlos   VBScript Obfuscator konvertiert jedes Zeichen in Ihrem VBS   Quellcode in ein viel verschleiertes Format. Dann sind diese verschleiert   Buchstaben werden zur Laufzeit kombiniert und über Execute ausgeführt   Funktion.

Ссылка

    
Zhihua Lai 27.04.2017 15:14
quelle

Tags und Links