Логотип сайту

Як зламати програму?

Как взломать программу?

Дивіться відео

Як зламати програму?

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

До активації програма може мати обмежений термін використання, може бути заповненою дратівної рекламою, в ній можуть бути відключені потрібні функції.

При активації програмного забезпечення користувачу видається код, при введенні якого відбувається його звірка і, якщо він коректний, надається доступ з усіма необхідними функціями.

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

Зараз ви дізнаєтеся про часто використовуваних способах злому зловмисниками, щоб почати ефективно боротися з несанкціонованим доступом до програм і вдосконалити систему захисту. Стаття 159.6 Кримінального кодексу Російської Федерації передбачає максимальний термін покарання до 10 років позбавлення волі за шахрайство у сфері комп'ютерної інформації.

Способи злому

Для злому програм .Net на даний момент передбачено три простих способи, доступних навіть новачкам-хакерам з використанням загальнодоступних безкоштовних програмних інструментів таких, як Reflector'. Для прикладу візьмемо будь-яку програму, в ліцензії якій не міститься вказівок про злом, але потрібна реєстрація і дається можливість використання демо-періоду.

Прикладом такого сайту служить Espresso, що надає безкоштовний доступ без реєстрації на 60 днів після установки. Треба зазначити, що програми .Net являють собою код, написаний мовою Delfi.NER, С#, F# або Visual Basic, і який компилирован в HTML або IL. Тому неправильно в цьому випадку застосовувати поняття декомпіляції програмного забезпечення, так як прога знаходиться у відкритому доступі, а такі програми, як Reflector' здатні підвищити читабельність коду, перетворюючи DOS згідно конструкції мов F#, C# та інших.

Обнулення тріалу

Одним з варіантів швидкого злому є обнулення тріалу, яку складно назвати зломом, так як метод являє собою збільшення демо-періоду програми, яка ще не зареєстрована офіційно.

  • Знаходимо місце зберігання дати інсталяції програми.
  • Змінюємо її або видаляємо.
  • На прикладі Espresso:

  • З допомогою Reflector переглядаємо код.
  • У конструкторі MainForm знаходимо рядок this.ExpressoKey=@ «Software\\Ultrapico\\Expresso».
  • Відкривши редактор реєстру, заходимо в HKEY_CURRENT_USERSoftwareUltrapicoexpresso і шукаємо ключі, що містять інформацію про дату першого запуску програми.
  • Видаляємо їх.
  • Тепер термін дії програми вдалося продовжити ще на 60 днів!

    Написання keygen'а

  • Відкриваємо Reflector' і шукаємо код, що містить класи Registration або License. Наприклад, код Expresso виглядає так: Public bool IsValid(string UserName, string RegistrationCode)
  • При введенні UserName і Соde, по імені відбувається обчислення хеш, який в подальшому порівнюється з кодом. Public string ComputeCode (string UserName). Цей хеш використовують префікси та DES.
  • Відкриваємо IDE, копіюємо всі необхідні елементи-коди.
  • З'ясувавши значення у Prefix, Suffix, параметри реалізації MyDES, можна в кінцевому підсумку згенерувати ключ під будь-яке задане ім'я.

    Використання враппера

    Використання враппера служить третім варіантом злому. Так як перевірка ліцензії дуже проблематична і займає купу часу, засновники програм перевіряють ліцензію всього 1 разів, а потім встановлюють прапорець - валидна вона чи ні. Цей момент може використовуватися при зломі, достатньо вказати програмного забезпечення, що перевірка ліцензії вже проводилася або що вона валидна. Для зломщиків тут існують деякі складності, так як програмне забезпечення декомпилируется в HTML, а потім збирається назад.

    Для проведення процесу декомпіляції потрібна утиліта ildasm з SDK, а в якості компілятора використовується Framework ilasm. При даному способі оригінальна підпис замінюється на підпис зломщика, в результаті чого можуть виникнути проблеми при роботі з бібліотеками, адже їх необхідно буде розбирати, а потім знову збирати. Але зате в результаті отримуємо безкоштовну програму з власним ключем.

    На прикладі Expresso видно, що якщо програма вже зареєстрована, то вона не перевіряє коректність ліцензії, цим можна скористатися. Для цього необхідно створити новий проект, додати Reference на Expresso.exe і запустити його через себе. В якості захисту від зломщиків розробникам рекомендується перевіряти ліцензію дещо частіше, так вдасться запобігти можливість встановлення непотрібних змінних.

    Рекомендації

  • На підставі запропонованої інформації можна ефективно боротися з несанкціонованим доступом і зломом програм зловмисниками, створити більш ефективну систему захисту.
  • Робимо висновок, що програми .NET дуже просто зламати, якщо розробник не був досить обережний. Питання про доцільність витрат часу і ресурсів на захист програмного забезпечення вирішувати тільки творцям.
  • В якості альтернативного варіанту варто розглянути можливість створення web-системи або безкоштовної версії програми з обмеженими функціями.
  • Додати коментар
    Ім'я:*
    Пошук по сайту