Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 22775|Antwort: 0

[Leichte Sprache] VMP-Schutz in einfacher Sprache, verschiedene Schutzshells, SDK-Code in Easy-Sprache

[Link kopieren]
Veröffentlicht am 29.11.2014 15:59:19 | | |
ZProtect
Code_Confusion ist ein code-out-of-order-kryptographisches Tag, das es ermöglicht, einen Teil des Codes auszuwählen, der nicht in der richtigen Reihenfolge ist
Code einfügen ({ 235, 8, 83, 84, 95, 83, 84, 65, 82, 84 }) ' Code_Confusion Markierung zum Start
Code einfügen ({ 235, 8, 83, 84, 95, 83, 84, 69, 78, 68 }) ' Code_Confusion Ende der Markierung
Code_Elimination ist ein Code-Purge-Marker, der es ermöglicht, einen Teil des Codes auszuwählen, der nach dem Ausführen aus dem Speicher entfernt werden soll; Der Zweck dieses Markups ist es, zu verhindern, dass Cracker den vollständigen Programmcode aus dem Speicher ablegen.
Code einfügen ({ 235, 8, 79, 67, 95, 83, 84, 65, 82, 84 }) ' Code_Elimination Tag beginnt
Code einfügen ({ 235, 8, 79, 67, 95, 79, 67, 69, 78, 68 }) ' Code_Elimination Markierung am Ende
Decode_onExec ist ein dynamisches Dekodierungs-Markup, das es ermöglicht, einen Teil des Codes auszuwählen, der nur beim Ausführen entschlüsselt wird; Dieser Teil des Codes wird nur dann entschlüsselt, wenn er ausgeführt werden muss, und vor und nach der Ausführung verschlüsselt
Code einfügen ({ 235, 8, 68, 89, 95, 83, 84, 65, 82, 84 }) // Decode_onExec Tag startet
Code einfügen ({ 235, 8, 68, 89, 95, 68, 89, 69, 78, 68 }) // Decode_onExec das Ende markieren
Decode_onReg ist ein Registrierungsdekodierungstag, der es ermöglicht, einen Teil des Codes auszuwählen, der mit einem gültigen Schlüssel entschlüsselt wurde; Ist der Registrierungsschlüssel falsch, wird dieser Teil des Codes immer verschlüsselt. Laienhaft gesagt wird dieser Teil des Codes nur in der registrierten Version ausgeführt
Beliebig viele Decode_onReg Tags können im Quellcode verwendet werden, aber diese Codeschnipsel werden gleichzeitig mit der Ausführung entschlüsselt. Das Registrierungsdekodierungs-Tag wird hauptsächlich verwendet, um eingeschränkte Funktionen in der nicht registrierten Version zu aktivieren, damit sie als Vollversion registriert wird.
Code einfügen ({ 235, 8, 82, 68, 95, 83, 84, 65, 82, 84 }) // Decode_onReg Tag beginnt
Code einfügen ({ 235, 8, 82, 68, 95, 82, 68, 69, 78, 68 }) // Decode_onReg das Ende markieren
Zprotect_VM ist ein Verschlüsselungstag der virtuellen Maschine, mit dem man einen Codeabschnitt auswählen kann, der in die virtuelle Maschine eingegeben wird; Das Befehlssystem der virtuellen Maschine unterscheidet sich vollständig von den bestehenden x86-Befehlen, was die Codewiederherstellung und -analyse effektiv verhindern kann
Code einfügen ({ 235, 8, 86, 77, 95, 83, 84, 65, 82, 84 }) // Zprotect_VM Markierung zum Start
Code einfügen ({ 235, 8, 86, 77, 95, 86, 77, 69, 78, 68 }) // Zprotect_VM Ende markieren
----------- für die Version ZProtect V1.4.9.0---------
VMProtect
Fügen Sie den Code ein ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) ' VMP-Schutzstartflag
'Schlüsselcode
Fügen Sie den Code ein ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) ' VMP-Schutz-Endflage
Das SDK der Enigma-Verschlüsselungssprache
Code einfügen ({ 235, 10, 69, 67, 82, 79, 78, 69, 88, 69, 69, 69, 69, 67, 66 })' Markierung am Anfang
'Schlüsselcode
Code einfügen ({ 235, 10, 69, 67, 82, 79, 78, 69, 88, 69, 69, 67, 69 })' Zeichen am Ende der Markierung

NoobyProtect SDK für die Verschlüsselungssprache
Code einfügen ({ 235, 6, 78, 80, 66, 69, 71, 78 })'-Markierung am Anfang
'Schlüsselcode
Code einfügen ({ 235, 6, 78, 80, 69, 78, 68, 80 })-Markierung am Ende

Pangolin ruft die DEMO der funktionalen Verschlüsselungssprache SDK auf
Setzen Sie die Markierung ({ 235, 3, 214, 215, 1 })' an den Anfang
'Schlüsselcode
Platzieren Sie den Code ({ 235, 3, 214, 215, 0 })' Zeichen am Ende der Markierung
ASP-Verschlüsselungssprache SDK
Code einfügen ({ 235, 4, 235, 5, 25, 1, 233, 37, 0 })'-Markierung am Anfang
'Schlüsselcode
Fügen Sie Code ({ 235, 4, 235, 5, 41, 1, 233, 133, 0, })' am Ende der Markierung ein

Shielden 2.0.1.0
Code einfügen ({ 235, 7, 83, 69, 66, 69, 71, 78, 0 }) ' SE_PROTECT_START
' Schlüsselcode
Code einfügen ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END

Code einfügen ({ 235, 7, 83, 69, 66, 69, 71, 78, 77 }) ' SE_PROTECT_START_MUTATION
Schlüsselcode
Code einfügen ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END
Code einfügen ({ 235, 7, 83, 69, 66, 69, 71, 78, 85 }) ' SE_PROTECT_START_ULTRA
Schlüsselcode
Code einfügen ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END
Code einfügen ({ 235, 7, 83, 69, 66, 69, 71, 78, 86 }) '
' Schlüsselcode
Code einfügen ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END

Einfache SDK-Umwandlungsmethode ↓
Mit Unterstützung der statischen E5.0-Kompilierung für Standard-PE-Formate ist es Realität geworden, Verschlüsselungs-Shell-SDKs in E-Programmen einzuführen, um die Qualität des Softwareschutzes zu verbessern.
Verschlüsselungs-Shell-SDKs lassen sich grob in zwei Kategorien unterteilen: eine ist funktionales SDK und die andere das schützende SDK.
1. Funktionales SDK.
Funktionales SDK wird verwendet, um das zu handhabenSeriennummerValidierung, Überprüfung der Autorisierungszeit und andere funktionale Operationen. Dieser SDK-Typ hat verschiedene Funktionen, die direkt in der Shell angewendet werden, wie zum Beispiel WL; Es gibt auch externe DLLs, die eingeführt werden müssen, wie zum Beispiel Pangolinen.
Für DLLs ohne Ausgabetabellen müssen wir mit dem externen Import-SDK die DLL laden, die Funktion im SDK adressieren und den Befehl Subprogram () in E aufrufen, um die Operation der Parameterübergabe und den Rückwertwert der SDK-Funktion leicht abzuschließen.
Für DLLs mit Ausgabetabellen ist es in Ordnung, sie mit dem DLL-Befehl E aufzurufen.
Für diejenigen, die bereits wissen, wie man DLLs aufruft, kann man sagen, dass der Betrieb funktionaler SDKs einfach zu steuern ist – schauen Sie sich einfach das spezifische API-Handbuch der Shell an.
2. Verschlüsseltes SDK
Nachdem die Verschlüsselungsshell ein bestimmtes SDK-Tag in der Software entdeckt hat, verwendet sie eine gezielte Methode, um diesen Code zu verarbeiten und so die Sicherheit des jeweiligen Codesegments zu verbessern. Diese Art von Markup ist natürlich ein paardefinierter Assemblercode!
Im einfachen Modus können wir den Assemblercode mit dem Befehl "Code einfügen" () einfach aufrufen. Speziell für die Verschlüsselungsshell mit diesem Teil folgen wir folgender Methode.
Öffne das SDK, das mit der Verschlüsselungsshell geliefert wird, und finde eine SDK-Headerdatei in der Sprache, die du lesen kannst. Zum Beispiel die Header-Datei des LCC unten.
Im Folgenden ist der Programmcode:
1 #elif definiert(__LCC__)
2 /* Bereitgestellt von Rubem Pechansky, 26. Februar 2003 */
3 #define SECUREBEGIN _asm(".byte 0xEB,0x03,0xD6,0xD6,0x00");
4 #define SECUREEND _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
5 #define SECUREBEGIN_A _asm(".byte 0xEB,0x03,0xD6,0xD6,0x01");
6 #define SECUREEND_A _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
7 #define SECUREBEGIN_B _asm(".byte 0xEB,0x03,0xD6,0xD6,0x02");
8 #define SECUREEND_B _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
9 #define SECUREBEGIN_C _asm(".byte 0xEB,0x03,0xD6,0xD6,0x03");
10 #define SECUREEND_C _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
11 #define SECUREBEGIN_D _asm(".byte 0xEB,0x03,0xD6,0xD6,0x04");
12 #define SECUREEND_D _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
13 #define SECUREBEGIN_E _asm(".byte 0xEB,0x03,0xD6,0xD6,0x05");
14 #define SECUREEND_E _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
15 #define SECUREBEGIN_F _asm(".byte 0xEB,0x03,0xD6,0xD6,0x06");
16 #define SECUREEND_F _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
17 #define SECUREBEGIN_G _asm(".byte 0xEB,0x03,0xD6,0xD6,0x07");
18 #define SECUREEND_G _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
19 #define SECUREBEGIN_H _asm(".byte 0xEB,0x03,0xD6,0xD6,0x08");
20 #define SECUREEND_H _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
21 #define SECUREBEGIN_I _asm(".byte 0xEB,0x03,0xD6,0xD6,0x09");
22 #define SECUREEND_I _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
23 #define SECUREBEGIN_J _asm(".byte 0xEB,0x03,0xD6,0xD6,0x0A");
24 #define SECUREEND_J _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
25 #define SECUREBEGIN_K _asm(".byte 0xEB,0x03,0xD6,0xD6,0x0B");
26 #define SECUREEND_K _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
27 #define NANOBEGIN _asm(".byte 0xEB,0x03,0xD6,0xD7,0x01");
28 #define NANOEND _asm(".byte 0xEB,0x03,0xD6,0xD7,0x00");
Um es in den letzten beiden Sätzen zu erklären: NANOBEGIN und NANOEND sind CC-Code-Snippet-Markups in der C-Sprache, und die Code-Snippets, die von diesen beiden Markups umwickelt werden, werden durch die Verschlüsselungshülle CC-geschützt. NANOBEGIN wird durch den Assemblercode als 0xEB, 0x03, 0xD6, 0xD7, 0x01 dargestellt, sein Satz ist die hexadezimale Darstellung von C und die Assembly-Aussage wird in dezimalen Dezimalen in E dargestellt. Das heißt, wir müssen diesen Code übersetzen.
0xEB = 235
0x03 = 3
0xD6 = 214
0xD7 = 215
0x01 = 1
Dann wird NANOBEGIN in E als Einfügungscode angegeben ({235, 3, 214, 215, 1}).




Vorhergehend:WP8.1 GDR2/Win10 (WP10) wird personalisierter sein
Nächster:Erste Version, Houpu Information Technology Engineer Training System – Mock Examination System (vollkommen kompatibel mit Win7)
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com