Как ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для виндовс Π½Π° Π°Π½Π΄Ρ€ΠΎΠΈΠ΄. ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ способ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Android прилоТСния

Π‘Ρ‹Π²Π°Π΅Ρ‚ послС Ρ€Π΅Π»ΠΈΠ·Π° прилоТСния Π΅Π³ΠΎ исходники ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ Π΄Π΅Π²Π°ΡŽΡ‚ΡΡ. ΠŸΡ€Π°Π²Π΄Π° вСдь, Ρ‚Π°ΠΊΠΎΠ΅ постоянно случаСтся? И Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ остаСтся ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ нСсколько сотСн строк ΠΊΠΎΠ΄Π° ΠΈ всС это Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ максимально быстро.

Π’ΠΎΡ‚ ΠΈ Ρƒ мСня появилась Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ имСя всСго лишь Π΅Π³ΠΎ apk. И Ρ‚Π΅, ΠΊΡ‚ΠΎ занимался дСкомпиляциСй ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π½Π°ΡŽΡ‚ насколько тяТСло Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ДСкомпиляция

Для Android"Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹:
  • ApkTool для дСкомпиляции рСсурсов.
  • Dex2Jar для прСобразования dex Π² jar.
  • JD-GUI для получСния исходников ΠΈΠ· jar.
  • Π΅Ρ‰Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ JAD , Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ мСста Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‡Π΅ΠΌ JD-GUI.
Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΈΡ… использованию Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ достаточно.

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

На этом ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ экспСримСнты с дСкомпиляциСй, Π½ΠΎ лСнь Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ прогрСсса ΠΈ родился Π½ΠΎΠ²Ρ‹ΠΉ способ.

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ классов

Π˜Ρ‚Π°ΠΊ, jar это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Ρ‚Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ просто Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ? КидаСм Π΅Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ libs, наслСдуСмся ΠΎΡ‚ Π³Π»Π°Π²Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ. ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ‡Ρ‚ΠΎΠ± Π½Π΅ совпадали ΠΈΠΌΠ΅Π½Π° классов, поэтому названия ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΈΠ½Π°Ρ‡Π΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ совпадут сгСнСрированныС BuildConfig ΠΈ R.

Π’Π°ΠΊΠΈΠΌ способом ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Activity, Service, BroadcastReceiver ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… классов ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹Ρ… Π² манифСстС, Ρ‚Π°ΠΊ ΠΆΠ΅ Π² манифСстС Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° классов, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово final Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠΆΠ΅, поэтому ΠΈΠ΄Π΅ΠΌ дальшС.

Π—Π°ΠΌΠ΅Π½Π° классов

Π Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π² jar Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ class Ρ„Π°ΠΉΠ»Ρ‹, это скомпилированныС классы, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΠ°ΠΏΠΊΠ΅ bin/classes Π»Π΅ΠΆΠ°Ρ‚ Ρ‚Π΅ ΠΆΠ΅ class Ρ„Π°ΠΉΠ»Ρ‹, Π° Ρ‡Ρ‚ΠΎ Ссли ΠΏΠΎΠ΄ΡΡƒΠ½ΡƒΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· библиотСки…

НС всС Ρ‚Π°ΠΊ просто, для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классы исходного прилоТСния Π½ΡƒΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ДСлаСтся это просто: ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ libs Эклипс сам экспортируСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, поэтому ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ jar Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² ΠΏΠ°ΠΏΠΊΡƒ lib ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Π² ЭклипсС это Project->Preferences->Java Build Path->Libraries->Add Jars… Π΄Π°Π»Π΅Π΅ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Order and Export Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π½Π΅ установлСн чСкбокс, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, всС Π±ΡƒΠ΄Π΅Ρ‚ Π² class Ρ„Π°ΠΉΠ»Π°Ρ….

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ класс ΠΈΠ· Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… исходников прилоТСния, исправляСм Π² Π½Π΅ΠΌ ошибки компиляции, добавляСм, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π· Π΄ΠΈΠ°Π»ΠΎΠ³Π°, Ρ‡Ρ‚ΠΎΠ± ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ класс. Π”Π°Π»Π΅Π΅ ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π² ЭклипсС это Project->Clean, ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ class Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠ°ΠΏΠΊΡƒ bin/classes, собираСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!

ΠŸΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… сборках ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅Ρ‚ нСобходимости Π΅Π³ΠΎ ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ способ достаточно ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Для облСгчСния исправлСния ошибок послС дСкомпиляции я использовал исходники ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· JD-GUI ΠΈ JAD, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ этого Π±Ρ‹Π»ΠΎ достаточно.

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

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

Π’Π°ΠΊΠΈΠΌ способом Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Ρ‚ΠΎ избавляСт ΠΎΡ‚ исправлСния ошибок Π²ΠΎ всСх исходниках ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всСго Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° подвСргнСтся процСссу дСкомпиляции - исправлСния - компиляции.

Π‘ большой Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ получится ΡΠΊΡ€Ρ‹Ρ‚ΡŒ всС слСды ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния, названия нСобфусцированных классов Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Activity ΠΈ Service, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ названия ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² сохранятся ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ доступны послС дСкомпиляции ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния, Π½ΠΎ для пиратских вСрсий это Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ стоит Π·Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, способы Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способам Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ измСнСния ΠΊΠΎΠ΄Π°.

Π’ этом постС Ρ…ΠΎΡ‡Ρƒ Π²Π°ΠΌ ΠΏΠΎΠ²Π΅Π΄Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ насколько просто Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² apk . Π’ Ρ„Π°ΠΉΠ»Π°Ρ… с этим Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Ρ‹ ΠΈΠ³Ρ€Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Андроида, говоря ΠΈΠ½Ρ‹ΠΌΠΈ словами это основной Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ OS Android.

Π‘ΠΊΠ°ΠΆΡƒ сразу: вся инструкция ΠΏΠΎ дСкомпиляции ΠΈΠ³Ρ€ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° для Windows.сс

Для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ понадобятся нСсколько ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, дСкомпиляторов. ВсСх ΠΈΡ… я собрал Π² Π°Ρ€Ρ…ΠΈΠ²:

Π’ Π°Ρ€Ρ…ΠΈΠ²Π΅ 3 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° - dex2jar, Java Decompiler, ApkTool.

1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ, с Π»ΡŽΠ±Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ. Π’ Π½Π΅ΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Π΅Ρ‘ Decomp.

2. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌΡΡ.

2.1. РаспакуйтС содСрТимоС Π°Ρ€Ρ…ΠΈΠ²Π° Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π½Π°ΠΌΠΈ ΠΏΠ°ΠΏΠΊΡƒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ создайтС Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΏΠΊΠΈ Decomp ΠΏΠ°ΠΏΠΊΡƒ apk, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Π·Π°ΠΊΠΈΠ΄Ρ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π°Π½Π΄Ρ€ΠΎΠΈΠ΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ apk ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

2.2. ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это C:/Windows/) содСрТимоС .

3. ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΠΌ ΠΊ дСкомпиляции. ДСкомпиляция, Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π½Π° 2 части. Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ трСбуСтся Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достаточно 1 части ΠΏΠΎΠ»Π½ΠΎΠΉ компиляции. ΠŸΠΎΠ΅Ρ…Π°Π»ΠΈ

3.1.Распаковка рСсурсов

3.1.1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ консоль Π² созданной ΠΏΠ°ΠΏΠΊΠ΅ Decomp. Если Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π²Ρ‹ΠΉΠ΄ΠΈΡ‚Π΅ с этой ΠΏΠ°ΠΏΠΊΠΈ Π½Π° 1 ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π²Ρ‹ΡˆΠ΅, Π·Π°Ρ‚Π΅ΠΌ с Π·Π°ΠΆΠ°Ρ‚Ρ‹ΠΌ SHIFT Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π² появившСмся спискС Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ .

3.1.2. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²ΠΈΠ΄Π°:

apktool d ΠΏΡƒΡ‚ΡŒ_ΠΊ_apk_Ρ„Π°ΠΉΠ»Ρƒ ΠΏΠ°ΠΏΠΊΠ°_ΠΊΡƒΠ΄Π° Ρ€Π°ΡΠΏΠ°ΠΊΡƒΡŽΡ‚ΡΡ_рСсурсы

Π’.Π΅. Π² нашСм случаС, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ mygame.apk, ΠΊΠΎΠΌΠ°Π½Π΄Π° получится Ρ‚Π°ΠΊΠΎΠΉ:

apktool d apk/mygame.apk mygame

Если Π² ΠΏΡƒΡ‚ΠΈ ΠΊ apk Ρ„Π°ΠΉΠ»Ρƒ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ»ΠΈ ΠΎΠ½ сам Π² своём Π½Π°Π·Π²Π°Π½ΠΈΠΈ содСрТит ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ!

ПослС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΏΠ°ΠΏΠΊΠ΅ Decomp Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΠ°ΠΏΠΊΠ° ΠΊΡƒΠ΄Π° Ρ€Π°ΡΠΏΠ°ΠΊΡƒΡŽΡ‚ΡΡ рСсурсы.

3.2. Распаковка исходников

3.2.1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ консоль Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΎΡΡŒ Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 3.1.1.

3.2.2 Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

dex2jar apk/mygame.apk , Π³Π΄Π΅ mygame.apk имя вашСго прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π»Π΅ΠΆΠΈΡ‚ Ρƒ вас Π² ΠΏΠ°ΠΏΠΊΠ΅ apk.

ПослС выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΏΠ°ΠΏΠΊΠ΅ apk появится Ρ„Π°ΠΉΠ» с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ jar. И ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ с Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ: mygame_dex2jar.jar .

3.2.3. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ jd-gui-0.3.5.windows ΠΈ запуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ jd-gui , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ созданный Π½Π°ΠΌΠΈ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ шагС Ρ„Π°ΠΉΠ».

3.2.4. ПослС открытия Ρ„Π°ΠΉΠ»Π° сохранитС всС рСсурсы. File -> Save All Sources .

3.2.5 Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΏΠ°ΠΏΠΊΡƒ src Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΊΡƒΠ΄Π° распаковывали рСсурсы Π½Π° ΠΏΡƒΠ½ΠΊΡ‚Π΅ 3.1.2. И ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ содСрТимоС Π°Ρ€Ρ…ΠΈΠ²Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ шагС Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ сохранСния.

Всё, Π½Π° этом полная компиляция прилоТСния Android Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ³Ρ€Π° с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ apk Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°. Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

Π‘Ρ‹Π²Π°Π΅Ρ‚ послС Ρ€Π΅Π»ΠΈΠ·Π° прилоТСния Π΅Π³ΠΎ исходники ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ Π΄Π΅Π²Π°ΡŽΡ‚ΡΡ. ΠŸΡ€Π°Π²Π΄Π° вСдь, Ρ‚Π°ΠΊΠΎΠ΅ постоянно случаСтся? И Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ остаСтся ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ нСсколько сотСн строк ΠΊΠΎΠ΄Π° ΠΈ всС это Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ максимально быстро.

Π’ΠΎΡ‚ ΠΈ Ρƒ мСня появилась Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ имСя всСго лишь Π΅Π³ΠΎ apk. И Ρ‚Π΅, ΠΊΡ‚ΠΎ занимался дСкомпиляциСй ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π½Π°ΡŽΡ‚ насколько тяТСло Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ДСкомпиляция

Для Android"Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹:
  • ApkTool для дСкомпиляции рСсурсов.
  • Dex2Jar для прСобразования dex Π² jar.
  • JD-GUI для получСния исходников ΠΈΠ· jar.
  • Π΅Ρ‰Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ JAD , Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ мСста Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‡Π΅ΠΌ JD-GUI.
Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΈΡ… использованию Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ достаточно.

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

На этом ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ экспСримСнты с дСкомпиляциСй, Π½ΠΎ лСнь Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΡŒ прогрСсса ΠΈ родился Π½ΠΎΠ²Ρ‹ΠΉ способ.

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ классов

Π˜Ρ‚Π°ΠΊ, jar это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Ρ‚Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ просто Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ? КидаСм Π΅Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ libs, наслСдуСмся ΠΎΡ‚ Π³Π»Π°Π²Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ. ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ‡Ρ‚ΠΎΠ± Π½Π΅ совпадали ΠΈΠΌΠ΅Π½Π° классов, поэтому названия ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΈΠ½Π°Ρ‡Π΅ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ совпадут сгСнСрированныС BuildConfig ΠΈ R.

Π’Π°ΠΊΠΈΠΌ способом ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Activity, Service, BroadcastReceiver ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… классов ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹Ρ… Π² манифСстС, Ρ‚Π°ΠΊ ΠΆΠ΅ Π² манифСстС Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° классов, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово final Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠΆΠ΅, поэтому ΠΈΠ΄Π΅ΠΌ дальшС.

Π—Π°ΠΌΠ΅Π½Π° классов

Π Π°Π·Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π² jar Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ class Ρ„Π°ΠΉΠ»Ρ‹, это скомпилированныС классы, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ сборкС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΠ°ΠΏΠΊΠ΅ bin/classes Π»Π΅ΠΆΠ°Ρ‚ Ρ‚Π΅ ΠΆΠ΅ class Ρ„Π°ΠΉΠ»Ρ‹, Π° Ρ‡Ρ‚ΠΎ Ссли ΠΏΠΎΠ΄ΡΡƒΠ½ΡƒΡ‚ΡŒ Ρ‚ΡƒΠ΄Π° Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· библиотСки…

НС всС Ρ‚Π°ΠΊ просто, для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классы исходного прилоТСния Π½ΡƒΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ДСлаСтся это просто: ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ libs Эклипс сам экспортируСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, поэтому ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌ jar Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² ΠΏΠ°ΠΏΠΊΡƒ lib ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ, Π² ЭклипсС это Project->Preferences->Java Build Path->Libraries->Add Jars… Π΄Π°Π»Π΅Π΅ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Order and Export Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π½Π΅ установлСн чСкбокс, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, всС Π±ΡƒΠ΄Π΅Ρ‚ Π² class Ρ„Π°ΠΉΠ»Π°Ρ….

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ класс ΠΈΠ· Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… исходников прилоТСния, исправляСм Π² Π½Π΅ΠΌ ошибки компиляции, добавляСм, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π· Π΄ΠΈΠ°Π»ΠΎΠ³Π°, Ρ‡Ρ‚ΠΎΠ± ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ класс. Π”Π°Π»Π΅Π΅ ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π² ЭклипсС это Project->Clean, ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ class Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠ°ΠΏΠΊΡƒ bin/classes, собираСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!

ΠŸΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… сборках ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅Ρ‚ нСобходимости Π΅Π³ΠΎ ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ способ достаточно ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Для облСгчСния исправлСния ошибок послС дСкомпиляции я использовал исходники ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· JD-GUI ΠΈ JAD, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ этого Π±Ρ‹Π»ΠΎ достаточно.

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

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

Π’Π°ΠΊΠΈΠΌ способом Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Ρ‚ΠΎ избавляСт ΠΎΡ‚ исправлСния ошибок Π²ΠΎ всСх исходниках ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всСго Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° подвСргнСтся процСссу дСкомпиляции - исправлСния - компиляции.

Π‘ большой Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ получится ΡΠΊΡ€Ρ‹Ρ‚ΡŒ всС слСды ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ прилоТСния, названия нСобфусцированных классов Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Activity ΠΈ Service, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ названия ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² сохранятся ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ доступны послС дСкомпиляции ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния, Π½ΠΎ для пиратских вСрсий это Π½Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ стоит Π·Π°Ρ‰ΠΈΡ‰Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, способы Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способам Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ измСнСния ΠΊΠΎΠ΄Π°.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ рассказано ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊ Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ пошагово ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ послС дСкомпиляции прилоТСния.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ рассказано ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊ Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΈ пошагово ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ послС дСкомпиляции прилоТСния. Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠžΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ кстати Π²ΠΎ врСмя пСнтСстов ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Β«ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΡƒΡ‚ΡŒΒ» Π² ΠΊΠΎΠ΄ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρƒ нас Π½Π΅Ρ‚ доступа. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Π΄ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π° Π»Π΅Ρ‚Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ, ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ†Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π‘Ρ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° пСнтСстСрам ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠ΅ знания ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π°Ρ‚Π°ΠΊΠ°Ρ… Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Android.

ВрСбования ΠΊ тСстовой срСдС:

  • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма: Windows / Mac OS X / Linux
  • Java (рСкомСндуСтся вСрсия 1.7)
  • IDE (Eclipse, IntelliJ IDEA, Android Studio)
  • Android SDK (https://developer.android.com/sdk/index.html?hl=i)
  • APKTool (https://code.google.com/p/android-apktool/)/APK Studio (http://apkstudio.codeplex.com)
  • Устройство / эмулятор Π½Π° Π±Π°Π·Π΅ Android

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ конфигурация: Windows 8, Android Studio ΠΈ IntelliJ IDEA. Устройство: Nexus 4 с Android вСрсии 4.4.4. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ всС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния PATH, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ доступ ΠΊ этим инструмСнтам.

Android application package (APK), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚ΡΡŽΠ΄Π°: com.netspi.egruber.test.apk .

Настройка устройства

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ устройство для экспСримСнтов.

Активация Ρ€Π°Π·Π΄Π΅Π»Π° Developer Options

Для Π½Π°Ρ‡Π°Π»Π° Π½Π° Android-устройствС Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· USB (опция USB debugging), Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Β«ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡΒ» с дСвайсом ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ инструмСнтов ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Android SDK. Однако ΠΏΠ΅Ρ€Π΅Π΄ этим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» Developer options. На устройствС Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π» Settings > About Phone ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ нСсколько Ρ€Π°Π· Π½Π° ΠΏΡƒΠ½ΠΊΡ‚ Build Number, послС Ρ‡Π΅Π³ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π΄Π΅Π» Developer options Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½.

Рисунок 1: Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» Developer options, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ нСсколько Ρ€Π°Π· ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π° Build number

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· USB

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Ρ‡Π΅Ρ€Π΅Π· USB-ΠΏΠΎΡ€Ρ‚, Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π» Settings > Developer options ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅ Ρ„Π»Π°ΠΆΠΎΠΊ Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ² USB debugging.

Рисунок 2: Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ USB debugging

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ устройства ΠΈ запуск ADB

ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ устройства ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ Ρ‡Π΅Ρ€Π΅Π· USB-ΠΏΠΎΡ€Ρ‚, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ сообщСниС Β«USB debugging connected on the deviceΒ». Π’Π°ΠΊΠΆΠ΅ слСдуСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ устройству ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ прилоТСния Android Debug Bridge (ADB), входящСго Π² состав Android SDK (ΠΏΠ°ΠΊΠ΅Ρ‚ Android SDK Platform-tools). Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Устройство Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ Π² спискС.

Рисунок 3: Бписок ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… устройств

Если устройство Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ»ΠΎΡΡŒ Π² спискС, Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вСроятная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ установлСнных Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… (Π² Windows). Π’ зависимости ΠΎΡ‚ устройства Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π»ΠΈΠ±ΠΎ Π² Android SDK, Π»ΠΈΠ±ΠΎ Π½Π° сайтС производитСля.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° прилоТСния Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

ΠŸΠ΅Ρ€Π΅Π΄ ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Π΅ΡΡ‚ΡŒ Π»ΠΈ такая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколькими способами.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ - Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Android Device Monitor , входящий Π² состав Android SDK (Π² ΠΏΠ°ΠΏΠΊΠ΅ tools). Π’ Windows Ρ„Π°ΠΉΠ» называСтся monitor.bat. ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Android Device Monitor устройство отобразится Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Devices.

Рисунок 4: ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Android Device Monitor

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

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ – ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» AndroidManifest.xml ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° прилоТСния (APK, Android application package). APK прСдставляСт собой zip-Π°Ρ€Ρ…ΠΈΠ², содСрТащий всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ для запуска прилоТСния Π½Π° Android-устройствС.

Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° прилоТСния загруТаСтся ΠΈΠ· Google Play Store, Ρ‚Π°ΠΊΠΆΠ΅ загруТаСтся ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ прилоТСния. ВсС Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ APK-Ρ„Π°ΠΉΠ»Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ хранятся Π½Π° устройствС Π² ΠΏΠ°ΠΏΠΊΠ΅ /data/app. Если Ρƒ вас Π½Π΅Ρ‚ ΠΏΡ€Π°Π² ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π²Ρ‹ Π½Π΅ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /data/app. Π₯отя, Ссли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ имя APK-Ρ„Π°ΠΉΠ»Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ adb . Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ имя APK-Ρ„Π°ΠΉΠ»Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ командная строка устройства. Π—Π°Ρ‚Π΅ΠΌ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pm list packages -f

ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡΡ список всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° устройствС.

Рисунок 5: ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° устройствС

Глядя Π½Π° список, Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ тСстовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Рисунок 6: ΠŸΠ°ΠΊΠ΅Ρ‚ созданного тСстового прилоТСния (Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Π±Π΅Π»Ρ‹ΠΌ)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ шСлл ΠΈ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

adb pull /data/app/[.apk file]

Рисунок 7: ΠšΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ APK-Ρ„Π°ΠΉΠ» с устройства Π² систСму

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС AndroidManifest.xml. К соТалСнию, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ просто Ρ‚Π°ΠΊ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ APK-Ρ„Π°ΠΉΠ» Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Для раскодировки Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° apktool , хотя я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ APK Studio , ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ этого прилоТСния Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΉ графичСский интСрфСйс. Π”Π°Π»Π΅Π΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ± APK Studio.

Π’ APK Studio ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ Π½Π° ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ Π·Π΅Π»Π΅Π½ΡƒΡŽ ΠΈΠΊΠΎΠ½ΠΊΡƒ, Π·Π°Π΄Π°ΠΉΡ‚Π΅ имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ APK Ρ„Π°ΠΉΠ»Ρƒ. Π—Π°Ρ‚Π΅ΠΌ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡΡ‚ΡŒ для сохранСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Рисунок 8: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² APK Studio

ПослС открытия APK Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» AndroidManifest.xml ΠΈ посмотритС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚Π΅Π³Π° application. Если Ρ„Π»Π°Π³ android:debuggable отсутствуСт (ΠΈΠ»ΠΈ присутствуСт, Π½ΠΎ установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false), Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ нСльзя.

Рисунок 9: Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° AndroidManifest.xml

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Ρ„Π°ΠΉΠ»Π° AndroidManifest.xml

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ apktool ΠΈΠ»ΠΈ APK Studio ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ содСрТимоС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΏΠ°ΠΊΠ΅Ρ‚. БСйчас ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Ρ„Π°ΠΉΠ» AndroidManifest.xml Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ. ДобавляСм Π²Π½ΡƒΡ‚Ρ€ΡŒ Ρ‚Π΅Π³Π° application строчку android:debuggable="true".

Рисунок 10: ИзмСняСм содСрТимоС Ρ‚Π΅Π³Π° application

ПослС добавлСния Ρ„Π»Π°Π³Π° ΠΊΠ»ΠΈΠΊΠ°Π΅ΠΌ Π½Π° ΠΈΠΊΠΎΠ½ΠΊΡƒ Β«ΠΌΠΎΠ»ΠΎΡ‚ΠΎΠΊΒ» ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ собираСм ΠΏΠ°ΠΊΠ΅Ρ‚. ΠŸΠ΅Ρ€Π΅ΡΠΎΠ±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ build/apk.

Рисунок 11: ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Π°Ρ сборка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ

ПослС пСрСсборки ΠΏΠ°ΠΊΠ΅Ρ‚ подписываСтся ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° устройствС (всС Android-прилоТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ подписаны). Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ провСряСт сСртификат, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ происходит подпись. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ эту ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ пСрСсобранный ΠΏΠ°ΠΊΠ΅Ρ‚. Π’Π½Π°Ρ‡Π°Π»Π΅ удаляСм староС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

adb pm uninstall

Π—Π°Ρ‚Π΅ΠΌ устанавливаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚:

adb install [.apk file]

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

adb install -r [.apk file]

Рисунок 12: Установка пСрСсобранного ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ пСрСустановлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Π»ΠΎΡΡŒ Π½Π° устройствС. Если всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Android Device Monitor, Π³Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ тСстовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Рисунок 13: Π’Π΅ΠΏΠ΅Ρ€ΡŒ пСрСсобранноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ

Настройка срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (IDE)

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊ пСрСсобранному ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ†Π΅ΠΏΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, Π½ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ IntelliJ IDEA). Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’ ΠΏΠΎΠ»Π΅ Application name ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ имя. Π’ ΠΏΠΎΠ»Π΅ Package name ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ имя, Π² точности ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π΅ с ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠ΅ΠΉ ΠΏΠ°ΠΏΠΎΠΊ пСрСсобранного ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

Рисунок 14: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² IntelliJ IDEA

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ имя APK-Ρ„Π°ΠΉΠ»Π° совпадаСт со структурой ΠΏΠ°ΠΏΠΎΠΊ, хотя, Ссли Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Π² APK Studio ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠΈ, Π³Π΄Π΅ находятся Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ ΠΌΠΎΠ΅ΠΌ случаС имя ΠΈ структура ΠΏΠ°ΠΏΠΎΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ (com.netspi.egruber.test).

Рисунок 15: Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ тСстового прилоТСния

Π‘Π½ΠΈΠΌΠΈΡ‚Π΅ Ρ„Π»Π°ΠΆΠΎΠΊ Β«Create Hello World ActivityΒ» ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ созданиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ). Новый ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Рисунок 16: Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ ΠΏΠ°ΠΏΠΎΠΊ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ПослС создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ ΠΈΠ· APK-Ρ„Π°ΠΉΠ»Π° для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Β«Π·Π½Π°Π»Β» ΠΈΠΌΠ΅Π½Π° символов, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ‚. Π΄. Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Android-прилоТСния ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ практичСски Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства (исходный ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠΌ). ПослС дСкомпиляции исходный тСкст импортируСтся Π² срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (IDE).

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ исходных тСкстов ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° прилоТСния

Для Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ APK Π² jar-Ρ„Π°ΠΉΠ». Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ java-дСкомпилятора ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ исходный тСкст прилоТСния. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² jar Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ dex2jar . Π£ dex2jar Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» d2j-dex2jar.bat, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для конвСртирования APK Π² jar. Бинтаксис ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ довольно прост:

d2j-dex2jar.bat [.apk file]

Рисунок 17: ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ APK Π² jar

Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΈΠ»ΠΈ пСрСтаскиваСм ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² JD-GUI (это java-дСкомпилятор).

Рисунок 18: Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° jar-Ρ„Π°ΠΉΠ»Π°

Jar-Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ иСрархичСской структуры, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находятся java-Ρ„Π°ΠΉΠ»Ρ‹ с Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² File > Save All Sources, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ всС исходныС тСксты Π² zip-Π°Ρ€Ρ…ΠΈΠ².

Рисунок 19: Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ исходных тСкстов Π΄Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

ПослС сохранСния исходных тСкстов распаковываСм Π°Ρ€Ρ…ΠΈΠ² Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ.

Рисунок 20: Распакованный Π°Ρ€Ρ…ΠΈΠ²

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² созданный Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² IDE. Π’ IntelliJ Π·Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΡƒ src ΠΈ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Ρ‚ΡƒΠ΄Π° содСрТимоС распакованного Π°Ρ€Ρ…ΠΈΠ²Π° (Π΄Π²Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ).

Рисунок 21: ОбС ΠΏΠ°ΠΏΠΊΠΈ скопированы Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ src

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ Π² Intellij, Π²ΠΈΠ΄ΠΈΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Рисунок 22: Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ появились исходныС тСксты

Если ΠΌΡ‹ ΠΊΠ»ΠΈΠΊΠ½Π΅ΠΌ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ элСмСнт ΠΈΠ· списка, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ исходный тСкст. Как Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ Π½ΠΈΠΆΠ΅ (исходный тСкст класса LoginActivity), исходный ΠΊΠΎΠ΄ обфусцирован ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ProGuard.

Рисунок 23: ΠžΠ±Ρ„ΡƒΡΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ исходный тСкст класса LoginActivity

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ появились исходныС тСксты, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ останова Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. По Π΄ΠΎΡΡ‚ΠΈΠΆΠ΅Π½ΠΈΡŽ Ρ‚ΠΎΡ‡Π΅ΠΊ останова ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° я установил Ρ‚ΠΎΡ‡ΠΊΡƒ останова Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ (прямо Π² обфусцированном ΠΊΠΎΠ΄Π΅), ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΌ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² тСкстовом ΠΏΠΎΠ»Π΅.

Рисунок 24: ΠŸΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° останова Π½Π° обфусцированный ΠΌΠ΅Ρ‚ΠΎΠ΄

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ появилась Ρ‚ΠΎΡ‡ΠΊΠ° останова, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊ процСссу Π½Π° устройствС, ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ² Π½Π° ΠΈΠΊΠΎΠ½ΠΊΡƒ с экраном Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ (Π½Π° вашСй IDE ΠΈΠΊΠΎΠ½ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ).

Рисунок 25: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊ процСссу

Рисунок 26: ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ процСссов для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°

ПослС Π²Ρ‹Π±ΠΎΡ€Π° процСсса ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ подсоСдинится ΠΊ устройству.

Рисунок 27: ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ процСссу, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌΡƒ Π½Π° устройствС

Π’ тСкстовоС ΠΏΠΎΠ»Π΅ я Π±ΡƒΠ΄Ρƒ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ число 42 (Ссли ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ стоит Ρ‚ΠΎΡ‡ΠΊΠ° останова).

Рисунок 28: Π’ тСкстовоС ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄ΠΈΠΌ число 42

ПослС наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Enter CodeΒ» Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прилоТСния прСрвСтся Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ΅ останова, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ «освСдомлСн», ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ вызываСтся Π½Π° устройствС. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Android-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ содСрТит ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…), Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ, совмСстимому с Java Debug Wire Protocol (JDWP). Если Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΊΠ°, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, совмСстимый с JDWP (Π² эту ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ΄ΡƒΡ‰ΠΈΡ… Π² составС срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для Java), смоТСт ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Android-прилоТСния, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Рисунок 29: Π‘Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Ρ‚ΠΎΡ‡ΠΊΠ° останова

На ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ Π½ΠΈΠΆΠ΅ Π²ΠΈΠ΄Π½ΠΎ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π½Π΅Π΅ ΠΌΡ‹ Π²Π²Π΅Π»ΠΈ Π² тСкстовом ΠΏΠΎΠ»Π΅.

Рисунок 30: ΠŸΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ экзСмпляра класса

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

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½ΠΎ ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ свои собствСнныС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли ΠΌΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ выполнСния ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ участки Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния ΠΈ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ нСдоступно ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. НапримСр, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ просмотр ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ динамичСскиС ΠΊΠ»ΡŽΡ‡ΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ какая информация сохраняСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ манипуляции доступны Π½Π° любом Android-устройствС Π±Π΅Π· ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΡΡƒΠΏΠ΅Ρ€ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Иногда Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прилоТСния Π½Π° 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. Однако, имСя Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания, Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСм этом - лишь вопрос Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.