Реверс-інжиніринг для початківців. Захист Android-додатків від реверс-інжинірингу

Дата:

2018-08-16 23:40:10

Перегляди:

285

Рейтинг:

1Дизлайк 0Любити

Поділитися:

Table of contents:

Часом хтось хоче подивитися, а яка ж начинка у певній програмі? Тоді йому доводиться використовувати реверс-інжиніринг. Що це таке? Як діє? Яким чином відбувається цей процес? Про все це ви зможете дізнатися з цієї статті.

Що таке реверс-інжиніринг програм?

реверс інжинірингТак називають процес розбору програми з метою зрозуміти, як воно працює, щоб у майбутньому відтворити цей процес з внесенням необхідних змін. Зазвичай для цих цілей використовуються відладчик і асемблер. В залежності від якості використовуваного програмного забезпечення будуть відрізнятися результат і кількість часу, який необхідно витратити на його приведення в нормальний вигляд. Пояснювати реверс-інжиніринг для початківців краще всього на прикладі. Як оного виступить додаток, написаний для Android. А тепер давайте буде дізнаватися, що і як.

Робота з Android-додатками

реверс інжиніринг програмДля початку необхідно прояснити деякі моменти. У додатках використовується байт-код і LogCat. Це місцеві аналоги раніше згаданих відладчика і асемблера. Також необхідно розуміти структуру самих додатків. Так, кожна програма є файлом з розширенням apk. Упаковується він zip’ом. Нас цікавить його вміст – ресурси програми, classes.dex та AndroidManifest.xml. Якщо ви займаєтеся програмуванням на Android, то питань з першими і останніми бути не повинно. А ось classes.dex – це байт-код програми, складений спеціально для віртуальної машини. Вивудити з нього вихідний код java представленими в інтернеті засобами не вийти. Але можливим є отримання dalvik opcodes – спеціального набору команд, що використовуються для віртуальної машини. Для аналогії можна сказати, що це асемблер місцевого розливу. Також classes.dex може бути перетворений в файл з розширенням jar. Вже у такому випадку після його декомпіляції можна отримати java-код, який буде більш-менш читабельним. По такому шляху ми і підемо.

Більше:

Розширення

Розширення "Економія трафіку Google Chrome

У статті піде мова про те, як здійснюється економія трафіку в Google Chrome. Цей режим ще називають "Турбо", і його практично кожен спостерігав в таких браузерах, як Yandex Browser або Opera. Проте в Google Chrome даний компонент відсутній, і заощади...

Смайли в

Смайли в "Скайпі" - опис, застосування, секрети

Skype - програма, якою користуються багато людей. Вона призначена спеціально для спілкування і обміну даними. Як і будь-який інший месенджер, "Скайп" оснащений чудовим інтерфейсом і графічними елементами. Тут можна виражати емоції різними способами. ...

Ресурс вогняна сіль в

Ресурс вогняна сіль в "Скайриме"

Матеріал у грі «Скайрим» вогняна сіль має ряд застосувань, які будуть корисні для гравця. Цей предмет можна дістати кількома способами, які варто знати користувачу. Стаття надає всю потрібну інформацію з цього ресурсу.ВидобутокУ проекті ж...

Декомпіляція

Цей процес буде проводитися з використанням програми Апк Manger. Перш ніж приступати до роботи, необхідно переконатися, що потрібні драйвери для роботи девайса, а також функціонує режим USB debugging. Спочатку нам необхідно буде перемістити файл, який буде розбиратися в директиву apk_managerplace-apk-here-for-modding. Після цього слід запустити Script.bat. Якщо ніяких проблем немає, то запуститися консоль, на якій будуть зелені написи. Вибираємо пункт номер дев'ять – «Декомпілювати». Після того як буде запущений процес, необхідно не закривати консоль. Потім слід відкрити зацікавив apk-файл за допомогою архіватора і витягти з нього classes.dex, який потрібно обробити програмою dex2jar. Для необхідного нам результату його треба перемістити на об'єкт з розширенням .bat. З'явиться файл, який буде закінчуватися .jar. Поки що не закриваємо вікно.

Аналізуємо дані

реверс інжиніринг для початківцівЩоб отримати інформацію про програму, необхідно відкрити його маніфест. По ньому визначаємо, що виступає в ролі головної активності. Вона і представляє для нас зараз найбільшу важливість. Також бажано подивитися в самий низ програми. Якщо внизу буде інформація про менеджера ліцензій, то це суттєво ускладнить проведення реверсного інжинірингу. Якщо перейти на jd-gui і розгорнути дерево, то ми побачимо декілька просторів імен. Припустимо, що їх троє. У першому знаходяться файли, пов'язані з рекламою. У другому будуть класи менеджера ліцензій. У третьому знаходяться нам необхідні дані. У нього-то ми і прямуємо. Тут необхідно буде знайти і видалити ключ, а потім і інші рядки, які перевіряють, чи є ліцензійної працююча версія. Все це потрібно почистити. Потім у нашому Manager Apk шукаємо місце, куди зазначено розміщувати байт-код. Тепер зробимо невеликий відступ і закомментіруем команди, з якими потенційно можуть виникнути проблеми. Після цього нам залишилося тільки скомпілювати програму.

Складання програми

реверс інжиніринг android додатківУ цьому нам допоможе все той же Manager Apk. У вікні консолі, яка нами не закривалося, вибираємо пункт №14. Далі справа техніки. Якщо додаток досить складне, то при запуску воно може частково або повністю втратити свою працездатність. Не засмучуйтеся, це означає, що ми тільки на півдорозі і є ще куди йти. Продовжуємо проводити реверс-інжиніринг Android-додатків. Сказати, що потрібно робити в конкретному випадку, загальними словами, на жаль, неможливо. Тому шукати проблемне місце доведеться самостійно. Так, якщо вікно програми блокується спливаючим вікном, то необхідно переглянути код і видалити ту його частину, що відповідає за даний діалог. Допомогти з цим зможе jd-gui. Як бачите, реверсний інжиніринг не є легкою справою, і він вимагає наявності значного багажу знань. Навіть якщо все без проблем запустилося, необхідно буде протестувати працездатність програми. Тобто реверс-інжиніринг є ще витратним за часом дією. Продовжуємо працювати, поки не будуть виявлені всі проблеми.

Безпека

А що, якщо нам потрібен захист Android-додатків від реверс-інжинірингу? В такому випадку є два варіанти: використання спеціальних програм або створення кодової конструкції,яка буде заважати здійснювати розбір написаного. Останній варіант підходить виключно досвідченим фахівцям, тому ми розглянемо тільки перший спосіб захисту. В якості спеціалізованого програмного забезпечення використовуємо ProGuard. Це програма, яка використовується для скорочення, обфускации і оптимізації коду. Якщо програму «прогнати» через нього, то ми отримаємо файл з розширенням *.apk меншого розміру, ніж він був. У такому разі її буде значно складніше розібрати. Причому перевагою даної програми є те, що вона навіть була впроваджена в систему складання Android-додатків з оновлення r9. Тому скористатися нею може будь-який розробник, який має стандартні інструменти створення і розробки.

Висновок

захист додатків android від реверс інжинірингуне Можна сказати, що реверс-інжиніринг можна представити як щось однорідне погане або гарне. Звичайно, з точки зору розробників, які створили додаток, це зовсім не радісна подія. Але з іншого боку, у багатьох випадках написання досвідченими програмістами необхідних файлів може бути за часом менш витратним, ніж використання такого інструментарію. Хоча для початківців розробників реверс-інжиніринг може послужити непогану службу, якщо немає уявлення про те, як реалізувати щось, навіть приблизні і не зовсім зрозумілі начерки можуть допомогти з досягненням поставленої мети.


Article in other languages:

AR: https://tostpost.com/ar/computers/4048-reverse-engineering-for-beginners-protect-android-apps-from-reverse-en.html

BE: https://tostpost.com/be/kamputary/7170-revers--nzhyn-ryng-dlya-pachatko-ca-abarona-android-prykladannya-ad-re.html

DE: https://tostpost.com/de/computer/7170-reverse-engineering-f-r-anf-nger-schutz-von-android-anwendungen-von-re.html

En: https://tostpost.com/computers/18035-reverse-engineering-for-beginners-protect-android-apps-from-reverse-en.html

ES: https://tostpost.com/es/los-ordenadores/7176-ingenier-a-inversa-para-los-principiantes-protecci-n-android-aplicacio.html

HI: https://tostpost.com/hi/computers/4051-android.html

JA: https://tostpost.com/ja/computers/4049-android.html

KK: https://tostpost.com/kk/komp-yuterler/7173-revers-inzhiniring-bastaushylar-a-arnal-an-or-au-android-ot-revers-inz.html

PL: https://tostpost.com/pl/komputery/7174-reverse-engineering-dla-pocz-tkuj-cych-ochrona-aplikacji-android-od-re.html

PT: https://tostpost.com/pt/computadores/7170-a-engenharia-reversa-para-iniciantes-prote-o-android-aplica-es-da-enge.html

TR: https://tostpost.com/tr/bilgisayarlar/7177-ters-m-hendislik-i-in-yeni-ba-layanlar-koruma-android-uygulamalar-ters.html

ZH: https://tostpost.com/zh/computers/4391-reverse-engineering-for-beginners-protect-android-apps-from-reverse-en.html






Alin Trodden - автор статті, редактор
"Привіт, Я Алін Тродден. Я пишу тексти, читаю книги і шукаю враження. І я непогано вмію розповідати вам про це. Я завжди радий брати участь у цікавих проектах."

Примітка (0)

Ця стаття не має коментарів, будьте першим!

Додати коментар

Новини

Чим відкрити розширення .sig? Опис формату файлу та пов'язаних з ним програм

Чим відкрити розширення .sig? Опис формату файлу та пов'язаних з ним програм

Часто, натикаючись на формат *.sig, люди задаються питанням про те, що він собою являє. Другий, виникає відразу за першим, питання: "Чим відкрити розширення sig?".Що таке sig?Розширення sig (англ. signature - підпис) - це формат ф...

Принтер Canon PIXMA iX6540: огляд, характеристики, відгуки

Принтер Canon PIXMA iX6540: огляд, характеристики, відгуки

Canon Pixma iX6540 - це фотопринтер з можливістю виводу високоякісного зображення на форматі А3+. При цьому у нього цілком прийнятні технічні специфікації і доступна вартість. Саме про це периферійному рішенні від іменитого європе...

Створення образу диска - збережемо те, чим дорожимо

Створення образу диска - збережемо те, чим дорожимо

Основна причина, по якій може знадобитися створення образу диска – це перевстановлення операційної системи. У мережі ходить безліч складок, а також образів офіційних дистрибьютивов, з яких можна встановити будь-яку ОС. Приро...

Sleeping Dogs: системні вимоги і дата виходу

Sleeping Dogs: системні вимоги і дата виходу

Одним з найбільш відомих та сучасних клонів ігор серії "ДТА" є проект Sleeping Dogs. За задумом, у даній грі мали поєднуватися риси відразу декількох проектів, які були б об'єднані на базі "ДТА" і перетворені в щось абсолютно нове...

ID об'єктів в САМПО для створення карт

ID об'єктів в САМПО для створення карт

Створення різноманітного контенту для ігор - це досить розповсюджена розвага, яким займаються багато геймери. Природно, є і ті, хто тільки грає. Але все ж таки достатня кількість людей присвячують значну кількість свого часу створ...

World of Tanks: ИС-4 або ІС-7 - що краще? Характеристики і опис

World of Tanks: ИС-4 або ІС-7 - що краще? Характеристики і опис

У грі «Світ танків» існує велика кількість різноманітних моделей військової техніки, що належать до різних гілок розвитку – німецької, радянської, французької і так далі. Якщо ви прокачиваете радянську гілку, а с...