Як зламати програму?
Дивіться відео
Як зламати програму?
Проблема захисту програм від злому в даний час набирає все більшу популярність. Найчастіше програмне забезпечення захищають кодом, який повідомляється користувачеві після реєстрації.
До активації програма може мати обмежений термін використання, може бути заповненою дратівливої рекламою, в ній можуть бути відключені потрібні функції.
При активації програмного забезпечення користувачеві видається код, при введенні якого відбувається його звірка і, якщо він коректний, надається доступ з усіма необхідними функціями.
Найчастіше захист для програм розробляється засновниками одноманітно, що дозволяє їх зламати за лічені хвилини. Ця стаття створена виключно в просвітницьких цілях і злом програм виробляти не рекомендується.
Зараз ви дізнаєтеся про часто використовуваних способах злому зловмисниками, щоб почати ефективно боротися з несанкціонованим доступом до програм і удосконалити систему захисту. Стаття 159.6 Кримінального кодексу Російської Федерації передбачає максимальний термін покарання до 10 років позбавлення волі за шахрайство у сфері комп'ютерної інформації.
Способи злому
Для злому програм на .Net на даний момент передбачено три дуже простих способи, доступних навіть новачкам-хакерам з використанням загальнодоступних безкоштовних програмних інструментів таких, як Reflector '. Для прикладу візьмемо будь-яку програму, в ліцензії якій не міститься вказівок про злом, але потрібна реєстрація і дається можливість використання демо-періоду.
Прикладом такого сайту служить Espresso, що надає безкоштовний доступ без реєстрації на 60 днів після установки. Треба відзначити, що програми на .Net являють собою код, написаний мовою Delfi.NER, С #, F # або Visual Basic, і який компілювати в MSIL або IL. Тому неправильно в цьому випадку застосовувати поняття декомпіляцію програмного забезпечення, так як прога знаходиться у відкритому доступі, а такі програми, як Reflector 'здатні підвищити читабельність коду, перетворюючи MSIL згідно конструкції мов 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 раз, а потім встановлюють прапорець - валидна вона чи ні. Цей момент може використовуватися при зломі, досить вказати програмному забезпеченню, що перевірка ліцензії вже проводилась або що вона валидна. Для зломщиків тут існують деякі складнощі, оскільки програмне забезпечення декомпілюються в MSIL, а потім збирається назад.
Для проведення процесу декомпіляцію потрібно утиліта ildasm з SDK, а в якості компілятора використовується Framework ilasm. При даному способі оригінальна підпис замінюється на підпис зломщика, в результаті чого можуть виникнути проблеми при роботі з бібліотеками, адже їх необхідно буде розбирати, а потім знову збирати. Але зате в результаті отримуємо безкоштовну програму з власним ключем.
На прикладі Expresso видно, що якщо програма вже зареєстрована, то вона не перевіряє коректність ліцензії, цим і можна скористатися. Для цього необхідно створити новий проект, додати Reference на Expresso.exe і запустити його через себе. В якості захисту від зломщиків розробникам рекомендується перевіряти ліцензію дещо частіше, так вдасться запобігти можливість установки непотрібних змінних.
Рекомендації
- На підставі запропонованої інформації можна ефективно боротися з несанкціонованим доступом і зломом програм зловмисниками, створити більш ефективну систему захисту.
- Робимо висновок, що програми на .NET дуже просто зламати, якщо розробник не був досить обережний. Питання про доцільність витрат часу і ресурсів на захист програмного забезпечення вирішувати тільки творцям.
- В якості альтернативного варіанту варто розглянути можливість створення web-системи або безкоштовної версії програми з обмеженими функціями.