muzruno.com

Обратно инженерство за начинаещи. Защитете приложенията за Android от обратната инженеринг

Понякога някой иска да види и какво е попълването на определена програма? След това трябва да използва обратен инженеринг. Какво е това? Как действа? Как се осъществява този процес? Всичко това можете да научите от тази статия.

Какво е обратното инженерство на програмите?

обратно инженерствоТова е процесът на разглеждане на приложенията, за да разберем как работи, за да пресъздаде в бъдеще необходимите промени. Обикновено за тези цели се използва дебъгер и асемблер. В зависимост от качеството на използвания софтуер, резултатът ще се различава и времето, необходимо за нормалното му функциониране. Обяснете, че обратното инженерство за начинаещи се основава най-добре на пример. По този начин ще се изпълни приложение, написано за Android. И сега нека разберем какво и как.

Използване на приложения за Android

обратното проектиране на програмиПърво, необходимо е да се изяснят някои точки. В приложенията се използват байт код и LogCat. Това са локални аналози на споменатия по-рано дебъгер и асемблер. Необходимо е също така да се разбере структурата на самите приложения. Така че всяка програма е файл с разширение APK. Тя е опакована ziprsquo та. Интересуваме се от съдържанието му - ресурсите за приложения, classes.dex и AndroidManifest.xml. Ако планирате Android, тогава въпросите с първото и последното не трябва да бъдат. Класът class.dex обаче е байткодът на програмата, която се компилира специално за виртуалната машина. За да извлечете от него изходния код, представен от Java, не може да бъде получен. Но е възможно да се получат dalvik opcodes - специален набор от команди, които се използват за виртуална машина. По аналогия можем да кажем, че това е асемблерът на местния разлив. Също така classes.dex може да се превърне във файл с разширителния буркан. Вече в този случай, след декомпилацията му, можете да получите java-код, който ще бъде повече или по-малко четим. По този начин ще отидем.

декомпилацията

Този процес ще се проведе с помощта на програмата Apk Manger. Преди да започнете, трябва да сте сигурни, че имате правилните драйвери за устройството и функционира режимът на USB за отстраняване на грешки. Първоначално ще трябва да преместите файла, който ще разбере директивата apk_manager place-apk-here-for-modding. След това изпълнете Script.bat. Ако няма проблем, стартирайте конзолата, която ще бъде със зелени надписи. Избираме номер девет - "Декомпилираме". След като процесът започне, няма нужда да затворите конзолата. След това трябва да отворите APK файла, който ви интересува, с помощта на архиватора и да извлечете classes.dex от него, който трябва да обработите с dex2jar. За резултата, от който се нуждаем, трябва да го преместим към обект с разширение .bat. Ще се покаже файл, който ще завърши с .jar. Докато прозорецът не е затворен.

Анализиране на данните



обратно инженерство за начинаещиЗа да получите информация за приложението, трябва да отворите неговия манифест. На нея ние определяме, че тя действа като основна дейност. Това е от най-голямо значение за нас сега. Желателно е да погледнете и дъното на програмата. Ако има информация за лицензионния мениджър в долната част, това значително ще усложни обратното инженерство. Ако преминем към jd-gui и разширим дървото, ще видим няколко имена. Да предположим, че има три. В първия има файлове, свързани с рекламата. Вторият ще съдържа класове на мениджърите на лицензи. На трето място имаме необходимите данни. В него, тогава отиваме. Тук ще трябва да намерите и изтриете ключа, а след това и останалите редове, които проверяват дали лицензираната версия работи. Всичко това трябва да се почисти. След това в нашия Apk Manager търсим мястото, където ще бъде поставен байтовият код. Сега нека направим малко отклонение и да коментираме командите, които потенциално биха могли да причинят проблеми. След това трябва само да съставим програмата.

Изграждане на приложение

обратни инженерни приложения за инженерингТова ще ни помогне в един и същ Apk мениджър. В прозореца на конзолата, който не затворихме, изберете елемент # 14. Освен това, въпросът за технологията. Ако приложението е доста сложно, то при стартиране може частично или напълно да загуби своята ефективност. Не се притеснявайте, това означава, че сме само на половината път и има още къде да отидем. Продължаваме да обръщаме инженерството на приложенията за Android. Да се ​​каже какво да се направи в конкретен случай, по принцип, уви, е невъзможно. Затова ще трябва да откриете проблема сами. Така че, ако прозорецът на приложението е блокиран изскачащ прозорец, тогава трябва да видите кода и да изтриете частта, която отговаря за този диалогов прозорец. Помогнете за това може да jd-gui. Както можете да видите, обратното инженерство не е лесна задача и изисква значителни знания. Дори ако всичко започна без проблеми, ще бъде необходимо да се тества работоспособността на приложението. Това е обратното инженерство все още е отнемащо време действие. Ние продължаваме да работим, докато не бъдат идентифицирани всички проблеми.

безопасност

Какво ще стане, ако трябва да защитим приложенията за Android от обратен инженеринг? В този случай има две възможности: използването на специални програми или създаването на кодова структура, която да се намесва в анализа на написаното. Последният вариант е подходящ само за опитни професионалисти, така че ще разгледаме само първия начин на защита. Като специализиран софтуер използваме ProGuard. Това приложение се използва за намаляване, затъмняване и оптимизиране на кода. Ако програмата е "пусната" през нея, тогава получаваме файл с разширение * .apk по-малък, отколкото беше. В този случай ще бъде много по-трудно да се разглобява. И предимството на тази програма е, че тя дори беше въведена в монтажната система на Android приложения с актуализацията на r9. Ето защо всеки разработчик може да го използва, който има стандартни инструменти за създаване и развитие.

заключение

защита на андроид приложения от обратната инженерствоНе може да се каже, че обратното инженерство може да бъде представено като нещо равномерно лошо или добро. Разбира се, от гледна точка на разработчиците, които създадоха приложението, това не е радостно събитие. Но от друга страна, в много случаи създаването на необходимите файлове от опитни програмисти може да бъде по-малко време от използването на такива инструменти. Макар че за начинаещи, обратното инженерство може да върши добра работа, ако няма представа как да внедрим нещо, дори приблизителни и не напълно разбираеми скици могат да помогнат за постигането на целта.

Споделяне в социалните мрежи:

сроден