TGViewer
Dolgo.polo Dev | Денис Долгополов Dolgo.polo Dev | Денис Долгополов @dolgo_polo_dev · 2.18K subscribers
Post #133 2.96K
Реверс-инжиниринг чужого приложения

Dolgo.polo Dev x Coffee&Code
#cross_post

💎 iOS

➖во что собирается приложение?

в .ipa-файл, а в нем код в формате unix executable file (бинарь, скомпилированный код)


➖можно ли декомпилировать чужое приложение?

да, если у вас есть доступ до .ipa файла (как его получить), можно с легкостью дойти до ассемблерного кода (используя Hopper, можно получить даже псевдо код)

приложения из AppStore шифруются и без jailbreak будет сложно достать что-то полезное из обфусцированного бинаря, но добрые (или не очень) люди создают сайты, где выкладывают незашифрованные бинари популярных приложений


➖можно ли пересобрать чужое приложение, изменив его исходники, и поставить себе на устройство?

да, например тулза sideloadly позволяет пересобрать .ipa файл с дополнительным фреймворком (который мы можем написать сами)

этот фреймворк, к примеру, может случайно посвиззлить (подменить реализацию метода в рантайме) функцию начисления количества внутриигровой валюты и сделать нас миллионерами


➖что защищает от хакнутых приложений?

🔵источник приложений только один — AppStore (уже нет)
🔵подпись .ipa-файла, связанная с аккаунтом разработчика
🔵DeviceCheck — фича, позволяющая сгенерировать токен оригинальность приложения и проверить его на бэкенде


➖можно ли посмотреть исходники любой библиотеки?

только если она в публичном доступе

в остальном, также декомпилировать и смотреть ассемблер или дампнуть хедеры (интерфейс либы)

еще есть возможность изучить библиотеку прямо в рантайме, если она написана на Objective-C, используя инструменты дебага

например можно:
🔵запринтить все методы объекта (подробнее)
🔵переопределить любой (да да, любой, даже приватный) метод
🔵подменить класс в рантайме, создать класс в рантайме
🔵вызывать любой метод (даже не объявленный)
🔵подключить любую библиотеку (даже системные фреймворки Apple) и много чего еще




💎 Android

➖во что собирается приложение?

в .apk-файл, в котором лежит java-байткод (Java/Kotlin-код компилируется в java-байткод на этапе сборки .apk)


➖можно ли декомпилировать чужое приложение?

да

получить .apk-файл можно из любого приложения, установленного на устройстве

дальше достаточно использовать любую программу, умеющую превращать байткод обратно в Java-код

единственная защита от этого — обфускация кода. но она лишь усложняет читаемость кода, а не защищает от считывания


➖можно ли пересобрать чужое приложение, изменив его исходники?

да, поскольку после декомпиляции мы получаем обычный Java-код, который можем изменить его и заново собрать .apk


➖что защищает от хакнутых приложений?

🔵подпись приложения

подпись — грубо говоря, уникальная строка, которая формируется на основе хэша от кода приложения и пароля, который знает только разработчик приложения

если изменить исходный код приложения, то подпись потеряет актуальность, и система не даст установить такое .apk

🔵Play integrity API — фича, позволяющая сгенерировать токен оригинальность приложения и проверить его на бэкенде


➖можно ли посмотреть исходники любой библиотеки?

да, у нас есть доступ к исходникам любой либы, написанной на Java/Kotlin (в том числе системных/гугловских) прямо из Android Studio



💎 Выводы

все секреты, попавшие в .apk/.ipa-файл (токены/алгоритмы шифрования/пароли/протоколы...), могут быть вытащены и подменены с помощью реверс-инжиниринга на обоих платформах

на iOS изучить/подменить чужое приложение сложнее, но тоже реально

так что все что попало в .apk/.ipa-файл — считай open-source


спасибо Coffee&Code и в частности @gronzeisl за экспертизу по iOS
  • 🔥 13
  • 👍 9
  • 👏 9
  • 🎉 2
More from @dolgo_polo_dev
  1. Jun 22, 2026Медиалента — то, что пользователь реально ощущает физически: скроллы, зумы, тапы. Любые ми…
  2. Jun 20, 2026👮‍♀️ Как VPN видит трафик всех приложений? технически VPN на андроид — это сервис внутри…
  3. Jun 13, 2026Дуров опять не старается 🍌🍌🍌 Пару месяцев назад команду телеграма ругали за то, что они…
  4. May 24, 2026🧬Может ли VPN ускорить интернет? Интуиция подсказывает — точно нет Добавляется лишний сер…
  5. May 22, 2026кто же знал, что основным выгодополучателем max 📲 окажется habr.com любая статья набирает…
  6. May 6, 2026вы снова не туда воюете сначала все пушили Compose типо верстать в 2 раза быстрее, можно с…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →