Nach oben
Support & Downloads Support & Downloads

Häufig gestellte Fragen

Share:

Allgemeines

  •  

    Die AxProtector Option '–a' wurde in der Vergangenheit verwendet, um die AxEngine bei der Verschlüsselung an einen bestimmten, zuvor reservierten Bereich, zu legen.

    Dies war notwendig, wenn die Anwendung nicht genügend Platz bot, die AxEngine unterzubringen.

    Seit AxProtector Version 10.20 wird diese Option nun nicht mehr unterstützt. Eine alternative Möglichkeit, die AxEngine trotzdem an eine Anwendung anzufügen, wird in KB-0322 beschrieben.

  •  

    AxProtectorLin kann für den Evaluierungs-Universal Firm Code 6000010 beispielhaft wie folgt aufgerufen werden - für weitere Optionen siehe die AxProtector-Hilfe):

     

    AxProtectorLin -x -kcm -f6000010 -p13 -cf0 -d:6.20 -fw:3.00 -sl -nl -cav -cas100 -car30,3 -v -cag17 -# -o:"encrypted_test.app" "test.app"

     

    -x linkt die statische Bibliothek des Lizenzsystems mit der zu schützenden Anwendung.

    -kcm Gibt das Lizenzierungssystem an (CodeMeter) .

    -f Gibt den zu verwendenden Firm Code (x) an.

    -p Gibt den zu verwendenden Product Code (x) an.

    -cf Gibt den Funktionscode (x) der zu verwendenden Funktionsübersicht an.

    -d Gibt die minimale Treiber-Version (v) an.

    -fw Definiert die minimale Firmware-Version (v).

    -sl Gibt die Suchreihenfolge des Subsystems an, wenn nach Lizenzen gesucht wird (lokal).

    -nl Gibt den Zugriffsmodus an (Normal User Limit).

    -cav Fügt der automatisch verschlüsselten Anwendung eine Code-Integritätsprüfung hinzu.

    -cag Aktiviert Anti-Debugging-Mechanismen (Anti-Debugging-Checks, ADC).

    -cas Gibt die Größe der zu verschlüsselnden geschützten Anwendung an. Sie geben die Länge in Prozent von 0 bis 100% ein.

    -# Diese Option steht für die automatischen Ausgabe in die Datei AxProtector.log [//Dokumente und Einstellungen\Benutzer].

    -car30,3 Fügt der automatischen Verschlüsselung eine Laufzeitüberprüfung hinzu.

    -v Aktiviert den verbose (ausführlichen) Modus.

    -o Gibt den Pfad und den Namen der verschlüsselten Zieldatei an.

  •  

    Zum Austesten (debugging) von geschützten Anwendungen bietet AxProtector verschiedene Optionen an.

     

     

    AxProtector-Option -cce

    Zur Untersuchung einer Dump-Datei einer verschlüsselten Anwendung/Dll im Vergleich mit dem originalen Code sollten Sie bei der Verschlüsselung die AxProtector-Option -cce verwenden, damit die Speicheradressen beibehalten werden.

     

    In den meisten Anwendungsfällen reicht die Verwendung der AxProtector-Option –cce völlig.

     

    AxProtector-Option -ccn

    Die AxProtector Option -ccn ist notwendig, um eine geschützte Anwendung zu debuggen. Hierzu wird beim Debuggen das "Structure Exception Handling" abgeschaltet. Sie können die AxProtector-Option -ccn aus Sicherheitsgründen jedoch nur verwenden, wenn Sie eine entsprechende Lizenz in ihrer FSB (Firm Security Box) besitzen. Diese Lizenz bekommen Sie auf Anfrage vom Support.

     

    Bitte stellen Sie vorher sicher, dass alle Anti-Debugger-Mechanismen bei der Verschlüsselung mit AxProtector abgeschaltet sind. Benutzen Sie dazu die Option -cag0.

     

    Eine mit der Option -ccn verschlüsselte Anwendung sollten Sie aber aus Sicherheitsgründen ausschließlich für Tests in Ihrem Hause verwenden und nie nach außen geben. Um dies zu vermeiden, empfehlen wir die Option –ccn nicht zu verwenden.

  •  

    Wird der UserMessage-Dialog ohne Bild angezeigt, kann dies folgende Gründe haben:

    - Die in der verwendeten UserMessageXX.ini angegebene Bilddatei ist nicht vorhanden.

    - Das verwendete Bild hat die falschen Maße. Das Bild muss 160*385 Pixel groß sein.

    - Das verwendete Bild hat eine Bittiefe ungleich 24-Bit.

  •  

    Diese Meldung tritt bei der Verschlüsselung mit AxProtector auf, wenn nicht genügend Platz in der Anwendung ist, die AxEngine unterzubringen.

     

    Um dies zu beheben, müssen Sie Ihre Anwendung mit einem größeren FileAlignment erstellen.

    Zum Festlegen der Linker-Option 'FileAlignment' in der Visual Studio-Entwicklungsumgebung gehen Sie bitte wie folgt vor:

    1. Öffnen des Dialogfeldes "Eigenschaftenseiten" des Projekts.

    Ausführliche Informationen finden Sie unter Working with Project Properties (Arbeiten mit Projekteigenschaften).

    2. Wählen der "Befehlszeile" Eigenschaftenseite im "Linker" Verzeichnis.

    3. Eingeben des Optionsnamens "/filealign:" und der Größe in das "zusätzliche Optionen"Feld, z.B. /filealign:4096.

    4. Neuerstellung der Anwendung und wiederholen der Verschlüsselung.

  •  

    Gehen Sie bitte wie folgt vor:

    1. Exportieren des erstellen AxProtector-Projektes.

    Sie erhalten eine *,wbc Datei.

    2. Bearbeiten der Datei, d.h. Funktionen 

    oder DLLs, die ausgeschlossen werden sollen, 

    und hinzufügen, z,B.

    [WIBU-SYSTEMS Control File]

    Guid={00090000-0000-1100-8005-0000C06B5161}

    ...

    [Commandline]

    ...

    [Exclude Functions]

    Function1=getc

    Function2=putc

    Function3=fread

    Function4=fwrite

    ...

    [Exclude DLLs] 

    Dll1=KERNEL32.dll

    Dll2=USER32.dll

    Dll3=GDI32.dll

    ...

    3. Aufrufen von AxProtector mit angepassten

    AxProtector-Parametern der wbc-Datei, z.B. mit

    AxProtector.exe @test.wbc

  •  

    Um das Aufpoppen der MessageBoxen bei Fehlern in AxProtector (z.B. keine FSB gefunden) zu verhindern, gehen Sie bitte wie folgt vor:

     

    - Kopieren der beiden Dateien UserMsgUs.dll und UserMessage.ini aus dem Verzeichnis C:\Program Files (x86)\WIBU-SYSTEMS\AxProtector\Devkit\bin\UserMessage in das Verzeichnis, aus dem Sie AxProtector verwenden (Standardmäßig "C:\Program Files (x86)\WIBU-SYSTEMS\AxProtector\Devkit\bin)

    - Öffnen der UserMessage.ini-Konfigurationsdatei

    - Editieren der folgenden Einträge in Sektion [Service]

    --

    [Service]

    Gui=off

    ;[on/off]

     

    Logging=on

    ;[on/off]

    ; Destination for log files - current user requires write privileges to that directory

    ; Gui=off should be set to disable message boxes and redirect error messages to log files

    LogPath="C:\Users\Default\AppData\Local\Temp"

     

    ---

    Damit wird die GUI-Oberfläche und das Logging aktiviert. Keine graphischen Fehlermeldungen mehr ausgegeben.

  •  

    Wenn Sie eine eigene UserMessage.dll erstellen wollen, finden Sie im angehängten PDF-Dokument die benötigten Informationen dazu.

     

    Ein einfaches Beispiel, einer selbst erzeugten UserMessge.dll finden Sie für C++ unter "UserMessage | UserMessageSimpleGUI" und für C# unter "UserMessage | UserMessageSimple" seit CodeMeter Version 6.80 in unseren Beispielen im CodeMeter Software Development Kit (SDK).

    Wenn Sie die UserMessage ohne *.ini-Dateien verwenden wollen, empfehlen wir dieses Beispiel als Vorlage zu verwenden.

     

    Den Quelltext der Standard UserMessage.dll, die *.ini-Dateien verwendet, finden Sie ebenfalls in unseren Beispielen, für C++ unter "UserMessage | UserMessage" und für C# unter "UserMessage | UserMessage".

  •  

    Um IP Protection (ausschließlicher Schutz ohne Lizenzierung) testen zu können, benötigen Sie eine zusätzliche Lizenz in ihrer Firm Security Box (FSB): 100021:1600. Diese Lizenz bekommen Sie als Demo-Variante auf Anfrage aus dem Sales-Team (sales@wibu.com).

     

    Weitere Informationen zu IP Protection entnehmen Sie dem CodeMeter Entwickler Handbuch: "Automatischer Softwareschutz mit AxProtector (Werkzeug der CodeMeter Protection Suite-Sammlung) | Erweiterte AxProtector-Optionen | IP Protection - Know-how schützen".

     

    Die beschriebenen Optionen unter "Verwendung" werden in der *.wbc-Datei eingetragen, die aus der AxProtector-GUI exportiert wird.

     

    Aus dem Anhang erfahren Sie, wie die *.wbc-Datei dann aussehen könnte, wenn die komplette Anwendung über IP Protection verschlüsselt wird.

  •  

    Zum Anpassen des Lizenz-Fehlerhandlings, gehen Sie je nach AxProtector bitte wie folgt vor:

     

    AxProtector Windows & AxProtector .NET

    1. Gehen Sie in der AxProtectorGUI in den Reiter "Fehlermeldungen".

    2a. In AxProtector Windows wählen Sie die Option "User Message DLL" und behalten den Standard Dateinamen (-u:"UserMsg").

    2b. In AxProtector .NET wählen Sie die Option "Inline messages" (-ui).

    3. Nach der Verschlüsselung befinden sich im Zielverzeichnis der verschlüsselten Anwendung neben der Anwendung auch

    UserMessage *.ini-Dateien für verschiedene Sprachen.

    4. Passen Sie die UserMessage.ini-Datei an und ändern:

    Gui=off

    Logging=on

    LogPath="C:\Temp\Logs"

    5. Optional können Sie auch noch das Retry-Verhalten anpassen:

    RetryTimeOut=1

    NumberOfRetries=10

     

    AxProtector Java

    1. Wählen in AxProtectorGUI im Reiter "Fehlermeldungen" die Option "User Message Klasse".

    2. Eintragen von Klassenname 'com.wibu.xpm.MessageHandler' (-u:"com.wibu.xpm.MessageHandler").

  •  

    Durch die Verschlüsselung kann es sein, dass die dabei zufällig erzeugten Muster dazu führen, dass diese von einem Anti-Viren Programm als Virus erkannt werden.

     

    Kurzfristige Lösungsmaßnahmen

    Sie können die Einstellungen des Anti-Virus-Programms überprüfen. Eventuell sind sehr strikte Einstellungen oder spezielle Zusatzoptionen der Grund für die Erkennung.

    Darüber hinaus können Sie die Anwendung als Ausnahme im entsprechenden Anti-Virus-Programm eintragen.

     

    Mittelfristige Lösungsmaßnahmen

    Sie können Ihre Anwendung an den entsprechenden Hersteller schicken, sodass dieser mit den nächsten Aktualisierungen dafür sorgt, dass das Anti-Viren-Programm Ihre Anwendung nicht mehr als Virus erkennt. Ihr nächstes Programm bzw. neue Version könnte dann aber wieder betroffen sein.

     

    Andauernde Lösungsmaßnahmen

    Viren-Scanner beurteilen Anwendungen anhand bestimmter Verhaltensmuster oder Auffälligkeiten. Dabei wird in der Regel ein Punkte-System verwendet.

    Die Details, welche Verhaltensmuster erkannt werden, wie diese gewichtet und ab welchem Schwellwert die Anwendungen als Virus eingestuft werden, ist das Betriebsgeheimnis der Anti-Viren-Programm-Anbieter. Die in der Verschlüsselung verwendeten Mechanismen zum Schutz addieren vermutlich einige Punkte zum Punkte-System. Gespräche mit mehreren Anti-Viren-Programm-Anbietern haben dies bestätigt. Viren verwenden nämlich genau diese Mechanismen, um sich zu maskieren. Dies erklärt, warum schnell Schwellenwerte erreicht und vor allem geschützte Anwendungen oft als falsche Positiv-Befunde deklariert werden.

    Es gibt auch Möglichkeiten, in diesem Punkte-System Pluspunkte zu sammeln, z.B. wenn der Hersteller eine Anwendung mit Authenticode signiert, wirkt sich das positiv aus. Das Risiko der Viren-Einstufung wird damit zwar deutlich minimiert, aber eine 100%ige Garantie der korrekten Einstufung existiert nicht.

  •  

    Problem:

    Die Verwendung eines verschlüsselten "Fat-Binary", d.h. einer Anwendung, die 32-Bit und 64-Bit Komponenten enthältt, kann auf macOS Schwierigkeiten verursachen.

     

    Lösung:

    Die Anwendung sollte für die Verwendung/Verschlüsselung so aufgeteilt werden, dass "reine" 32-Bit-Anwendungen und reine 64-Bit-Anwendungen entstehen.

  •  

    Wibu-Systems empfiehlt, die Verschlüsselung mit AxProtector durchzuführen.

    Präziser: legen Sie mit Hilfe der AxProtector GUI-Benutzeroberfläche die Verschlüsselungsparameter fest, mit denen dann die eigentlichen AxProtectoren aufgerufen werden.

    Unsere AxProtectoren sind alle reine Kommandozeilen-Programme.

     

    Um beispielsweise die Verschlüsselung automatisiert durchführen zu können, können Sie die festgelegten Verschlüsselungsparameter über das Menü "Datei | Exportieren" der AxProtectorGUi in eine Datei <ExportierteDatei> auslagern.

    Anschließend können Sie mit den Parametern AxProtector.exe @<ExportierteDatei>.wbc die Verschlüsselung per Kommandozeile, Batch-Aufruf, Post-Build Event im Visual Studio, etc. durchführen.

    Die Vorgehensweise für die Verschlüsselung von .NET Assemblies oder Java 'Jar'Files ist identisch mit AxProtectorNet.exe @<ExportierteDatei>.xml bzw. java –jar AxProtector.jar @<ExportierteDatei>.xml.

     

    Änderungen an den Verschlüsselungsparametern sollten Sie weiter in Ihrem AxProtector-Projekt über die AxProtectorGUI vornehmen und am besten auch damit testen.

    Anschließend können Sie dann einfach erneut die Verschlüsselungsparameter exportieren.

     

    Verwenden Sie die gleichen Optionen für unterschiedliche Dateien können Sie auch die XML anpassen und die letzten beiden Parameter bzgl. der Quell/Ziel-Datei löschen und noch in die Kommandozeile mit übernehmen:

    AxProtector.exe -o:"protected\App.exe" "toprotect/App.exe" @<ExportierteDatei>.xml

  •  

    Um WupiData zu verwenden, muss ein HiddenData-Feld ohne Abhängigkeiten in den CmContainer programmiert werden.

    Eine Product Item Option hat standardmäßig Abhängigkeiten, deren Werte bekannt sein müssen, damit die Programmiersequenz zum Aktualisieren der Product Item Option berechnet werden kann. Die Standard Abhängigkeiten sind dsu (data, serial, update counter).

    Daher kann normalerweise mit einer Programmiersequenz nur im Ziel-Container exakt diese Product Item Option im aktuellen Zustand verändert werden. Wenn das Firm Item im Ziel-Container verändert wird und der Aktualisierungszähler (Update Counter) hochzählt, funktioniert diese Programmiersequenz nicht mehr.

    Durch das Entfernen dieser Abhängigkeiten ist es AxProtector möglich, eine allgemein-gültige Programmierseuqenz für das Hidden Data-Feld-Ziel vorzuberechnen. Diese kann dann zur Laufzeit auf beliebige CmContainer mit beliebigen Daten eingespielt werden. Dadurch wird es möglich, Daten zur Laufzeit zu schreiben.

     

    Das Kommandozeilenerkzeug CmBoxPgm besitzt zum Programmieren von HiddenData für die Verwendung von WupiData eine spezielle Option (-pwupidata), die verwendet werden kann:

     

    Syntax:

    /pwupidata:[e<ext. type>][,b<block size>][,a<acc. code>]:<file>

    Allocates WUPI Data storage, filled with the contents of file <file>.

    /pwupidata:s<size>[,e<ext. type>][,b<block size>][,a<acc. code>][,f<fill byte>]

    Allocates <size> bytes of WUPI Data storage, initialized with the value <fill byte>.

     

    Alternativ kann auch mit der Programmier-API (HIP) programmiert werden. Hierbei muss dann explizit HiddenData ohne Abhängigkeiten programmiert werden. Mit CodeMeter License Central oder CodeMeter License Editor ist die Programmierung ohne Abhängikeiten derzeit nicht möglich.

     

    Bei der Verschlüsselung ihrer Anwendung müssen Sie dann beim Verschlüsseln eine Lizenzliste mit dem gleichen Product Code anlegen und dort WupiData konfigurieren. Wichtig ist dabei, dass beim Programmieren und Verschlüsseln der gleiche HiddenDataAccessCode (HDAC) verwendet wird. Wenn Sie diesen sowohl beim Programmieren und Verschlüsseln weglassen, wird dieser automatisch im Hintergrund abgelegt und sollte ebenfalls identisch, allerdings unbekannt sein. Wenn Sie explizit einen HDAC setzen, können Sie diesen nachher verwenden, um HiddenData auch über das CodeMeter Kern-API auszulesen. Wenn Sie nur geplant haben, das WUPI API zu verwenden, ist dies aber nicht zwingend nötig.

     

    Im Code können Sie dann die WUPI API-Funktionen WupiReadData und WupiWriteData verwenden, um Daten zu lesen oder schreiben.

     

    Hinweis: Das WUPI API funktioniert erst nach der Verschlüsselung des Codes. Davor wird durch die WupiEngine nur eine Dummy-Implementierung verwendet, sodass es nicht zu Fehlern kommt.

     

    Anbei finden Sie noch ein kleines Beispielprojekt für die Verwendung von WupiData.