ZProtect
Code_Confusion ir koda nepareizs kriptogrāfiskais tags, kas ļauj atlasīt koda daļu, kas nav kārtībā
Ievietot kodu ({ 235, 8, 83, 84, 95, 83, 84, 65, 82, 84 }) " Code_Confusion atzīmēt, lai sāktu
Ievietot kodu ({ 235, 8, 83, 84, 95, 83, 84, 69, 78, 68 }) " Code_Confusion zīmes beigās
Code_Elimination ir koda tīrīšanas marķieris, kas ļauj atlasīt koda daļu, kas pēc palaišanas jānoņem no atmiņas; Šī marķējuma izmantošanas mērķis ir novērst krekeru izmešanu no atmiņas pilnu programmas kodu.
Ievietot kodu ({ 235, 8, 79, 67, 95, 83, 84, 65, 82, 84 }) ' Code_Elimination tags sākas
Ievietot kodu ({ 235, 8, 79, 67, 95, 79, 67, 69, 78, 68 }) " Code_Elimination atzīmi beigās
Decode_onExec ir dinamisks dekodēšanas marķējums, kas ļauj atlasīt koda daļu, kas tiek atšifrēta tikai izpildes laikā; Šī koda daļa tiek dekodēta tikai tad, kad tā ir jāizpilda, un tiek šifrēta pirms un pēc izpildes
Ievietojiet kodu ({ 235, 8, 68, 89, 95, 83, 84, 65, 82, 84 }) // Decode_onExec tags sākas
Ievietojiet kodu ({ 235, 8, 68, 89, 95, 68, 89, 69, 78, 68 }) // Decode_onExec atzīmējiet beigas
Decode_onReg ir reģistrācijas dekodēšanas tags, kas ļauj atlasīt koda daļu, kas ir atšifrēta ar derīgu atslēgu; Ja reģistrācijas atslēga ir nepareiza, tad šī koda daļa vienmēr tiks šifrēta. Nespeciālistu izteiksmē šī koda daļa tiek izpildīta tikai reģistrētajā versijā
Avota kodā var izmantot jebkuru skaitu Decode_onReg tagu, bet šie koda fragmenti tiek atšifrēti vienlaicīgi ar to izpildi. Reģistrācijas dekodēšanas tags galvenokārt tiek izmantots, lai aktivizētu ierobežotas funkcijas nereģistrētā versijā, lai reģistrētu to kā pilnu versiju.
Ievietojiet kodu ({ 235, 8, 82, 68, 95, 83, 84, 65, 82, 84 }) // Decode_onReg tags sākas
Ievietojiet kodu ({ 235, 8, 82, 68, 95, 82, 68, 69, 78, 68 }) // Decode_onReg atzīmējiet beigas
Zprotect_VM ir virtuālās mašīnas šifrēšanas tags, kas ļauj atlasīt koda daļu, ko ievietot virtuālajā mašīnā; Virtuālās mašīnas instrukciju sistēma ir pilnīgi atšķirīga no esošajām x86 instrukcijām, kas var efektīvi novērst koda atjaunošanu un analīzi
Ievietojiet kodu ({ 235, 8, 86, 77, 95, 83, 84, 65, 82, 84 }) // Zprotect_VM atzīmēt, lai sāktu
Ievietot kodu ({ 235, 8, 86, 77, 95, 86, 77, 69, 78, 68 }) // Zprotect_VM atzīmēt beigas
----------- ZProtect V1.4.9.0 versijai---------
VMProtect
Ievietojiet kodu ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) " VMP aizsardzības sākuma karodziņš
"Atslēgas kods
Ievietojiet kodu ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) " VMP aizsardzības beigu karodziņš
Enigma šifrēšanas valodas SDK
Ievietot kodu ({ 235, 10, 69, 67, 82, 79, 78, 69, 88, 69, 69, 67, 66 })"
"Atslēgas kods
Zīmes beigās ievietot kodu ({ 235, 10, 69, 67, 82, 79, 78, 69, 88, 69, 88, 69, 67, 69 })"
NoobyProtect SDK šifrēšanas valodai
Ievietot kodu ({ 235, 6, 78, 80, 66, 69, 71, 78 })" atzīmi sākumā
"Atslēgas kods
Ievietot kodu ({ 235, 6, 78, 80, 69, 78, 68, 80 })"
Pangolin izsauc funkcionālās šifrēšanas valodas SDK DEMO
Sākumā ievieto atzīmi "kods ({ 235, 3, 214, 215, 1 })"
"Atslēgas kods
Vietas kods ({ 235, 3, 214, 215, 0 })" zīmes beigās
ASP šifrēšanas valodas SDK
Ievietot kodu ({ 235, 4, 235, 5, 25, 1, 233, 37, 0 })"
"Atslēgas kods
Ieraksta kodu ({ 235, 4, 235, 5, 41, 1, 233, 133, 0, })" zīmes beigās
Shielden 2.0.1.0
Ievietot kodu ({ 235, 7, 83, 69, 66, 69, 71, 78, 0 }) " SE_PROTECT_START
' Atslēgas kods
Ievietot kodu ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) SE_PROTECT_END
Ievietot kodu ({ 235, 7, 83, 69, 66, 69, 71, 78, 77 }) " SE_PROTECT_START_MUTATION
Atslēgas kods
Ievietot kodu ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) SE_PROTECT_END
Ievietot kodu ({ 235, 7, 83, 69, 66, 69, 71, 78, 85 }) " SE_PROTECT_START_ULTRA
Atslēgas kods
Ievietot kodu ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) SE_PROTECT_END
Ievietot kodu ({ 235, 7, 83, 69, 66, 69, 71, 78, 86 }) "
' Atslēgas kods
Ievietot kodu ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) SE_PROTECT_END
Vienkārša valodas SDK konvertēšanas metode ↓
Ar E5.0 statiskās kompilācijas atbalstu standarta PE formātiem, ir kļuvis par realitāti ieviest šifrēšanas čaulas SDK E programmās, lai uzlabotu programmatūras aizsardzības kvalitāti.
Šifrēšanas čaulas SDK var aptuveni iedalīt divās kategorijās, viena ir funkcionālais SDK, bet otra ir aizsargājošs SDK.
1. Funkcionālais SDK.
Lai to apstrādātu, tiek izmantots funkcionālais SDKSērijas numursValidācija, autorizācijas laika pārbaude un citas funkcionālās darbības. Šāda veida SDK ir dažādas funkcijas, kas tieši tiek izmantotas čaulā, piemēram, WL; Ir arī ārēji DLL, kas jāievieš, piemēram, pangolīni.
DLL bez izvades tabulām, izmantojot importa ārējo SDK, mums ir jāielādē DLL, jāadresē funkcija SDK un jāizsauc apakšprogrammas () komanda E, lai viegli pabeigtu parametru nodošanas darbību, lai iegūtu SDK funkcijas atgriezto vērtību.
DLL ar izvades tabulām ir labi tos izsaukt ar DLL komandu E.
Tiem, kas jau zina, kā izsaukt DLL, var teikt, ka funkcionālo SDK darbība ir viegli kontrolējama, vienkārši apskatiet konkrēto čaulas API rokasgrāmatu.
2. Šifrēts SDK
Pēc tam, kad šifrēšanas apvalks programmatūrā atklāj konkrētu SDK tagu, tas izmantos mērķtiecīgu metodi, lai apstrādātu šo koda daļu, lai uzlabotu konkrētā koda segmenta drošību. Šāda veida marķējums, protams, ir pāra definēts montāžas kods!
Vienkārši, mēs varam viegli izsaukt montāžas kodu, izmantojot komandu ievietot kodu (). Konkrēti šifrēšanas apvalkam, izmantojot šo gabalu, mēs sekojam šādai metodei.
Atveriet šifrēšanas čaulas komplektācijā iekļauto SDK failu un atrodiet valodas SDK galvenes failu, ko varat lasīt. Piemēram, zemāk redzamais LCC galvenes fails.
Tālāk ir norādīts programmas kods:
1 #elif definēts [__LCC__)
2 /* Nodrošina Rubem Pechansky, 26Feb2003 */
3 #define SECUREBEGIN _asm(".baits 0xEB,0x03,0xD6,0xD6,0x00");
4 #define SECUREEND _asm(".baitu 0xEB,0x03,0xD6,0xD6,0xFF");
5 #define SECUREBEGIN_A _asm(".baitu 0xEB,0x03,0xD6,0xD6,0x01");
6 #define SECUREEND_A _asm(".baits 0xEB,0x03,0xD6,0xD6,0xFF");
7 #define SECUREBEGIN_B _asm(".baits 0xEB,0x03,0xD6,0xD6,0x02");
8 #define SECUREEND_B _asm(".baits 0xEB,0x03,0xD6,0xD6,0xFF");
9 #define SECUREBEGIN_C _asm(".baitu 0xEB,0x03,0xD6,0xD6,0x03");
10 #define SECUREEND_C _asm(".baits 0xEB,0x03,0xD6,0xD6,0xFF");
11 #define SECUREBEGIN_D _asm(".baits 0xEB,0x03,0xD6,0xD6,0x04");
12 #define SECUREEND_D _asm(".baitu 0xEB,0x03,0xD6,0xD6,0xFF");
13 #define SECUREBEGIN_E _asm(".baits 0xEB,0x03,0xD6,0xD6,0x05");
14 #define SECUREEND_E _asm(".baitu 0xEB,0x03,0xD6,0xD6,0xFF");
15 #define SECUREBEGIN_F _asm(".baitu 0xEB,0x03,0xD6,0xD6,0x06");
16 #define SECUREEND_F _asm(".baitu 0xEB,0x03,0xD6,0xD6,0xFF");
17 #define SECUREBEGIN_G _asm(".baits 0xEB,0x03,0xD6,0xD6,0x07");
18 #define SECUREEND_G _asm(".baits 0xEB,0x03,0xD6,0xD6,0xFF");
19 #define SECUREBEGIN_H _asm(".baits 0xEB,0x03,0xD6,0xD6,0x08");
20 #define SECUREEND_H _asm(".baitu 0xEB,0x03,0xD6,0xD6,0xFF");
21 #define SECUREBEGIN_I _asm(".baitu 0xEB,0x03,0xD6,0xD6,0x09");
22 #define SECUREEND_I _asm(".baitu 0xEB,0x03,0xD6,0xD6,0xFF");
23 #define SECUREBEGIN_J _asm(".baits 0xEB,0x03,0xD6,0xD6,0x0A");
24 #define SECUREEND_J _asm(".baitu 0xEB,0x03,0xD6,0xD6,0xFF");
25 #define SECUREBEGIN_K _asm(".baitu 0xEB,0x03,0xD6,0xD6,0x0B");
26 #define SECUREEND_K _asm(".baits 0xEB,0x03,0xD6,0xD6,0xFF");
27 #define NANOBEGIN _asm(".baits 0xEB,0x03,0xD6,0xD7,0x01");
28 #define NANOEND _asm(".baits 0xEB,0x03,0xD6,0xD7,0x00");
Lai paskaidrotu pēdējos divos teikumos, NANOBEGIN un NANOEND ir CC koda fragmentu marķējumi C valodā, un koda fragmenti, kas iesaiņoti ar šiem diviem marķējumiem, tiks aizsargāti ar CC ar šifrēšanas apvalku. NANOBEGIN tiek attēlots ar montāžas kodu kā 0xEB, 0x03, 0xD6, 0xD7, 0x01, viņa teikums ir C heksadecimālais attēlojums, un montāžas priekšraksts ir attēlots decimāldaļā decimāldaļā E. Tas nozīmē, ka mums ir jātulko šis kods.
0xEB = 235
0x03 = 3
0xD6 = 214
0xD7 = 215
0x01 = 1
Tad NANOBEGIN tiek izteikts E kā ievietošanas kods ({235, 3, 214, 215, 1}).
|