APK Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ? ИспользованиС apktool ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π°ΠΏΠΊ Ρ„Π°ΠΉΠ»

Иногда Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прилоТСния Π½Π° Android Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π½Π΅ ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ привСсти Π½Π°Π·ΠΎΠΉΠ»ΠΈΠ²ΡƒΡŽ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ. А Ρ‚ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Ρ‚Π°ΠΊ - всСм Ρ…ΠΎΡ€ΠΎΡˆΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π² Π½Π΅ΠΉ ΠΈΠ»ΠΈ ΠΊΡ€ΠΈΠ²ΠΎΠΉ, ΠΈΠ»ΠΈ вовсС отсутствуСт. Или, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ‚Ρ€ΠΈΠ°Π»ΡŒΠ½Π°Ρ, Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ возмоТности Π½Π΅Ρ‚. Как ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ?

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ APK с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, рассмотрим Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру, дизассСмблируСм ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ внСсти Π² прилоТСния нСсколько ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ принСсти Π½Π°ΠΌ Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ Π²Ρ‹Π³ΠΎΠ΄Ρƒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС это ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ хотя Π±Ρ‹ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ знания языка Java, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΈΡˆΡƒΡ‚ΡΡ прилоТСния для Android, ΠΈ языка XML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Android повсСмСстно - ΠΎΡ‚ описания самого прилоТСния ΠΈ Π΅Π³ΠΎ ΠΏΡ€Π°Π² доступа Π΄ΠΎ хранСния строк, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° экран. Π’Π°ΠΊΠΆΠ΅ понадобится ΡƒΠΌΠ΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ со спСциализированным ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΌ софтом.

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ прСдставляСт собой ΠΏΠ°ΠΊΠ΅Ρ‚ APK, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ распространяСтся Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ вСсь софт для Android?

ДСкомпиляция ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с дизассСмблированным ΠΊΠΎΠ΄ΠΎΠΌ прилоТСния, ΠΎΠ΄Π½Π°ΠΊΠΎ Ссли Π² большиС прилоТСния Π²Π½ΠΎΡΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ измСнСния, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² ΠΊΠΎΠ΄Π΅ smali Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ слоТнСС. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ dex Π² Java-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ‚ΡŒ ΠΈ Π½Π΅ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Π½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΈΠΌ для чтСния ΠΈ понимания Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, Π½Π°ΠΌ понадобятся Π΄Π²Π° инструмСнта:

  • dex2jar - транслятор Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Dalvik Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ JVM, Π½Π° основС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ смоТСм ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° языкС Java ;
  • jd-gui - сам дСкомпилятор, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° JVM Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Java . Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Jad (www.varaneckas.com/jad); Ρ…ΠΎΡ‚ΡŒ ΠΎΠ½ ΠΈ довольно старый, Π½ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄, Π½Π΅ΠΆΠ΅Π»ΠΈ Jd-gui.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… слСдуСт Ρ‚Π°ΠΊ. Π‘Π½Π°Ρ‡Π°Π»Π° запускаСм dex2jar, указывая Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ apk-ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

% dex2jar.sh mail.apk

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ появится Java-ΠΏΠ°ΠΊΠ΅Ρ‚ mail.jar, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π² jd-gui для просмотра Java-ΠΊΠΎΠ΄Π°.

Устройство APK-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅

ΠŸΠ°ΠΊΠ΅Ρ‚ прилоТСния Android, ΠΏΠΎ сути, являСтся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ZIP-Ρ„Π°ΠΉΠ»ΠΎΠΌ, для просмотра содСрТимого ΠΈ распаковки ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… инструмСнтов Π½Π΅ трСбуСтся. Достаточно ΠΈΠΌΠ΅Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€ - 7zip для Windows ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ unzip Π² Linux. Но это Ρ‡Ρ‚ΠΎ касаСтся ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ. А Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ? Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΆΠ΅ Ρƒ нас Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС такая структура:

  • META-INF/ - содСрТит Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ сСртификат прилоТСния, ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ Π΅Π³ΠΎ создатСля, ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ суммы Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚Π°;
  • res/ - Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ рСсурсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π² своСй Ρ€Π°Π±ΠΎΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ изобраТСния, Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ описаниС интСрфСйса, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅;
  • AndroidManifest.xml - описаниС прилоТСния. Бюда Π²Ρ…ΠΎΠ΄ΠΈΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, список Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, трСбуСмая вСрсия Android ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ экрана;
  • classes.dex - ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ прилоТСния для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Dalvik;
  • resources.arsc - Ρ‚ΠΎΠΆΠ΅ рСсурсы, Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° - Π² частности, строки (Π΄Π°-Π΄Π°, этот Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для русификации!).

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π΅ΡΡ‚ΡŒ Ссли Π½Π΅ Π²ΠΎ всСх, Ρ‚ΠΎ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π² Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ APK. Однако стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ Π΅Ρ‰Π΅ нСсколько Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ распространСнных Ρ„Π°ΠΉΠ»ΠΎΠ²/ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²:

  • assets - Π°Π½Π°Π»ΠΎΠ³ рСсурсов. ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ - для доступа ΠΊ рСсурсу Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, список asset’ов ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ динамичСски, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ AssetManager.list() Π² ΠΊΠΎΠ΄Π΅ прилоТСния;
  • lib - Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Linux-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, написанныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NDK (Native Development Kit).

Π­Ρ‚ΠΎΡ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΈΠ³Ρ€, помСщая Ρ‚ΡƒΠ΄Π° Π΄Π²ΠΈΠΆΠΎΠΊ ΠΈΠ³Ρ€Ρ‹, написанный Π½Π° C/C++, Π° Ρ‚Π°ΠΊΠΆΠ΅ создатСли Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Google Chrome). Π‘ устройством Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ. Но ΠΊΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сам Ρ„Π°ΠΉΠ» ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅Π³ΠΎ прилоТСния? ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π΅Π· Ρ€ΡƒΡ‚Π° с устройства Π·Π°Π±Ρ€Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ APK Π½Π΅ прСдставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ (ΠΎΠ½ΠΈ Π»Π΅ΠΆΠ°Ρ‚ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /data/app), Π° Ρ€ΡƒΡ‚ΠΈΡ‚ΡŒ Π½Π΅ всСгда цСлСсообразно, имССтся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Ρ€ΠΈ способа ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» прилоТСния Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€:

  • Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ APK Downloader для Chrome ;
  • ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Real APK Leecher ;
  • Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½ΠΈΠΊΠΈ ΠΈ Π²Π°Ρ€Π΅Π·Π½ΠΈΠΊΠΈ.

Какой ΠΈΠ· Π½ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ - Π΄Π΅Π»ΠΎ вкуса; ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ прилоТСния, поэтому опишСм использованиС Real APK Leecher, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‚ΠΎ написан ΠΎΠ½ Π½Π° Java ΠΈ, соотвСтствСнно, Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ‚ΡŒ Π² Π²ΠΈΠ½Π΄Π΅, Ρ…ΠΎΡ‚ΡŒ Π² никсах.

ПослС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Ρ€ΠΈ поля: Email, Password ΠΈ Device ID - ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ язык. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° - e-mail ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Ρ‚Π²ΠΎΠ΅Π³ΠΎ Π³ΡƒΠ³Π»ΠΎΠ°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ Π½Π° устройствС. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΆΠ΅ являСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ устройства, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π½Π°Π±Ρ€Π°Π² Π½Π° Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ½Π°Π±ΠΈΡ€Π°Ρ‚Π΅Π»Π΅ ΠΊΠΎΠ΄ # #8255## ΠΈ Π·Π°Ρ‚Π΅ΠΌ найдя строку Device ID. ΠŸΡ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π°Π΄ΠΎ ввСсти Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ID Π±Π΅Π· прСфикса android-.

ПослС заполнСния ΠΈ сохранСния Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ выскакиваСт сообщСниС Β«Error while connecting to serverΒ». Оно Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ Google Play, поэтому смСло Π΅Π³ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠΉ ΠΈ ΠΈΡ‰ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ тСбя ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈ модификация

Допустим, Ρ‚Ρ‹ нашСл ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ тСбя ΠΏΠ°ΠΊΠ΅Ρ‚, скачал, распаковал… ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ просмотра ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ XML-Ρ„Π°ΠΉΠ»Π° с ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π½Π΅ тСкстовый. Π§Π΅ΠΌ ΠΆΠ΅ Π΅Π³ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ? НСуТСли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ SDK? НСт, SDK ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ вовсС Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. На самом Π΄Π΅Π»Π΅ для всСх шагов ΠΏΠΎ распаковкС, ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² APK Π½ΡƒΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ инструмСнты:

  • Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€ ZIP для распаковки ΠΈ Π·Π°ΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ;
  • smali - ассСмблСр/дизассСмблСр Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Dalvik (code.google.com/p/smali);
  • aapt - инструмСнт для Π·Π°ΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ рСсурсов (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ рСсурсы хранятся Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прилоТСния). Π’Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав Android SDK, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ;
  • signer - инструмСнт для Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° (bit.ly/Rmrv4M).

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС эти инструмСнты ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½ΠΎ это Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ, поэтому Π»ΡƒΡ‡ΡˆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ высокоуровнСвым софтом, построСнным Π½Π° ΠΈΡ… основС. Если Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΡˆΡŒ Π² Linux ΠΈΠ»ΠΈ Mac OS X, Ρ‚ΠΎ Ρ‚ΡƒΡ‚ Π΅ΡΡ‚ΡŒ инструмСнт ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ apktool . Он позволяСт Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ рСсурсы Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ (Π² Ρ‚ΠΎΠΌ числС Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ XML- ΠΈ arsc-Ρ„Π°ΠΉΠ»Ρ‹), ΠΏΠ΅Ρ€Π΅ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ рСсурсами, Π½ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ signer придСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° написана Π½Π° Java, Π΅Π΅ установка достаточно нСстандартна. Π‘Π½Π°Ρ‡Π°Π»Π° слСдуСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сам jar-Ρ„Π°ΠΉΠ»:

$ cd /tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$ mv apktool.jar ~/bin $ mv apktool-install-linux-r05-ibot/* ~/bin $ export PATH=~/bin:$PATH

Если ΠΆΠ΅ Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΡˆΡŒ Π² Windows, Ρ‚ΠΎ для Π½Π΅Π΅ Π΅ΡΡ‚ΡŒ прСвосходный инструмСнт ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌVirtuous Ten Studio , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π² сСбС всС эти инструмСнты (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ сам apktool), Π½ΠΎ вмСсто CLI-интСрфСйса прСдоставляСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный графичСский интСрфСйс, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ распаковкС, Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ дСкомпиляции Π² нСсколько ΠΊΠ»ΠΈΠΊΠΎΠ². Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ этот Donation-ware, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ окошки с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ, Π½ΠΎ это, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ. ΠžΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ смысла, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² интСрфСйсС ΠΌΠΎΠΆΠ½ΠΎ Π·Π° нСсколько ΠΌΠΈΠ½ΡƒΡ‚. А Π²ΠΎΡ‚ apktool, вслСдствиС Π΅Π³ΠΎ консольной ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹, слСдуСт ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.


Рассмотрим ΠΎΠΏΡ†ΠΈΠΈ apktool. Если Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅, Ρ‚ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: d (decode), b (build) ΠΈ if (install framework). Если с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ двумя ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ всС понятно, Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ, условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€? Она распаковываСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ UI-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Ρ‚Ρ‹ ΠΏΡ€Π΅ΠΏΠ°Ρ€ΠΈΡ€ΡƒΠ΅ΡˆΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ систСмный ΠΏΠ°ΠΊΠ΅Ρ‚.

Рассмотрим Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсныС ΠΎΠΏΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

  • -s - Π½Π΅ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ dex;
  • -r - Π½Π΅ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ рСсурсы;
  • -b - Π½Π΅ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ дизассСмблирования Ρ„Π°ΠΉΠ»Π° dex;
  • --frame-path - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ UI-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ вмСсто встроСнного Π² apktool. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΏΠ°Ρ€Ρƒ ΠΎΠΏΡ†ΠΈΠΉ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ b:
  • -f - форсированная сборка Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ;
  • -a - ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ ΠΊ aapt (срСдство для сборки APK-Π°Ρ€Ρ…ΠΈΠ²Π°), Ссли Ρ‚Ρ‹ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Ρ…ΠΎΡ‡Π΅ΡˆΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ источника.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ apktool ΠΎΡ‡Π΅Π½ΡŒ просто, для этого достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ APK, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ apktool d mail.apk

ПослС этого Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ mail появятся всС ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΈ дизассСмблированныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ΠŸΡ€Π΅ΠΏΠ°Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ

ВСория - это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π°, Ссли ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с распакованным ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ? ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ с пользой для сСбя, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠ°ΠΊΡƒΡŽ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ софтину Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»Π° Π½Π°ΠΌ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΏΡƒΡΡ‚ΡŒ это Π±ΡƒΠ΄Π΅Ρ‚ Virtual Torch - Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΊΠ΅Π». Для нас эта софтина ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ идСально, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΠ΄ завязку Π½Π°Π±ΠΈΡ‚Π° Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅ΠΉ Ρ€Π΅ΠΊΠ»Π°ΠΌΠΎΠΉ ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ достаточно проста, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒΡΡ Π² дСбрях ΠΊΠΎΠ΄Π°.


Π˜Ρ‚Π°ΠΊ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… способов скачай ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚Π° . Если Ρ‚Ρ‹ Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Virtuous Ten Studio, просто ΠΎΡ‚ΠΊΡ€ΠΎΠΉ APK-Ρ„Π°ΠΉΠ» Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈ распакуй Π΅Π³ΠΎ, для Ρ‡Π΅Π³ΠΎ создай ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (File -> New project), Π·Π°Ρ‚Π΅ΠΌ Π² контСкстном мСню ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹Π±Π΅Ρ€ΠΈ Import File. Если ΠΆΠ΅ Ρ‚Π²ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΏΠ°Π» Π½Π° apktool, Ρ‚ΠΎ достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ apktool d com.kauf.particle.virtualtorch.apk

ПослС этого Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ com.kauf.particle.virtualtorch появится Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ, ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° описанноС Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅, Π½ΠΎ с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ smali вмСсто dex-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠΌ apktool.yml. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ содСрТит дизассСмблированный ΠΊΠΎΠ΄ исполняСмого dex-Ρ„Π°ΠΉΠ»Π° прилоТСния, Π²Ρ‚ΠΎΡ€ΠΎΠΉ - ΡΠ»ΡƒΠΆΠ΅Π±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ apktool для сборки ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ мСсто, ΠΊΡƒΠ΄Π° ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ, - это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, AndroidManifest.xml. И здСсь ΠΌΡ‹ сразу встрСчаСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку:

НСтрудно Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° прСдоставлСниС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ Π½Π° использованиС ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-соСдинСния. По сути, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ просто ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹, Π½Π°ΠΌ, скорСС всСго, достаточно Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. ΠŸΠΎΠΏΡ‹Ρ‚Π°Π΅ΠΌΡΡ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. УдаляСм ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ строку ΠΈ ΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ софтину с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ apktool:

$ apktool b com.kauf.particle.virtualtorch

Π’ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ com.kauf.particle.virtualtorch/build/ появится Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ APK-Ρ„Π°ΠΉΠ». Однако ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π΅ получится, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм Ρ„Π°ΠΉΠ»ΠΎΠ² (Π² Π½Π΅ΠΌ просто Π½Π΅Ρ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° META-INF/). ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ apk-signer. Запустили. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ состоит ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΊΠ»Π°Π΄ΠΎΠΊ - Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΉ (Key Generator) создаСм ΠΊΠ»ΡŽΡ‡ΠΈ, Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ (APK Signer) подписываСм. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ наш ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡, заполняСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля:

  • Target File - Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ» Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ; Π² Π½Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранится ΠΎΠ΄Π½Π° ΠΏΠ°Ρ€Π° ΠΊΠ»ΡŽΡ‡Π΅ΠΉ;
  • Password ΠΈ Confirm - ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°;
  • Alias - имя ΠΊΠ»ΡŽΡ‡Π° Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅;
  • Alias password ΠΈ Confirm - ΠΏΠ°Ρ€ΠΎΠ»ΡŒ сСкрСтного ΠΊΠ»ΡŽΡ‡Π°;
  • Validity - срок дСйствия (Π² Π³ΠΎΠ΄Π°Ρ…). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ.

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ поля, Π² ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ - Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄Π½ΠΎ.


WARNING

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ apk-signer, Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Android SDK ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Π½Π΅Π³ΠΎ Π² настройках прилоТСния.

Вся информация прСдоставлСна ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… цСлях. Ни рСдакция, Π½ΠΈ Π°Π²Ρ‚ΠΎΡ€ Π½Π΅ нСсут отвСтствСнности Π·Π° любой Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΉ Π²Ρ€Π΅Π΄, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ этим ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ APK. На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ APK Signer Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ сгСнСрированный Ρ„Π°ΠΉΠ», Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, алиас ΠΊΠ»ΡŽΡ‡Π° ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΊ Π½Π΅ΠΌΡƒ, Π·Π°Ρ‚Π΅ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Ρ„Π°ΠΉΠ» APK ΠΈ смСло ΠΆΠΌΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«SignΒ». Если всС ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΏΠ°ΠΊΠ΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ подписан.

INFO

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ подписали ΠΏΠ°ΠΊΠ΅Ρ‚ нашим собствСнным ΠΊΠ»ΡŽΡ‡ΠΎΠΌ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ софтину Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Цифровая подпись Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стороннСму софту, поэтому Ссли Ρ‚Ρ‹ занимаСшься ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ систСмных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /system/app/, Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

ПослС этого скидываСм ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π° смартфон, устанавливаСм ΠΈ запускаСм. Вуаля, Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° ΠΏΡ€ΠΎΠΏΠ°Π»Π°! ВмСсто Π½Π΅Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, появилось сообщСниС, Ρ‡Ρ‚ΠΎ Ρƒ нас Π½Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. По ΠΈΠ΄Π΅Π΅, этого ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹ ΠΈ Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ, Π½ΠΎ сообщСниС выглядит Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅, Π΄Π° ΠΈ, Ссли чСстно, Π½Π°ΠΌ просто ΠΏΠΎΠ²Π΅Π·Π»ΠΎ с Ρ‚ΡƒΠΏΡ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ написанная софтина, скорСС всСго, ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ свои полномочия ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-соСдинСния ΠΈ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС просто откаТСтся Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ. Как Π±Ρ‹Ρ‚ΡŒ Π² этом случаС? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ классы для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ этих классов Π²ΠΎ врСмя запуска прилоТСния ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π΅Π³ΠΎ «активностСй» (ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ говоря, экранов прилоТСния). ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ эти классы. ИдСм Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ smali, Π΄Π°Π»Π΅Π΅ com (Π² org Π»Π΅ΠΆΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ открытая графичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° cocos2d), Π΄Π°Π»Π΅Π΅ kauf (ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΡƒΠ΄Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это имя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈ Ρ‚Π°ΠΌ Π»Π΅ΠΆΠΈΡ‚ вСсь Π΅Π³ΠΎ ΠΊΠΎΠ΄) - ΠΈ Π²ΠΎΡ‚ ΠΎΠ½, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ marketing. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊΡƒΡ‡Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ smali. Π­Ρ‚ΠΎ классы, ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»Π΅Π½ ΠΈΠ· Π½ΠΈΡ… класс Ad.smali, ΠΏΠΎ названию ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ.

ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΡƒΠΏΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π»ΡŽΠ±Ρ‹Ρ… Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ· самого прилоТСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° marketing ΠΈ ΠΈΠ΄Π΅ΠΌ Π² сосСдний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ particle, Π° Π·Π°Ρ‚Π΅ΠΌ Π² virtualtorch. Особого внимания здСсь заслуТиваСт Ρ„Π°ΠΉΠ» MainActivity.smali. Π­Ρ‚ΠΎ стандартный для Android класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСтся Android SDK ΠΈ устанавливаСтся Π² качСствС Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π°Π½Π°Π»ΠΎΠ³ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main Π² Π‘ΠΈ). ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» Π½Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π’Π½ΡƒΡ‚Ρ€ΠΈ находится ΠΊΠΎΠ΄ smali (мСстный ассСмблСр). Он довольно Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΉ для чтСния Π² силу своСй Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹, поэтому ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ, Π° просто Π½Π°ΠΉΠ΄Π΅ΠΌ всС упоминания класса Ad Π² ΠΊΠΎΠ΄Π΅ ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΡ…. Π’Π±ΠΈΠ²Π°Π΅ΠΌ строку Β«AdΒ» Π² поискС ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ Π½Π° строку 25:

Field private ad:Lcom/kauf/marketing/Ad;

Π—Π΄Π΅ΡΡŒ создаСтся ΠΏΠΎΠ»Π΅ ad для хранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Ad. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ установки Π·Π½Π°ΠΊΠ° ### ΠΏΠ΅Ρ€Π΅Π΄ строкой. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ поиск. Π‘Ρ‚Ρ€ΠΎΠΊΠ° 423:

New-instance v3, Lcom/kauf/marketing/Ad;

Π—Π΄Π΅ΡΡŒ происходит созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ поиск ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² строках 433, 435, 466, 468, 738, 740, 800 ΠΈ 802 обращСния ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ класса Ad. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ. Π’Ρ€ΠΎΠ΄Π΅ всС. БохраняСм. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹. Для чистоты экспСримСнта Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ· AndroidManifest.xml строку, собираСм ΠΏΠ°ΠΊΠ΅Ρ‚, подписываСм ΠΈ устанавливаСм.

Наш ΠΏΠΎΠ΄ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ ΠΊΡ€ΠΎΠ»ΠΈΠΊ. Π’ΠΈΠ΄Π½Π° Ρ€Π΅ΠΊΠ»Π°ΠΌΠ°

Оп-ΠΏΠ°! Π Π΅ΠΊΠ»Π°ΠΌΠ° ΠΏΡ€ΠΎΠΏΠ°Π»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, Π½ΠΎ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΠΎΠ³Π΄Π° запускаСм софтину. Π’Π°ΠΊ, ΠΏΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, Π½ΠΎ вСдь Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° - это класс MainActivity, Π° Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° ΠΏΡ€ΠΎΠΏΠ°Π»Π° Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, Π½ΠΎ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню, Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° другая? Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΈΠ½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π°, вновь ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» AndroidManifest.xml. И Π΄Π°, Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

Они говорят Π½Π°ΠΌ (ΠΈ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½Π΅Π΅, Π°Π½Π΄Ρ€ΠΎΠΈΠ΄Ρƒ) ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Start Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ½Ρ‚Π΅Π½Ρ‚Π° (события) android.intent.action.MAIN ΠΈΠ· ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ android.intent.category.LAUNCHER. Π­Ρ‚ΠΎ событиС гСнСрируСтся ΠΏΡ€ΠΈ Ρ‚Π°ΠΏΠ΅ Π½Π° ΠΈΠΊΠΎΠ½ΠΊΡƒ прилоТСния Π² Π»Π°Π½Ρ‡Π΅Ρ€Π΅, поэтому ΠΎΠ½ΠΎ ΠΈ опрСдСляСт Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ…ΠΎΠ΄Π°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ класс Start. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, программист сначала написал ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню, Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π» стандартный класс MainActivity, Π° Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ), содСрТащСС мСню ΠΈ описанноС Π² классС Start, ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ сдСлал Π΅Π³ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π°.

ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» Start.smali ΠΈ вновь ΠΈΡ‰Π΅ΠΌ строку Β«AdΒ», Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² строках 153 ΠΈ 155 ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ класса FirstAd. Он Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π² исходниках ΠΈ, судя ΠΏΠΎ названию, ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠΎΠΊΠ°Π· объявлСний Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ дальшС, ΠΈΠ΄Π΅Ρ‚ созданиС экзСмпляра класса FirstAd ΠΈ ΠΈΠ½Ρ‚Π΅Π½Ρ‚Π°, ΠΏΠΎ контСксту ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ этому экзСмпляру, Π° дальшС ΠΌΠ΅Ρ‚ΠΊΠ° cond_10, условный ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ осущСствляСтся Π°ΠΊΠΊΡƒΡ€Π°Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ созданиСм экзСмпляра класса:

If-ne p1, v0, :cond_10 .line 74 new-instance v0, Landroid/content/Intent; ... :cond_10

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ случайном ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ вычисляСт, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΠ»Π°ΠΌΡƒ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ экранС, ΠΈ, Ссли Π½Π΅Ρ‚, пСрСскакиваСт сразу Π½Π° cond_10. Ок, упростим Π΅ΠΉ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ условный ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° бСзусловный:

#if-ne p1, v0, :cond_10 goto:cond_10

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ FirstAd Π² ΠΊΠΎΠ΄Π΅ Π½Π΅Ρ‚, поэтому Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ» ΠΈ вновь собираСм наш Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΊΠ΅Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ apktool. ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Π½Π° смартфон, устанавливаСм, запускаСм. Вуаля, вся Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° исчСзла, с Ρ‡Π΅ΠΌ нас всСх ΠΈ поздравляСм.

Π˜Ρ‚ΠΎΠ³ΠΈ

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ лишь ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ вскрытия ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π—Π° ΠΊΠ°Π΄Ρ€ΠΎΠΌ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ вопросы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ снятиС Π·Π°Ρ‰ΠΈΡ‚Ρ‹, Ρ€Π°Π·Π±ΠΎΡ€ обфусцированного ΠΊΠΎΠ΄Π°, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΈ Π·Π°ΠΌΠ΅Π½Π° рСсурсов прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ модификация ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, написанных с использованиСм Android NDK. Однако, имСя Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСм этом - лишь вопрос Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Из этой ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΈΠ· Ρ‡Π΅Π³ΠΎ состоит ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Π°Π½Π΄Ρ€ΠΎΠΈΠ΄, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ APK Ρ„Π°ΠΉΠ» ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ APK Ρ„Π°ΠΉΠ»?

APK - Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Android, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉΡΡ для Π°Ρ€Ρ…ΠΈΠ²Π½Ρ‹Ρ… исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ²-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ самого Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ, Π° Π²ΠΎΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²Ρ‹Π³Π»ΡΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΊ.apk. Аналогами APK Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ОБ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² Windows .msi, Π² Symbian - .sis, Π² Linux - .rpm ΠΈΠ»ΠΈ.deb.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΠΌ Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ
По сути.apk это ZIP Π°Ρ€Ρ…ΠΈΠ², поэтому ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ устройство ΠΌΠΎΠΆΠ½ΠΎ воспользовавшись Π»ΡŽΠ±Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ WinRAR ΠΈΠ»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ X-plore.




ΠŸΡ€ΠΈ этом стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ лишь Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ доступ ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ рСсурсам, возмоТности рСдактирования ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹.

Рассмотрим структуру
Π’Π½ΡƒΡ‚Ρ€ΠΈ.apk ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ ряд Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°ΠΏΠΎΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ·Π½Π°Π΅ΠΌ для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ слуТат:

  • AndroidManifest.xml - это своСго Ρ€ΠΎΠ΄Π° "паспорт" прилоТСния ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ всС основныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, трСбования, Π²Π΅Ρ€ΡΠΈΡŽ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅.
  • META-INF этот Ρ„Π°ΠΈΠ» содСрТит ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ суммы, ΠΏΡƒΡ‚ΠΈ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, ΠΏΡƒΡ‚ΠΈ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ суммы рСсурсов, сСртификаты. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот Ρ„Π°ΠΈΠ» ΠΌΠΎΠΆΠ½ΠΎ Π»ΡŽΠ±Ρ‹ΠΌ тСкстовым Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ, Π½ΠΎ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Notepad++.
  • Папка res содСрТит всС рСсурсы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, графичСскиС, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΈΠΊΠΎΠ½ΠΊΠΈ, ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, тСкстовыС, элСмСнты графичСского интСрфСйса. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π°.
  • classes.dex - нСпосрСдствСнный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ прилоТСния, выполняСмый Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Dalvik VM, ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ этого Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ лишь Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π².apk, ΠΎΠ± этом ΠΌΡ‹ расскаТСм Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ…. resources.arsc -скомпилированный Ρ„Π°ΠΉΠ» XML, Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΈΠ» содСрТит Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ всСх рСсурсах задСйствованных Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.
  • lib - ΠΏΠ°ΠΏΠΊΠ° с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ рСсурсам ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ лишь ΠΏΡ€ΠΈ использовании спСциализированных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Π°ΠΊ ΠΆΠ΅ Π² APK ΠΌΠΎΠ³ΡƒΡ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ ΠΊΠ°ΠΊ com, org, udk, Π½ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ для этого Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для дСкомпиляции, Java ΠΈ АПК-Ρ„Π°ΠΉΠ». ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ инструмСнтом для Ρ€Π°Π·Π±ΠΎΡ€ΠΊΠΈ.apk являСтся Apktool, Π½ΠΎ данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со строки, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Для Π±ΠΎΠ»Π΅Π΅ быстрого ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ APKing, это всС Ρ‚Π° ΠΆΠ΅ Apktool, Π½ΠΎ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ· контСкстного мСню.


И Ρ‚Π°ΠΊ устанавливаСм APKing ΠΊΠ°ΠΊ любоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для Windows ΠΈ Π²Ρ‹Π±Ρ€Π°Π².apk Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° Π½Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠΉ клавишСй ΠΌΡ‹ΡˆΠΈ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Shift, послС Ρ‡Π΅Π³ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:



И Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ дСйствиС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Π΄Π°Π»Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈ создат ΠΏΠ°ΠΏΠΊΡƒ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ.



ΠžΡ‚ΠΊΡ€Ρ‹Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ доступ ΠΊΠΎ всСм рСсурсам АПК Ρ„Π°ΠΉΠ»Π°.



Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΡ€ΠΈ этом соблюдая основныС ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Notepad++, для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим AndroidManifest.xml

Π― ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π» ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ SmartAPKTool. Оно ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ, Π·Π°ΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ apk-Ρ„Π°ΠΉΠ»Ρ‹. Π•Ρ‘ достоинством являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ графичСского интСрфСйса. Однако Π΅ΡΡ‚ΡŒ ΠΈ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹ΠΉ нСдостаток. SmartAPKTool Π΄Π°Π²Π½ΠΎ Π½Π΅ обновлялся, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ распаковываСт ΠΈ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ прилоТСния для свСТих вСрсий Android. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ здСсь я ΠΏΠΎΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для этих Ρ†Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ apktool .

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1.
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ SmartAPKTool ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для подписи собранных apk-Ρ„Π°ΠΉΠ»ΠΎΠ².
Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2.
Бсылки Π½Π° упомянутыС Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ находятся ↓

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° apktool Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ графичСского интСрфСйса. Π­Ρ‚ΠΎ являСтся минусом для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкой. Но Π΅ΡΡ‚ΡŒ ΠΈ плюс: Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ SmartAPKTool, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ всС ошибки, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Π±ΡƒΠ΄Π΅ΠΌ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ.

Π‘ΠΊΠ°Ρ‡Π°Π΅ΠΌ Π΄Π²Π° Π°Ρ€Ρ…ΠΈΠ²Π°: ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ‰ΠΈΠΉ для всСх систСм, Π΄Ρ€ΡƒΠ³ΠΎΠΉ для нашСй систСмы (Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ - Windows):

РаспакуСм ΠΎΠ±Π° Π°Ρ€Ρ…ΠΈΠ²Π° Π² ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ (Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ C:\apktool\ ). Π•Ρ‘ содСрТимоС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΈΠΌ:

Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ apktool .

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 3.
ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… вСрсий Linux Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ia32-libs:

sudo apt-get install ia32-libs

Π’ эту ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΡƒ ΠΌΡ‹ ΠΊΠ»Π°Π΄Ρ‘ΠΌ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ. НапримСр, ΠΏΡƒΡΡ‚ΡŒ ΠΎΠ½ назвыаСтся orig.apk
НаТав ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Shift ΠΈ удСрТивая Π΅Ρ‘, Ρ‰Ρ‘Π»ΠΊΠ°Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π½Π° любом пустом пространствС ΠΏΠ°ΠΏΠΊΠΈ (Ρ‰Ρ‘Π»ΠΊΠ°Ρ‚ΡŒ Π½Π΅ ΠΏΠΎ Ρ„Π°ΠΉΠ»Π°ΠΌ!). ПослС этого Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ β€žΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄β€œ. Π’ появившСйся консоли Π½Π°Π±ΠΈΡ€Π°Π΅ΠΌ :

apktool decode orig.apk

Π€Π°ΠΉΠ» распакуСтся:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ C:\apktool\ Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° с распакованным ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. НазываСтся ΠΎΠ½Π° Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ исходный Ρ„Π°ΠΉΠ», Π·Π° Π²Ρ‹Ρ‡Π΅Ρ‚ΠΎΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ: C:\apktool\orig\ . ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ΅Π½ΡΡ‚ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ описано Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Android: ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π²Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… прилоТСния Π½Π° ΠΎΠ΄ΠΈΠ½ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ . ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ сдСлали измСнСния, собСрём копию прилоТСния, Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Π² исходныС Ρ„Π°ΠΉΠ»Ρ‹ Π² apk:

apktool build orig result.apk

Π—Π΄Π΅ΡΡŒ result.apk - имя Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ для Π±ΠΈΠ»Π΄Π° ΠΊΠΎΠΏΠΈΠΈ. Если ошибок Π½Π΅Ρ‚, Ρ‚ΠΎ Ρ„Π°ΠΉΠ» собСрётся:

ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ Ρ‚Π΅ΠΌΡ‹ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

  1. Если ΠΏΡ€ΠΈ сборкС Π±ΡƒΠ΄ΡƒΡ‚ ошибки, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ.
  2. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ Ρ„Π°ΠΉΠ» result.apk . Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SmartAPKTool, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅; Π² Π½Ρ‘ΠΌ всё ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятно. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ способы ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ apk-Ρ„Π°ΠΉΠ».
  3. ΠŸΡ€ΠΈ установкС ΠΊΠΎΠΏΠΈΠΈ, ΠΏΡ€ΠΈ Π΅Ρ‘ запускС ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ошибки. Π˜Ρ… Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ adb , входящСй Π² состав Android SDK.

ΠŸΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π°Π΄ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΎ Π½Π΅ установится. Ошибки ΠΆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π½Π΅ Ρ‚Π°ΠΊ часто, ΠΈ самыС распространённыС Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ описаны Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅

Π’ процСссС использования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ для Android-устройств ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ систСмныС прилоТСния, встроСнныС Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим этот вопрос.

ЕстСствСнно, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ систСмный APK-Ρ„Π°ΠΉΠ» Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΊΠ°ΠΊ слСдуСт ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся пошагово, Ρ‡Ρ‚ΠΎ для этого Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½ΡƒΠΆΠ½ΠΎ произвСсти процСсс дСодСксирования систСмных APK-Ρ„Π°ΠΉΠ»ΠΎΠ². О Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΡ‹ расскаТСм Π² .

Π˜Ρ‚Π°ΠΊ, .apk-Ρ„Π°ΠΉΠ» Π±Ρ‹Π» дСодСксирован ΠΈ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½. Π Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅Π΅ нас ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, пускай ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΡΠΈΡ‚ΡŒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, для наглядности ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, framework - res . apk . Π’ Π³ΠΎΠ»ΠΎΠ²Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Допустим, всС Π½ΡƒΠΆΠ½Ρ‹Π΅ измСнСния Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΡ‹ внСсли. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ всСх аспСктах APK-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² . Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Π“ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ Π² ΡƒΠΌΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 2.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ объясним, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π² ΡƒΠΌΠ΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ прилоТСния ΠΊΠ°ΠΊ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ 2. Π‘ΠΎΠ±Ρ€Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ApkTool (ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ графичСского Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π²Ρ€ΠΎΠ΄Π΅ SmartApkTool) ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Π½ΠΎ это Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ВыполняСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:

Π‘ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² APK достаточно просто. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ apktool с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ„Π»Π°Π³ΠΎΠΌ сборки ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ с Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π²Π½ΡƒΡ‚Ρ€ΠΈ. НапримСр, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΏΠΊΠ° app, которая Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎ ΠΈ apktool, Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Shell

java -jar apktool.jar b app

java - jar apktool .jar b app

ПослС сборки Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ APK Ρ„Π°ΠΉΠ» Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ app/build . Π”Π°Π»Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ APK. ДСлаСтся это для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Π½Π° устройствах, Π³Π΄Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠ°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, запуск нСподписанных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Ρ‚Π°ΠΊΠΈΡ… устройствах Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅, ΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… сСртификатах ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ подписывания Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь.

ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΎΡ‡Π΅Π½ΡŒ просто: для этого Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ signapk . Π•Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² сначала сСртификаты, Π·Π°Ρ‚Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΡƒΡ‚ΡŒ для подписанного прилоТСния (Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΊΡƒΠ΄Π° ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ). Выглядит это ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Shell

java -jar signapk.jar testkey.x509.pem testkey.pk8 *.apk apk_signed.apk

java - jar signapk .jar testkey .x509 .pem testkey .pk8 * .apk apk_signed .apk

Π“Π΄Π΅ ΠΆΠ΅ Π²Π·ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ сСртификат, спроситС Π’Ρ‹? Π‘Π΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Π›ΠΈΠ±ΠΎ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ самому. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΎ настройкС ΠΈ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ всСх Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, .

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, дСкомпиляция ΠΈ сборка APK Ρ„Π°ΠΉΠ»ΠΎΠ² достаточно простой процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, облСгчая Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. Π‘Π°ΠΌΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина Dalvik Ρ‚Π°ΠΊΠΆΠ΅ проста Π² освоСнии ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π°, Ρ‡Ρ‚ΠΎ, с ΠΎΠ΄Π½ΠΎΠΉ стороны, сниТаСт ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², с Π΄Ρ€ΡƒΠ³ΠΎΠΉ – являСтся основной ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ большого ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° пиратства ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Android. ΠžΡ‚Ρ‡Π°ΡΡ‚ΠΈ поэтому Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ³Ρ€ Π² основном Π½Π΅ заинтСрСсованы Π² выпускС интСрСсных ΠΈΠ³Ρ€ с ΡΡŽΠΆΠ΅Ρ‚ΠΎΠΌ. Намного Π²Ρ‹Π³ΠΎΠ΄Π½Π΅Π΅ ΠΏΡ€ΠΈ Π½Ρ‹Π½Π΅ΡˆΠ½Π΅ΠΌ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠ»Π΅ΠΏΠ°Ρ‚ΡŒ ΠΏΠΎΡ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π° Ρ„Π΅Ρ€ΠΌΡ‹ с Π΄ΠΎΠ½Π°Ρ‚ΠΎΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΏΠΎΠΊΡƒΠΏΠ°Π΅ΠΌ прилоТСния, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ интСрСсный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚. А Π²ΠΎΡ‚ Π΄ΠΎΠ½Π°Ρ‚ΠΈΡ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ!

ВсСм спасибо, Π΄ΠΎ Π½ΠΎΠ²Ρ‹Ρ… встрСч.

  • Π Π°Π·Π΄Π΅Π»Ρ‹ сайта