Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 22775|Відповідь: 0

[Легка мова] Простий захист VMP, різні захисні оболонки SDK-коду на Easy мові

[Копіювати посилання]
Опубліковано 29.11.2014 15:59:19 | | |
ZProtect
Code_Confusion — це криптографічний тег коду поза порядком, який дозволяє вибрати частину коду, що не в порядку
Вставити код ({ 235, 8, 83, 84, 95, 83, 84, 65, 82, 84 }) ' Code_Confusion позначки для початку
Вставити код ({ 235, 8, 83, 84, 95, 83, 84, 69, 78, 68 }) ' Code_Confusion кінці позначки
Code_Elimination — це маркер очищення коду, який дозволяє вибрати частину коду для видалення з пам'яті після запуску; Мета використання цієї розмітки — запобігти тому, щоб хакери могли скидати повний програмний код з пам'яті.
Вставити код ({ 235, 8, 79, 67, 95, 83, 84, 65, 82, 84 }) ' починається Code_Elimination тег
Вставити код ({ 235, 8, 79, 67, 95, 79, 67, 69, 78, 68 }) ' Code_Elimination позначки в кінці
Decode_onExec — це динамічна розмітка для декодування, яка дозволяє вибрати частину коду, що розшифровується лише під час виконання; Ця частина коду декодується лише тоді, коли її потрібно виконати, і шифрується до та після виконання
Вставити код ({ 235, 8, 68, 89, 95, 83, 84, 65, 82, 84 }) // Decode_onExec починається тег
Вставити код ({ 235, 8, 68, 89, 95, 68, 89, 69, 78, 68 }) // Decode_onExec позначити кінець
Decode_onReg — це тег декодування реєстрації, який дозволяє вибрати частину коду, розшифровану за допомогою дійсного ключа; Якщо реєстраційний ключ неправильний, ця частина коду завжди буде зашифрована. Простими словами, ця частина коду виконується лише у зареєстрованій версії
У вихідному коді можна використовувати будь-яку кількість тегів Decode_onReg, але ці фрагменти коду розшифровуються одночасно з виконанням. Тег декодування реєстрації головним чином використовується для активації обмежених функцій у незареєстрованій версії з метою реєстрації як повної версії.
Вставити код ({ 235, 8, 82, 68, 95, 83, 84, 65, 82, 84 }) // Decode_onReg тег починається
Вставити код ({ 235, 8, 82, 68, 95, 82, 68, 69, 78, 68 }) // Decode_onReg позначити кінець
Zprotect_VM — це тег шифрування віртуальної машини, який дозволяє обрати частину коду для завантаження у віртуальну машину; Система інструкцій віртуальної машини повністю відрізняється від існуючих інструкцій x86, що може ефективно перешкоджати відновленню та аналізу коду
Вставити код ({ 235, 8, 86, 77, 95, 83, 84, 65, 82, 84 }) // Zprotect_VM позначки для початку
Вставити код ({ 235, 8, 86, 77, 95, 86, 77, 69, 78, 68 }) // Zprotect_VM позначити кінець
----------- для версії ZProtect V1.4.9.0---------
VMProtect
Вставити код ({ 235, 16, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 98, 101, 103, 105, 110, 0 }) ' прапорець запуску захисту VMP
'Код клавіші
Вставте код ({ 235, 14, 86, 77, 80, 114, 111, 116, 101, 99, 116, 32, 101, 110, 100, 0 }) ' кінцевий прапорець захисту VMP
SDK мови шифрування Enigma
Вставте код ({ 235, 10, 69, 67, 82, 79, 78, 69, 69, 69, 69, 69, 67, 66 })' на початку
'Код клавіші
Вставити код ({ 235, 10, 69, 67, 82, 79, 78, 69, 69, 88, 69, 69, 67, 69 })' в кінці знака

NoobyProtect SDK для мови шифрування
Вставити код ({ 235, 6, 78, 80, 66, 69, 71, 78 })' на початку
'Код клавіші
Вставте код ({ 235, 6, 78, 80, 69, 78, 68, 80 })' в кінці

Pangolin викликає DEMO функціональної мови шифрування SDK
Поставте позначку коду ({ 235, 3, 214, 215, 1 })' на початку
'Код клавіші
Позначка коду місця ({ 235, 3, 214, 215, 0 }) в кінці позначки
Мова шифрування ASP SDK
Вставити код ({ 235, 4, 235, 5, 25, 1, 233, 37, 0 })' на початку
'Код клавіші
Вставте код ({ 235, 4, 235, 5, 41, 1, 233, 133, 0, })' в кінці позначки

Шілден 2.0.1.0
Вставити код ({ 235, 7, 83, 69, 66, 69, 71, 78, 0 }) ' SE_PROTECT_START
' Код клавіші
Вставити код ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END

Вставити код ({ 235, 7, 83, 69, 66, 69, 71, 78, 77 }) ' SE_PROTECT_START_MUTATION
Код клавіші
Вставити код ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END
Вставити код ({ 235, 7, 83, 69, 66, 69, 71, 78, 85 }) ' SE_PROTECT_START_ULTRA
Код клавіші
Вставити код ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END
Вставити код ({ 235, 7, 83, 69, 66, 69, 71, 78, 86 }) '
' Код клавіші
Вставити код ({ 235, 7, 83, 69, 69, 78, 68, 80, 0 }) ' SE_PROTECT_END

Метод конвертації SDK простою мовою ↓
Завдяки підтримці статичної компіляції E5.0 для стандартних форматів PE, стало реальністю впровадження SDK shell шифрування в програмах E для підвищення якості захисту програмного забезпечення.
SDK shell шифрування можна приблизно поділити на дві категорії: одна — функціональна SDK, інша — захисна.
1. Функціональний SDK.
Для цього використовується функціональний SDKСерійний номерВалідація, перевірка часу авторизації та інші функціональні операції. Цей тип SDK має різні функції, які безпосередньо застосовуються в оболонці, наприклад, WL; Існують також зовнішні DLL, які потрібно вводити, наприклад, панголінів.
Для DLL без таблиць виходу, використовуючи зовнішній імпортний SDK, потрібно завантажити DLL, адресувати функцію в SDK і викликати команду підпрограми () у E, щоб легко завершити операцію передачі параметрів і отримати повернене значення функції SDK.
Для DLL з таблицями виводу можна викликати їх командою DLL E.
Для тих, хто вже знає, як викликати DLL, роботу функціональних SDK можна легко контролювати — просто подивіться на конкретний посібник API оболонки.
2. Зашифрований SDK
Після того, як оболонка шифрування виявляє певний тег SDK у програмному забезпеченні, вона використовує цільовий метод обробки цього фрагмента коду з метою підвищення безпеки конкретного сегмента коду. Такий тип розмітки природно є парним асемблерним кодом!
У легкому режимі ми можемо легко викликати асемблерний код за допомогою команди вставки коду () Специфічно для оболонки шифрування, що використовує цей елемент, ми дотримуємося наступного методу.
Відкрийте SDK, що йде в комплекті з shell шифрування, і знайдіть заголовок SDK мови, який можна прочитати. Наприклад, нижче наведено заголовок LCC.
Нижче наведено програмний код:
1 #elif визначено(__LCC__)
2 /* Надано Рубемом Печанським, 26 лютого 2003 */
3 #define SECURESTART _asm(".byte 0xEB,0x03,0xD6,0xD6,0x00");
4 #define SECUREEND _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
5 #define SECUREBEGIN_A _asm(".byte 0xEB,0x03,0xD6,0xD6,0x01");
6 #define SECUREEND_A _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
7 #define SECUREBEGIN_B _asm(".байт 0xEB,0x03,0xD6,0xD6,0x02");
8 #define SECUREEND_B _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
9 #define SECUREBEGIN_C _asm(".байт 0xEB,0x03,0xD6,0xD6,0x03");
10 #define SECUREEND_C _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
11 #define SECUREBEGIN_D _asm(".байт 0xEB,0x03,0xD6,0xD6,0x04");
12 #define SECUREEND_D _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
13 #define SECUREBEGIN_E _asm(".байт 0xEB,0x03,0xD6,0xD6,0x05");
14 #define SECUREEND_E _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
15 #define SECUREBEGIN_F _asm(".байт 0xEB,0x03,0xD6,0xD6,0x06");
16 #define SECUREEND_F _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
17 #define SECUREBEGIN_G _asm(".байт 0xEB,0x03,0xD6,0xD6,0x07");
18 #define SECUREEND_G _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
19 #define SECUREBEGIN_H _asm(".байт 0xEB,0x03,0xD6,0xD6,0x08");
20 #define SECUREEND_H _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
21 #define SECUREBEGIN_I _asm(".байт 0xEB,0x03,0xD6,0xD6,0x09");
22 #define SECUREEND_I _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
23 #define SECUREBEGIN_J _asm(".байт 0xEB,0x03,0xD6,0xD6,0x0A");
24 #define SECUREEND_J _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
25 #define SECUREBEGIN_K _asm(".байт 0xEB,0x03,0xD6,0xD6,0x0B");
26 #define SECUREEND_K _asm(".байт 0xEB,0x03,0xD6,0xD6,0xFF");
27 #define NANOBEGIN _asm(".байт 0xEB,0x03,0xD6,0xD7,0x01");
28 #define NANOEND _asm(".байт 0xEB,0x03,0xD6,0xD7,0x00");
Пояснюючи в останніх двох реченнях, NANOBEGIN і NANOEND — це розмітки CC-кодових фрагментів мовою C, і фрагменти коду, обгорнуті цими двома розмітками, будуть захищені CC shell шифрування. NANOBEGIN представлений кодом асемблера у вигляді 0xEB, 0x03, 0xD6, 0xD7, 0x01, його речення є шістнадцятковим представленням C, а оператор асемблера представлений у десятковій десятковій знаці в E. Тобто нам потрібно перекласти цей код.
0xEB = 235
0x03 = 3
0xD6 = 214
0xD7 = 215
0x01 = 1
Тоді NANOBEGIN виражається в E як код вставки ({235, 3, 214, 215, 1}).




Попередній:WP8.1 GDR2/Win10 (WP10) буде більш персоналізованим
Наступний:Перший випуск — Houpu Information Technology Training Engineer Training System — система пробних іспитів (ідеально сумісна з Win7)
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com