Рэверс-інжынірынг для пачаткоўцаў. Абарона Android-прыкладанняў ад рэверс-інжынірынгу

Дата:

2018-08-16 20:20:12

Прагляды:

219

Рэйтынг:

1Любіць 0Непрыязнасць

Доля:

Часам хто-небудзь хоча паглядзець, а якая ж начынне ў пэўнай праграме? Тады яму даводзіцца выкарыстоўваць рэверс-інжынірынг. Што гэта такое? Як дзейнічае? Якім чынам адбываецца гэты працэс? Пра ўсё гэта вы зможаце даведацца з гэтага артыкула.

Што такое рэверс-інжынірынг праграм?

рэверс інжынірынгТак называюць працэс разбору прыкладання з мэтай зразумець, як яно працуе, каб у будучыні аднавіць гэты працэс з унясеннем неабходных змен. Звычайна для гэтых мэтаў выкарыстоўваюцца адладчык і асэмблер. У залежнасці ад якасці выкарыстоўванага праграмнага забеспячэння будуць адрознівацца вынік і колькасць часу, якое неабходна выдаткаваць на прывядзенне яго ў нармальны выгляд. Тлумачыць рэверс-інжынірынг для пачаткоўцаў лепш за ўсё на прыкладзе. У якасці гэтага выступіць дадатак, напісанае для Android. А цяпер давайце будзе даведвацца, што і як.

Праца з Android-праграмамі

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

Больш:

Lenovo v580c: падрабязны агляд

Lenovo v580c: падрабязны агляд

Сёння мы вырашылі напісаць пра ноўтбуку Lenovo v580c. Агляд будзе падрабязным, так як гэты партатыўны ПК серыі IdeaPad мае высокую папулярнасць, але не многія ведаюць, чым жа прыцягвае гэта прылада пакупнікоў. Мадэль з'яўляецца хуткай і змяшчае ў саб...

Брандмаўэр - што гэта? Стандартны абаронца ПК

Брандмаўэр - што гэта? Стандартны абаронца ПК

Брандмаўэр – што гэта такое? Карысная функцыя ў аперацыйнай сістэме або малаэфектыўныя сродак абароны? Перш чым адказаць на гэтае пытанне, нам трэба высветліць, што робіць кампутар і як правільна яго наладзіць.Агульныя звесткіДля паспяховай пра...

"Аблівіян": праходжанне гульні. Кіраўніцтва і парады па праходжанні гульні "Аблівіян"

The Elder Scrolls IV: Oblivion — ролевая гульня ад кампаніі Bethesda Games Studios. Адразу ж пасля рэлізу у 2006 годзе яна стала вельмі папулярнай. Сюжэт заснаваны на супрацьстаянні галоўнага героя і культу Прынца Разбурэння, які плануе адкрыць...

Дэкампіляцыя

Гэты працэс будзе праводзіцца з выкарыстаннем праграмы Апк Manger. Перш чым прыступаць да працы, неабходна пераканацца, што ёсць патрэбныя драйверы для працы девайса, а таксама функцыянуе рэжым USB debugging. Першапачаткова нам неабходна будзе перамясціць файл, які будзе разбірацца ў дырэктыву apk_managerplace-апк-here-for-modding. Пасля гэтага варта запусціць Script.bat. Калі ніякіх праблем няма, то запусціцца кансоль, на якой будуць зялёныя надпісы. Выбіраем пункт нумар дзевяць – «Дэкампіляваць». Пасля таго як будзе запушчаны працэс, неабходна не зачыняць кансоль. Потым варта адкрыць цікавіць апк-файл з дапамогай архіватара і атрымаць з яго classes.dex, які трэба апрацаваць праграмай dex2jar. Для неабходнага нам выніку яго трэба перамясціць на аб'ект з пашырэннем .bat. З'явіцца файл, які будзе заканчвацца на .jar. Пакуль што акно не закрываем.

Аналізуем дадзеныя

рэверс інжынірынг для пачаткоўцаўКаб атрымаць інфармацыю аб дадатку, неабходна адкрыць яго маніфест. Па яго вызначаем, што выступае ў ролі галоўнай актыўнасці. Яна-то і ўяўляе для нас цяпер найбольшую важнасць. Таксама пажадана паглядзець у самы ніз праграмы. Калі ўнізе будзе інфармацыя пра мэнэджару ліцэнзій, то гэта істотна ўскладніць правядзенне рэверснага інжынірынгу. Калі пераключыцца на jd-gui і разгарнуць дрэва, то мы ўбачым некалькі прастор імёнаў. Дапусцім, што іх тры. У першым знаходзяцца файлы, звязаныя з рэкламай. У другім будуць класы мэнэджара ліцэнзій. У трэцім знаходзяцца нам неабходныя дадзеныя. У яго-то мы і ідзем. Тут неабходна будзе знайсці і выдаліць ключ, а потым і астатнія радкі, якія правяраюць, ці з'яўляецца ліцэнзійнай якая працуе версія. Усё гэта трэба пачысціць. Потым у нашым Apk Manager шукаем месца, куды паказана размяшчаць байт-код. Цяпер зробім невялікае адступленне і закомментируем каманды, з якімі патэнцыйна могуць паўстаць праблемы. Пасля гэтага нам засталося толькі скампіляваць праграму.

Зборка прыкладання

рэверс інжынірынг android прыкладанняўУ гэтым нам дапаможа ўсё той жа Apk Manager. У акне кансолі, якое намі не зачынялася, выбіраем пункт №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

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

UK: https://tostpost.com/uk/komp-yuteri/7174-revers--nzhin-ring-dlya-pochatk-vc-v-zahist-android-dodatk-v-v-d-rever.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 - што лепш? Характарыстыкі і апісанне

У гульні «Свет танкаў» існуе вялікая колькасць разнастайных мадэляў ваеннай тэхнікі, якія адносяцца да розных галінах развіцця – нямецкай, савецкай, французскай і гэтак далей. Калі вы прапампоўваць савецкую галін...