Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 22775|Răspunde: 0

[Limbaj ușor] Protecție VMP în limbaj Easy și cod SDK pentru diverse shell protectoare în limbajul Easy

[Copiază linkul]
Postat pe 29.11.2014 15:59:19 | | |
ZProtect
Code_Confusion este o etichetă criptografică cod în afara ordinii care îți permite să selectezi o porțiune din cod care este în afara ordinii
Introduceți codul ({ 235, 8, 83, 84, 95, 83, 84, 65, 82, 84 }) ' Code_Confusion marcaj pentru a începe
Introduceți codul ({ 235, 8, 83, 84, 95, 83, 84, 69, 78, 68 }) ' Code_Confusion sfârșitul semnului
Code_Elimination este un marker de eliminare a codului care îți permite să selectezi o porțiune de cod ce trebuie eliminată din memorie după rulare; Scopul utilizării acestui marcaj este de a preveni ca crackerii să șteargă codul întreg al programului din memorie.
Introduceți codul ({ 235, 8, 79, 67, 95, 83, 84, 65, 82, 84 }) ' Code_Elimination începe eticheta
Introduceți codul ({ 235, 8, 79, 67, 95, 79, 67, 69, 78, 68 }) ' Code_Elimination marcaj la final
Decode_onExec este un marcaj dinamic de decodare care îți permite să selectezi o porțiune de cod ce este decriptată doar atunci când este executată; Această parte a codului este decodată doar când trebuie executată și este criptată înainte și după execuție
Introduceți codul ({ 235, 8, 68, 89, 95, 83, 84, 65, 82, 84 }) // Decode_onExec începe eticheta
Introduceți codul ({ 235, 8, 68, 89, 95, 68, 89, 69, 78, 68 }) // Decode_onExec marcați sfârșitul
Decode_onReg este o etichetă de decodare a înregistrărilor care îți permite să selectezi o porțiune din cod decriptată cu o cheie validă; Dacă cheia de înregistrare este incorectă, atunci această parte a codului va fi întotdeauna criptată. În termeni simpli, această parte a codului este executată doar în versiunea înregistrată
Orice număr de etichete Decode_onReg pot fi folosite în codul sursă, dar aceste fragmente de cod sunt decriptate în același timp cu execuția. Eticheta de decodare a înregistrărilor este folosită în principal pentru a activa funcționalitățile restricționate în versiunea neînregistrată pentru a o înregistra ca versiune completă.
Introduc cod ({ 235, 8, 82, 68, 95, 83, 84, 65, 82, 84 }) // începe eticheta Decode_onReg
Introduceți codul ({ 235, 8, 82, 68, 95, 82, 68, 69, 78, 68 }) // Decode_onReg marcați sfârșitul
Zprotect_VM este o etichetă de criptare a mașinii virtuale care îți permite să selectezi o porțiune de cod pe care să o introduci în mașina virtuală pentru a rula; Sistemul de instrucțiuni al mașinii virtuale este complet diferit de instrucțiunile x86 existente, ceea ce poate preveni eficient restaurarea și analiza codului
Introduceți codul ({ 235, 8, 86, 77, 95, 83, 84, 65, 82, 84 }) // Zprotect_VM marcaj pentru a începe
Introduceți codul ({ 235, 8, 86, 77, 95, 86, 77, 69, 78, 68 }) // Zprotect_VM marcați sfârșitul
----------- pentru versiunea ZProtect V1.4.9.0---------
VMProtect
Introduceți codul ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) ' Steagul de start al protecției VMP
"Cod cheie
Introduceți codul ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) ' steagul final de protecție VMP
SDK-ul limbajului de criptare Enigma
Introduceți codul ({ 235, 10, 69, 67, 82, 79, 78, 69, 88, 69, 69, 69, 67, 66 }) la început
"Cod cheie
Introduceți codul ({ 235, 10, 69, 67, 82, 79, 78, 69, 88, 69, 69, 67, 69 }) la finalul marcului

SDK-ul NoobyProtect pentru limbajul de criptare
Introduceți codul ({ 235, 6, 78, 80, 66, 69, 71, 78 }) la început
"Cod cheie
Introduceți codul ({235, 6, 78, 80, 69, 78, 68, 80 }) la final

Pangolin apelează DEMO-ul limbajului de criptare funcțională SDK
Plasează marca codului ({235, 3, 214, 215, 1 })' la început
"Cod cheie
Marca codului de plasare ({235, 3, 214, 215, 0 })' la sfârșitul marcajei
SDK pentru limbajul de criptare ASP
Introduceți codul ({ 235, 4, 235, 5, 25, 1, 233, 37, 0 }) la început
"Cod cheie
Introduceți codul ({ 235, 4, 235, 5, 41, 1, 233, 133, 0, })' la finalul marcajului

Shielden 2.0.1.0
Introduceți codul ({ 235, 7, 83, 69, 66, 69, 71, 78, 0 }) ' SE_PROTECT_START
' Cod cheie
Introduceți codul ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END

Introduceți codul ({ 235, 7, 83, 69, 66, 69, 71, 78, 77 }) ' SE_PROTECT_START_MUTATION
Cod cheie
Introduceți codul ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END
Introduceți codul ({ 235, 7, 83, 69, 66, 69, 71, 78, 85 }) ' SE_PROTECT_START_ULTRA
Cod cheie
Introduceți codul ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END
Introduceți codul ({ 235, 7, 83, 69, 66, 69, 71, 78, 86 }) '
' Cod cheie
Introduceți codul ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END

Metoda ușoară de conversie a SDK-ului limbajului ↓
Cu suportul compilației statice E5.0 pentru formatele standard PE, a devenit o realitate introducerea SDK-urilor shell de criptare în programele E pentru a îmbunătăți calitatea protecției software.
SDK-urile shell de criptare pot fi împărțite aproximativ în două categorii, una este SDK-ul funcțional și cealaltă este SDK-ul protector.
1. SDK funcțional.
SDK-ul funcțional este folosit pentru a o gestionaNumăr de serieValidare, verificarea timpului de autorizare și alte operațiuni funcționale. Acest tip de SDK are diverse funcții aplicate direct în shell, cum ar fi WL; Există și DLL-uri externe care trebuie introduse, cum ar fi pangolinele.
Pentru DLL-urile fără tabele de ieșire, folosind SDK-ul extern de import, trebuie să încărcăm DLL-ul, să adresăm funcția din SDK și să apelăm comanda subprogramului () în E pentru a finaliza ușor operația de transmitere a parametrilor pentru a obține valoarea de returnare a funcției SDK.
Pentru DLL-urile cu tabele de ieșire, este în regulă să le apelezi cu comanda DLL E.
Pentru cei care știu deja cum să apeleze DLL-uri, funcționarea SDK-urilor funcționale poate fi considerată ușor de controlat, doar uită-te la manualul API specific al shell-ului.
2. SDK criptat
După ce shell-ul de criptare descoperă o etichetă SDK specifică în software, va folosi o metodă țintită pentru a procesa această bucată de cod și a îmbunătăți securitatea segmentului de cod specific. Acest tip de marcaj este, în mod natural, un cod de asamblare definit de perechi!
În easy, putem chema ușor codul de asamblare folosind comanda insert code (). Specific pentru shell-ul de criptare care folosește această piesă, urmăm următoarea metodă.
Deschide SDK-ul care vine cu shell-ul de criptare și găsește un fișier header SDK de limbaj pe care îl poți citi. De exemplu, fișierul de antet al LCC-ului de mai jos.
Următorul este codul programului:
1 #elif definit(__LCC__)
2 /* Furnizat de Rubem Pechansky, 26Feb2003 */
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");
Pentru a explica în ultimele două propoziții, NANOBEGIN și NANOEND sunt marcări de fragmente de cod CC în limbajul C, iar fragmentele de cod înfășurate de aceste două marcaje vor fi protejate CC de shell-ul criptării. NANOBEGIN este reprezentat prin cod de asamblare ca 0xEB, 0x03, 0xD6, 0xD7, 0x01, propoziția sa este reprezentarea hexazecimală a lui C, iar afirmația asamblării este reprezentată în zecimală în E. Adică, trebuie să traducem acest cod.
0xEB = 235
0x03 = 3
0xD6 = 214
0xD7 = 215
0x01 = 1
Atunci NANOBEGIN este exprimat în E ca un cod de inserție ({235, 3, 214, 215, 1}).




Precedent:WP8.1 GDR2/Win10 (WP10) vor fi mai personalizate
Următor:Prima versiune, Houpu Information Technology Engineer Training System - Sistem de Examen Simulat (Perfect compatibil cu Win7)
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com