Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 22775|Atsakyti: 0

[Lengva kalba] Lengva kalba VMP apsauga, įvairūs apsauginiai apvalkalai SDK kodas lengva kalba

[Kopijuoti nuorodą]
Paskelbta 2014-11-29 15:59:19 | | |
ZProtect
Code_Confusion yra netinkama kodo kriptografinė žyma, leidžianti pasirinkti netinkamą kodo dalį
Įterpti kodą ({ 235, 8, 83, 84, 95, 83, 84, 65, 82, 84 }) ' Code_Confusion pažymėti, kad pradėtumėte
Įrašyti kodą ({ 235, 8, 83, 84, 95, 83, 84, 69, 78, 68 }) " Code_Confusion ženklo gale
Code_Elimination yra kodo išvalymo žymeklis, leidžiantis pasirinkti kodo dalį, kurią paleidus reikia pašalinti iš atminties; Šio žymėjimo tikslas yra užkirsti kelią krekeriams išmesti visą programos kodą iš atminties.
Įterpti kodą ({ 235, 8, 79, 67, 95, 83, 84, 65, 82, 84 }) ' Code_Elimination žyma prasideda
Įrašyti kodą ({ 235, 8, 79, 67, 95, 79, 67, 69, 78, 68 }) " Code_Elimination ženklas pabaigoje
Decode_onExec yra dinaminis dekodavimo žymėjimas, leidžiantis pasirinkti kodo dalį, kuri iššifruojama tik ją vykdant; Ši kodo dalis iššifruojama tik tada, kai ją reikia vykdyti, ir užšifruojama prieš ir po vykdymo
Įterpti kodą ({ 235, 8, 68, 89, 95, 83, 84, 65, 82, 84 }) // Decode_onExec žyma prasideda
Įterpti kodą ({ 235, 8, 68, 89, 95, 68, 89, 69, 78, 68 }) // Decode_onExec pažymėti pabaigą
Decode_onReg yra registracijos dekodavimo žyma, leidžianti pasirinkti kodo dalį, kuri iššifruojama galiojančiu raktu; Jei registracijos raktas neteisingas, ši kodo dalis visada bus užšifruota. Paprastais žodžiais tariant, ši kodo dalis vykdoma tik registruotoje versijoje
Šaltinio kode galima naudoti bet kokį skaičių Decode_onReg žymų, tačiau šie kodo fragmentai iššifruojami tuo pačiu metu, kai jie vykdomi. Registracijos dekodavimo žyma daugiausia naudojama neregistruotos versijos apribotoms funkcijoms suaktyvinti, kad ji būtų užregistruota kaip pilna versija.
Įterpti kodą ({ 235, 8, 82, 68, 95, 83, 84, 65, 82, 84 }) // Decode_onReg žyma prasideda
Įterpkite kodą ({ 235, 8, 82, 68, 95, 82, 68, 69, 78, 68 }) // Decode_onReg pažymėkite pabaigą
Zprotect_VM yra virtualios mašinos šifravimo žyma, leidžianti pasirinkti kodo dalį, kurią norite įdėti į virtualią mašiną; Virtualios mašinos instrukcijų sistema visiškai skiriasi nuo esamų x86 instrukcijų, kurios gali veiksmingai užkirsti kelią kodo atkūrimui ir analizei
Įterpti kodą ({ 235, 8, 86, 77, 95, 83, 84, 65, 82, 84 }) // Zprotect_VM ženklą, kad pradėtumėte
Įterpti kodą ({ 235, 8, 86, 77, 95, 86, 77, 69, 78, 68 }) // Zprotect_VM žymės pabaiga
----------- ZProtect V1.4.9.0 versijai---------
VMProtect
Įrašykite kodą ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) " VMP apsaugos pradžios vėliavėlė
"Rakto kodas
Įrašyti kodą ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) ' VMP apsaugos pabaigos vėliavėlė
"Enigma" šifravimo kalbos SDK
Pradžioje įrašyti kodą ({ 235, 10, 69, 67, 82, 79, 78, 69, 88, 69, 69, 67, 66 })"
"Rakto kodas
Ženklo pabaigoje įrašomas kodas ({ 235, 10, 69, 67, 82, 79, 78, 69, 88, 69, 67, 69 })"

NoobyProtect SDK šifravimo kalbai
Pradžioje įrašyti kodą ({ 235, 6, 78, 80, 66, 69, 71, 78 })"
"Rakto kodas
Pabaigoje įrašyti kodą ({ 235, 6, 78, 80, 69, 78, 68, 80 })"

Pangolinas vadina funkcinės šifravimo kalbos SDK DEMO
Pradžioje uždėkite kodą ({ 235, 3, 214, 215, 1 })'
"Rakto kodas
Vietos kodas ({ 235, 3, 214, 215, 0 })" ženklo pabaigoje
ASP šifravimo kalbos SDK
Pradžioje įrašyti kodą ({ 235, 4, 235, 5, 25, 1, 233, 37, 0 })"
"Rakto kodas
Ženklo pabaigoje įrašyti kodą ({ 235, 4, 235, 5, 41, 1, 233, 133, 0, })"

Shieldenas 2.0.1.0
Įrašyti kodą ({ 235, 7, 83, 69, 66, 69, 71, 78, 0 }) ' SE_PROTECT_START
' Rakto kodas
Įrašyti kodą ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END

Įrašyti kodą ({ 235, 7, 83, 69, 66, 69, 71, 78, 77 }) " SE_PROTECT_START_MUTATION
Rakto kodas
Įrašyti kodą ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END
Įrašyti kodą ({ 235, 7, 83, 69, 66, 69, 71, 78, 85 }) ' SE_PROTECT_START_ULTRA
Rakto kodas
Įrašyti kodą ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END
Įrašyti kodą ({ 235, 7, 83, 69, 66, 69, 71, 78, 86 }) "
' Rakto kodas
Įrašyti kodą ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END

Lengvas kalbos SDK konvertavimo metodas ↓
Palaikant E5.0 statinį kompiliavimą standartiniams PE formatams, tapo realybe įdiegti šifravimo apvalkalo SDK E programose, siekiant pagerinti programinės įrangos apsaugos kokybę.
Šifravimo apvalkalo SDK galima apytiksliai suskirstyti į dvi kategorijas: viena yra funkcinis SDK, o kita - apsauginis SDK.
1. Funkcinis SDK.
Tam naudojamas funkcinis SDKSerijos numerisPatvirtinimas, autorizacijos laiko patikrinimas ir kitos funkcinės operacijos. Šio tipo SDK turi įvairias funkcijas, tiesiogiai taikomas apvalkale, pvz., WL; Taip pat reikia įvesti išorinius DLL, pavyzdžiui, pangolinus.
DLL be išvesties lentelių, naudodami išorinį importavimo SDK, turime įkelti DLL, adresuoti funkciją SDK ir iškviesti komandą () E programoje, kad lengvai užbaigtume parametrų perdavimo operaciją ir gautume SDK funkcijos grąžinamąją vertę.
DLL su išvesties lentelėmis galima juos iškviesti naudojant DLL komandą E.
Tiems, kurie jau žino, kaip iškviesti DLL, galima sakyti, kad funkcinių SDK veikimą lengva valdyti, tiesiog pažvelkite į konkretų apvalkalo API vadovą.
2. Užšifruotas SDK
Kai šifravimo apvalkalas programinėje įrangoje aptiks konkrečią SDK žymą, jis naudos tikslinį metodą šiai kodo daliai apdoroti, kad pagerintų konkretaus kodo segmento saugumą. Toks žymėjimas natūraliai yra poros apibrėžtas surinkimo kodas!
Lengvai galime lengvai iškviesti surinkimo kodą naudodami komandą įterpti kodą (). Konkrečiai šifravimo apvalkalui, naudojančiam šį kūrinį, vadovaujamės šiuo metodu.
Atidarykite SDK, kuris pateikiamas kartu su šifravimo apvalkalu, ir raskite kalbos SDK antraštės failą, kurį galite perskaityti. Pavyzdžiui, žemiau esantis LCC antraštės failas.
Toliau pateikiamas programos kodas:
1 #elif apibrėžta(__LCC__)
2 /* Pateikė Rubem Pechansky, 2003 m. vasario 26 d. */
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(".baitas 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(".baitas 0xEB,0x03,0xD6,0xD6,0xFF");
9 #define SECUREBEGIN_C _asm(".byte 0xEB,0x03,0xD6,0xD6,0x03");
10 #define SECUREEND_C _asm(".baitas 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(".baitas 0xEB,0x03,0xD6,0xD6,0xFF");
15 #define SECUREBEGIN_F _asm(".byte 0xEB,0x03,0xD6,0xD6,0x06");
16 #define SECUREEND_F _asm(".baitas 0xEB,0x03,0xD6,0xD6,0xFF");
17 #define SECUREBEGIN_G _asm(".baitas 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(".baitas 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(".baitas 0xEB,0x03,0xD6,0xD6,0x0A");
24 #define SECUREEND_J _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
25 #define SECUREBEGIN_K _asm(".baitas 0xEB,0x03,0xD6,0xD6,0x0B");
26 #define SECUREEND_K _asm(".baitas 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");
Paskutiniuose dviejuose sakiniuose paaiškinti, kad NANOBEGIN ir NANOEND yra CC kodo fragmentų žymėjimai C kalba, o kodo fragmentai, apvynioti šiais dviem žymėjimais, bus apsaugoti CC šifravimo apvalkalu. NANOBEGIN vaizduojamas asamblėjos kodu kaip 0xEB, 0x03, 0xD6, 0xD7, 0x01, jo sakinys yra šešioliktainis C vaizdas, o asamblėjos sakinys pavaizduotas dešimtainiu skaičiumi E. Tai yra, mes turime išversti šį kodą.
0xEB = 235
0x03 = 3
0xD6 = 214
0xD7 = 215
0x01 = 1
Tada NANOBEGIN išreiškiamas E kaip įterpimo kodas ({235, 3, 214, 215, 1}).




Ankstesnis:WP8.1 GDR2/Win10 (WP10) bus labiau suasmenintas
Kitą:Pirmasis leidimas, Houpu informacinių technologijų inžinierius mokymo sistema - Mock egzaminų sistema (puikiai suderinama su Win7)
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com