Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 22775|Répondre: 0

[Langage facile] Langage Easy VMP protection, divers codages de protection SDK en langage Easy

[Copié le lien]
Publié sur 29/11/2014 15:59:19 | | |
ZProtect
Code_Confusion’est une balise cryptographique de code hors ordre qui permet de sélectionner une partie du code qui est désorganisée
Insérer le code ({ 235, 8, 83, 84, 95, 83, 84, 65, 82, 84 }) ' Code_Confusion marque pour commencer
Insérer le code ({ 235, 8, 83, 84, 95, 83, 84, 69, 78, 68 }) ' Code_Confusion fin de la marque
Code_Elimination est un marqueur de purge de code qui permet de sélectionner une portion de code à retirer de la mémoire après exécution ; Le but de l’utilisation de ce balisage est d’empêcher les crackers de vider l’intégralité du code du programme depuis la mémoire.
Insérer le code ({ 235, 8, 79, 67, 95, 83, 84, 65, 82, 84 }) ' Code_Elimination tag commence
Insérer le code ({ 235, 8, 79, 67, 95, 79, 67, 69, 78, 68 }) ' Code_Elimination marque à la fin
Decode_onExec’est un balisage de décodage dynamique qui permet de sélectionner une portion de code qui n’est déchiffrée qu’à l’exécution ; Cette partie du code n’est décodée que lorsqu’elle doit être exécutée, et est chiffrée avant et après l’exécution
Insérer le code ({ 235, 8, 68, 89, 95, 83, 84, 65, 82, 84 }) // Decode_onExec début de l’etiquetage
Insérer le code ({ 235, 8, 68, 89, 95, 68, 89, 69, 78, 68 }) // Decode_onExec marquer la fin
Decode_onReg’est une balise de décodage d’enregistrement qui permet de sélectionner une partie du code déchiffrée avec une clé valide ; Si la clé d’enregistrement est incorrecte, alors cette partie du code sera toujours chiffrée. En termes simples, cette partie du code n’est exécutée que dans la version enregistrée
Un nombre quelconque de balises Decode_onReg peut être utilisé dans le code source, mais ces extraits de code sont déchiffrés en même temps qu’ils sont exécutés. L’étiquette de décodage d’enregistrement est principalement utilisée pour activer des fonctionnalités restreintes dans la version non enregistrée afin de l’enregistrer en version complète.
Insérer le code ({ 235, 8, 82, 68, 95, 83, 84, 65, 82, 84 }) // Decode_onReg balise commence
Insérer le code ({ 235, 8, 82, 68, 95, 82, 68, 69, 78, 68 }) // Decode_onReg marquer la fin
Zprotect_VM’est une balise de chiffrement de machine virtuelle qui vous permet de sélectionner une portion de code à insérer dans la machine virtuelle à exécuter ; Le système d’instructions de la machine virtuelle est complètement différent des instructions x86 existantes, ce qui peut efficacement empêcher la restauration et l’analyse du code
Insérer le code ({ 235, 8, 86, 77, 95, 83, 84, 65, 82, 84 }) // Zprotect_VM marque pour commencer
Insérer le code ({ 235, 8, 86, 77, 95, 86, 77, 69, 78, 68 }) // Zprotect_VM fin de la marque
----------- pour ZProtect version V1.4.9.0---------
VMProtect
Insérer le code ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) ' Drapeau de démarrage de la protection VMP
« Code clé
Insérer le code ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) ' Drapeau de fin de protection VMP
Le SDK du langage de chiffrement Enigma
Insérer le code ({ 235, 10, 69, 67, 82, 79, 78, 69, 88, 69, 69, 69, 67, 66 }) au début
« Code clé
Insérer le code ({ 235, 10, 69, 67, 82, 79, 78, 69, 88, 89, 67, 69 }) » à la fin du repère

SDK NoobyProtect pour le langage de chiffrement
Insérer le code ({235, 6, 78, 80, 66, 69, 71, 78 }) au début
« Code clé
Insérer le code ({ 235, 6, 78, 80, 69, 78, 68, 80 }) » à la fin

Pangolin appelle le DEMO du langage de chiffrement fonctionnel SDK
Placez la marque du code ({235, 3, 214, 215, 1 })' au début
« Code clé
Marque le code de placement ({235, 3, 214, 215, 0 }) à la fin de la marque
SDK du langage de chiffrement ASP
Insérer le code ({ 235, 4, 235, 5, 25, 1, 233, 37, 0 }) au début
« Code clé
Insérer le code ({ 235, 4, 235, 5, 41, 1, 233, 133, 0, })' à la fin de la marque

Shielden 2.0.1.0
Insérer le code ({ 235, 7, 83, 69, 66, 69, 71, 78, 0 }) ' SE_PROTECT_START
' Code de touche
Insérer le code ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END

Insérer le code ({ 235, 7, 83, 69, 66, 69, 71, 78, 77 }) ' SE_PROTECT_START_MUTATION
Code de touche
Insérer le code ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END
Insérer le code ({ 235, 7, 83, 69, 66, 69, 71, 78, 85 }) ' SE_PROTECT_START_ULTRA
Code de touche
Insérer le code ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END
Insérer le code ({ 235, 7, 83, 69, 66, 69, 71, 78, 86 }) '
' Code de touche
Insérer le code ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END

Méthode de conversion du SDK de langage facile ↓
Avec le support de la compilation statique E5.0 pour les formats PE standards, il est devenu une réalité d’introduire des SDK de shell de chiffrement dans les programmes E afin d’améliorer la qualité de la protection logicielle.
Les SDK de shell de chiffrement peuvent être grossièrement divisés en deux catégories : l’une est un SDK fonctionnel et l’autre un SDK protecteur.
1. SDK fonctionnel.
Un SDK fonctionnel est utilisé pour la gérerNuméro de sérieValidation, vérification du temps d’autorisation et autres opérations fonctionnelles. Ce type de SDK a diverses fonctions directement appliquées dans le shell, telles que WL ; Il y a aussi des DLL externes qui doivent être introduites, comme les pangolins.
Pour les DLL sans tables de sortie, en utilisant le SDK externe d’importation, il faut charger la DLL, adresser la fonction dans le SDK, et appeler la commande sous-programme () dans E pour compléter facilement l’opération de passage des paramètres afin d’obtenir la valeur de retour de la fonction SDK.
Pour les DLL avec tables de sortie, il est acceptable de les appeler avec la commande DLL E.
Pour ceux qui savent déjà appeler des DLL, le fonctionnement des SDK fonctionnels peut être considéré comme facile à contrôler, il suffit de jeter un œil au manuel spécifique de l’API du shell.
2. SDK chiffré
Après que le shell de chiffrement a découvert une balise SDK spécifique dans le logiciel, il utilisera une méthode ciblée pour traiter ce morceau de code afin d’améliorer la sécurité du segment de code spécifique. Ce type de balisage est naturellement un code assembleur défini par paires !
En mode facile, nous pouvons facilement appeler le code assembleur en utilisant la commande insert code (). Spécifiquement pour le shell de chiffrement utilisant cette pièce, nous suivons la méthode suivante.
Ouvre le SDK fourni avec le shell de chiffrement et trouve un fichier d’en-tête du SDK de langage que tu peux lire. Par exemple, le fichier d’en-tête du LCC ci-dessous.
Voici le code du programme :
1 #elif défini(__LCC__)
2 /* Fourni par Rubem Pechansky, 26 février 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 (« .octet 0xEB,0x03,0xD6,0xD6,0xFF ») ;
7 #define SECUREBEGIN_B _asm(« .octet 0xEB,0x03,0xD6,0xD6,0x02 ») ;
8 #define SECUREEND_B _asm(« .octet 0xEB,0x03,0xD6,0xD6,0xFF ») ;
9 #define SECUREBEGIN_C _asm(« .octet 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 (« .octet 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 (« .octet 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 ») ;
Pour expliquer dans les deux dernières phrases, NANOBEGIN et NANOEND sont des balisages de fragments de code CC en langage C, et les extraits de code enroulés par ces deux balisages seront protégés en CC par le shell de chiffrement. NANOBEGIN est représenté par le code assembleur par 0xEB, 0x03, 0xD6, 0xD7, 0x01, sa phrase est la représentation hexadécimale de C, et l’instruction assemblage est représentée en décimale décimale en E. C’est-à-dire qu’il faut traduire ce code.
0xEB = 235
0x03 = 3
0xD6 = 214
0xD7 = 215
0x01 = 1
Ensuite, NANOBEGIN est exprimé en E sous forme de code d’insertion ({235, 3, 214, 215, 1}).




Précédent:WP8.1 GDR2/Win10 (WP10) sera plus personnalisé
Prochain:Première version, Système de formation des ingénieurs en technologies de l’information Houpu - Système d’examen blanc (parfaitement compatible avec Win7)
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com