Часом хтось хоче подивитися, а яка ж начинка у певній програмі? Тоді йому доводиться використовувати реверс-інжиніринг. Що це таке? Як діє? Яким чином відбувається цей процес? Про все це ви зможете дізнатися з цієї статті.
Так називають процес розбору програми з метою зрозуміти, як воно працює, щоб у майбутньому відтворити цей процес з внесенням необхідних змін. Зазвичай для цих цілей використовуються відладчик і асемблер. В залежності від якості використовуваного програмного забезпечення будуть відрізнятися результат і кількість часу, який необхідно витратити на його приведення в нормальний вигляд. Пояснювати реверс-інжиніринг для початківців краще всього на прикладі. Як оного виступить додаток, написаний для 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 шукаємо місце, куди зазначено розміщувати байт-код. Тепер зробимо невеликий відступ і закомментіруем команди, з якими потенційно можуть виникнути проблеми. Після цього нам залишилося тільки скомпілювати програму.
У цьому нам допоможе все той же Manager Apk. У вікні консолі, яка нами не закривалося, вибираємо пункт №14. Далі справа техніки. Якщо додаток досить складне, то при запуску воно може частково або повністю втратити свою працездатність. Не засмучуйтеся, це означає, що ми тільки на півдорозі і є ще куди йти. Продовжуємо проводити реверс-інжиніринг Android-додатків. Сказати, що потрібно робити в конкретному випадку, загальними словами, на жаль, неможливо. Тому шукати проблемне місце доведеться самостійно. Так, якщо вікно програми блокується спливаючим вікном, то необхідно переглянути код і видалити ту його частину, що відповідає за даний діалог. Допомогти з цим зможе jd-gui. Як бачите, реверсний інжиніринг не є легкою справою, і він вимагає наявності значного багажу знань. Навіть якщо все без проблем запустилося, необхідно буде протестувати працездатність програми. Тобто реверс-інжиніринг є ще витратним за часом дією. Продовжуємо працювати, поки не будуть виявлені всі проблеми.
А що, якщо нам потрібен захист Android-додатків від реверс-інжинірингу? В такому випадку є два варіанти: використання спеціальних програм або створення кодової конструкції,яка буде заважати здійснювати розбір написаного. Останній варіант підходить виключно досвідченим фахівцям, тому ми розглянемо тільки перший спосіб захисту. В якості спеціалізованого програмного забезпечення використовуємо ProGuard. Це програма, яка використовується для скорочення, обфускации і оптимізації коду. Якщо програму «прогнати» через нього, то ми отримаємо файл з розширенням *.apk меншого розміру, ніж він був. У такому разі її буде значно складніше розібрати. Причому перевагою даної програми є те, що вона навіть була впроваджена в систему складання Android-додатків з оновлення r9. Тому скористатися нею може будь-який розробник, який має стандартні інструменти створення і розробки.
не Можна сказати, що реверс-інжиніринг можна представити як щось однорідне погане або гарне. Звичайно, з точки зору розробників, які створили додаток, це зовсім не радісна подія. Але з іншого боку, у багатьох випадках написання досвідченими програмістами необхідних файлів може бути за часом менш витратним, ніж використання такого інструментарію. Хоча для початківців розробників реверс-інжиніринг може послужити непогану службу, якщо немає уявлення про те, як реалізувати щось, навіть приблизні і не зовсім зрозумілі начерки можуть допомогти з досягненням поставленої мети.
Article in other languages:
HI: https://tostpost.com/hi/computers/4051-android.html
Alin Trodden - автор статті, редактор
"Привіт, Я Алін Тродден. Я пишу тексти, читаю книги і шукаю враження. І я непогано вмію розповідати вам про це. Я завжди радий брати участь у цікавих проектах."
Новини
Чим відкрити розширення .sig? Опис формату файлу та пов'язаних з ним програм
Часто, натикаючись на формат *.sig, люди задаються питанням про те, що він собою являє. Другий, виникає відразу за першим, питання: "Чим відкрити розширення sig?".Що таке sig?Розширення sig (англ. signature - підпис) - це формат ф...
Принтер Canon PIXMA iX6540: огляд, характеристики, відгуки
Canon Pixma iX6540 - це фотопринтер з можливістю виводу високоякісного зображення на форматі А3+. При цьому у нього цілком прийнятні технічні специфікації і доступна вартість. Саме про це периферійному рішенні від іменитого європе...
Створення образу диска - збережемо те, чим дорожимо
Основна причина, по якій може знадобитися створення образу диска – це перевстановлення операційної системи. У мережі ходить безліч складок, а також образів офіційних дистрибьютивов, з яких можна встановити будь-яку ОС. Приро...
Sleeping Dogs: системні вимоги і дата виходу
Одним з найбільш відомих та сучасних клонів ігор серії "ДТА" є проект Sleeping Dogs. За задумом, у даній грі мали поєднуватися риси відразу декількох проектів, які були б об'єднані на базі "ДТА" і перетворені в щось абсолютно нове...
ID об'єктів в САМПО для створення карт
Створення різноманітного контенту для ігор - це досить розповсюджена розвага, яким займаються багато геймери. Природно, є і ті, хто тільки грає. Але все ж таки достатня кількість людей присвячують значну кількість свого часу створ...
World of Tanks: ИС-4 або ІС-7 - що краще? Характеристики і опис
У грі «Світ танків» існує велика кількість різноманітних моделей військової техніки, що належать до різних гілок розвитку – німецької, радянської, французької і так далі. Якщо ви прокачиваете радянську гілку, а с...
Примітка (0)
Ця стаття не має коментарів, будьте першим!