Verschleierung-Tool für MS Excel VBA
Was sind einige Empfehlungen von tools, die verschleiern VBA-code über Formulare, Module und klassenmodule?
Ich habe getan ein wenig Forschung und Lesen Sie hier in den Archiven ist, aber es wurde nicht alles erwähnt, in eine Weile, so dass ich dachte, diese Empfehlungen könnten veraltet sein.
Ein paar abgeholt zu Lesen auf andere Orte sind:
- CrunchCode
- Obfu-VBA
Auch, bitte korrigiert mich wenn ich falsch Liege, aber von meinem Verständnis die vereinfachte Logik ein obfuscator ist:
- Gerangel der VBA-code unter Verwendung einer definierten Logik (änderung von X zu Y)
- Das tool erstellt eine neue Arbeitsmappe, wo der VBA-code ist alles verschlüsselt, aber alles andere bleibt gleich.
- Das tool kann die Logik definiert, wieder zurück zu den ursprünglichen VBA-code (änderung von Y zu X)
Ist das richtig? Was brauche ich, um zu suchen, wenn in der Auswahl der 'Logik definiert'? Ich spielte mit CrunchCode vor und es gab eine fülle von Optionen, aber Sie alle waren mir Fremd.
Vielen Dank für jede Hilfe 🙂
- Ich Baue obfuscators (check my bio). Ich glaube nicht, bauen eine für VBA. Als ersten Eindruck, den CrunchCode-tool ist eher standard in dem, was es tut, um Quell-code, aber der sieht ziemlich vernünftig zu mir. Ich weiß nicht, wie robust ein Produkt es ist. (Ich habe keine Beziehung zu Ihnen).
- möglicherweise haben Sie einen Blick auf diese Art von tool zu excel-pratique.com/en/vba_tricks/vba-obfuscator.php
- Ich benutzte ein Werkzeug namens VBASH, es tut vba Verschleierung ziemlich zuverlässig. IMHO ist es besser als CrunchCode und Obfu-VBA. Ich würde vorschlagen, es zu versuchen. ayedeal.com/vbash
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich gekauft CrunchCode und Vorsicht, dass es keine Unterstützung für 64-bit-Systeme. Support ist wirklich schlecht (keine E-Mail-Antworten auch immer über ein paar Wochen). Die string-Verschlüsselung-feature Schraube alle string-Vergleiche und MsgBoxes, wie entschlüsselt strings sind nicht die gleichen wie die Originale. Empfehlen um zu vermeiden, dieses Produkt!
Meine Vorherige Antwort war schlecht recherchiert und da sonst niemand geantwortet hat, dachte ich, Sie verdient eine bessere Antwort. Getestet, die CrunchCode, es scheint, dass es verschleiert durch die folgenden Techniken:
Nummer eins obfuscation-Technik ist der Streifen alle Semantik und die Wahrscheinlichkeit verringern, dass jeder Kontext abgeleitet werden. Das war allgemein ein problem in den Tagen der Assembler-code, wenn war es sehr schwer zu sagen, was der code tun würde, es sei denn, Sie waren mit ihm vertraut.
Groß-und Kleinbuchstaben, mit Armen Abstände machen es sehr schwer zu Lesen.
Wie oben, entfernt diese die chance, ein Verständnis von dem code abgeleitet.
Überladen von Operatoren (durch die Verwendung von User-Defined Functions) ist eine nützliche Technik. Sie können dies in VBA und ich immer daran denken, dies ist eine Frage, die ich erhielt während einem interview:
Sub 1: x = z + y
Sub 2: x = y + z
Sub 2 ist erwiesen, dass dauert länger als die sub 1. Warum ist das so?
Von 10 Befragten, war ich der einzige, der Ahnen-operator überladen, so dass diese immer bei mir hängen geblieben. Sie können den code Verhalten sich sehr unterschiedlich, wie es soll. Das Plus-symbol werden können, um zu subtrahieren, dividieren oder jede andere Anzahl von Kombinationen. Wenn etwas so grundlegend ist im code geändert, es ist viel schwieriger zu verstehen, den Quellcode.
Als ein weiterer Schritt, würde ich wahrscheinlich in Versuchung, zu viele redundante Methoden, um den source-code. Im wesentlichen Teile von code, führen sinnlose code basiert auf einer Bedingung, die wahr ist. Diese Bedingung ist nie wahr, aber da der code schwer zu Lesen ist, ist dies schwer zu verstehen.
Im wesentlichen funktioniert es wie das Gegenteil von allen coding standards, die ich gelesen habe über die letzten paar Jahre. Alles, was Sie tun sollen, wie ein Entwickler Sie machen den code besser lesbar (immerhin sollten wir alle schreiben unseren code für andere Entwickler, nicht nur für die Maschine - wer kümmert sich, dass Sie reduzieren können, die Methode, um eine einzelne Zeile, wenn niemand es verstehen kann?).
Nachteil: Es gibt keinen Weg, um sicherzustellen, stoppen Sie jemand stehlen Ihre source-code. Ich kenne Leute, die aufgehört Ihre open-source-Projekte, weil die Leute verkaufen kompilierte Versionen, die es als Ihre eigenen. Es ist einfach eines dieser Dinge, die Entwickler. Verschleierung gehen einige Weg, aber ist nicht 100% garantiert, um zu stoppen Entwickler bestimmt stehlen, aber es ist ein Fall, der macht es mehr ärger als es Wert ist, so haben Sie die Wirkungskraft (z.B. Sie schreiben, könnte die gleiche Funktionalität in der Zeit, die es braucht, um reverse-Engineering des Codes).
Hoffe, das hilft - für mehr Informationen check out das YouTube-video hier (mit sehr ominös klingende Musik!)
Wenn Sie dont Geist einige kopieren und einfügen und doppelklicken Sie überprüfen die Produkt-vbobfuscator scheint nice zu sein. Beides macht vba und vbscript. Änderungen var und function-Namen. http://www.vbobfuscator.net . Verschleierung ist weit komplexer als ein einfaches suchen und ersetzen... das wird liefern nicht funktionierenden code 😉
Online VBScript Obfuscator (Verschlüsselung/Schutz VBS)
https://isvbscriptdead.com/vbs-obfuscator/
Möchte nur hinzufügen, dass ein tool namens "VBASH" (www.ayedeal.com) den job tun können. Ich habe mit ihm für eine Weile, und bin glücklich mit ihm so weit.