🔏
AppSec & Pentest
Mobile
Mobile
  • Mobile
  • Pentesting Methodology
  • Programming
    • Аналитика
      • Some Papers
      • Примеры токенов/ключей и тп
      • Twitter ads
      • Branch.IO
      • Adjust
      • Amplitude Analytics
      • Paypal for Business
      • Emarsys
      • MobileAppTracker
      • AppsFlyer
        • About
        • Настройка аккаунта
        • Исследование кода
        • Examples
      • Fabric
      • Mixpanel Analytics
      • Facebook ads
      • Yandex
      • Firebase SDK
        • Intro
        • Примеры
        • Firebase Cloud Messaging
        • Компоненты
          • Firebase
          • FirebaseABTesting
          • FirebaseAnalytics[Interop]
          • FirebaseAppDistribution
          • FirebaseAuth[Interop]
          • FirebaseCore
          • FirebaseCoreDiagnostics[Interop]
          • FirebaseCrashlytics
          • FirebaseDatabase
          • FirebaseDynamicLinks
          • FirebaseFirestore[Swift]
          • FirebaseFunctions
          • FirebaseInAppMessaging
          • FirebaseInstallations
          • FirebaseInstanceID
          • FirebaseMessaging
          • FirebaseRemoteConfig
          • FirebaseStorage[Swift]
          • GoogleDataTransport
          • GoogleDataTransportCCTSupport
          • GoogleUtilities
          • GoogleUtilitiesComponents
      • Crashlytics
      • GTM: Google Tag Manager
      • Google Maps
      • Google Analytics
      • Flurry
      • HockeyApp
    • iOS
      • Материалы
      • iOS: SSL Pinning
      • ЯП
        • Swift
          • VIPER (Architecture)
          • Общее
          • UI
          • Производительность
          • Swift Style Guide
        • Swift Security
          • Примеры уязвимостей
      • Frameworks and Libraries
        • [Pentest] App extensions
          • About
          • Extension types
          • Static Analys
          • Dynamic Analys
        • [Pentest] App Notifications
        • Async
        • СDP
        • Core
        • Cryptography
        • Jailbreak Detection
        • Network
          • AFNetworking
          • Alamofire
          • HTTP Requests
        • Other
        • Push
        • RxSwift
        • Store Data
        • UI
          • SwiftUI
          • WebView in iOS App
          • UI
        • VPN Detection
      • XCode
        • Build Project
        • Build Project via Command Line
        • Install IPA
        • Templates
      • Другие инструменты
        • mint
      • Системы зависимостей пакетов
        • Carthage
        • CocoaPods
      • Troubleshooting
    • Android
      • Архитектура Android приложения
        • Архитектура Kotlin-приложения
        • Разница между Android Library, Android APP и Java Library
        • Basic
          • Activities
          • Broadcast Receivers
          • Content Providers
          • Custom URL Schemes
          • Intents
          • Notifications
          • PendingIntents
          • Permissions
          • Services
          • Android WebView
      • ЯП
        • Java
          • Bundle
        • Kotlin
          • Возвращение объектов в Intent
          • Call Native Functions
      • Frameworks
        • AndroidX
        • LiveData
        • Lifecycle
        • Background Tasks
          • DownloadManager
          • AlarmManager
          • Foreground Services (или просто Services)
          • WorkManager
        • Room
        • Data binding
          • Basic
        • NDK
          • Install and Build
          • OpenSSL
          • libgit2 build
        • Navigation
        • Работа с изображениями
          • Glide
        • Video/Audio
          • Communications
            • Jitsi
        • JS Engines
          • FB: Hermes
          • Duktape
        • DI: Dependency Injection
          • Зачем?
          • koin
          • kodein
          • dagger2
        • Retrofit / OkHTTP
          • Intro
          • Example Usage
            • Parse error body
            • Примеры обработчиков запросов
            • Структура модуля
            • HttpApi
            • ControllerApi
          • SSLPinning
        • Google Play Authorization
      • Automating build (android in docker)
      • Android Studio
        • Build Project
        • Составные части проекта
      • Технологии
        • LeakCanary
        • Mocking
        • Настройка резервного копирования
        • Remote Method Invocation
        • bundletool (aab -> apk)
      • Примеры приложений
        • Kotlin
      • API levels & NDK Version
    • PWA
    • Hybrid App
      • Frameworks
        • Frameworks List
        • Electron
        • React Native
      • Google Web Toolkit
      • Dart/Flutter
      • Kotlin
      • Game Develope
    • Рекомендации
      • Хранение PIN-кода и шифрование информации
      • Разработка приложения для людей с ограниченными возможностями
      • Secure Networking on iOS
    • AirWatch MDM
    • Дистрибьюция
      • AppCenter
      • App Store
      • App Store Connect
      • AppTester
      • Crashlytics
      • Cydia
      • Diawi
      • Google Play
      • Hockey App
      • TestFairy
      • TestFlight
      • Transporter.app
      • Firebase AppDistribution
  • Forensic
    • Bluetooth
    • NFC
    • GSM
    • SIM-cards
    • iOS
      • Инструменты и скрипты
        • Забор скриншотов с телефона
        • otool
        • lipo
        • plist reader
        • backup reader
        • libimobiledevice
        • Cydia Impactor
        • App Signature
      • Архитектура ОС
        • Шифрование приложений
        • Архитектура iOS приложения
        • iBoot
        • Secure Enclave (SEP)
        • Браузеры
      • Файловая система
        • Где что хранится
        • Мониторинг файловой системы
      • Create/Decrypt Backup
      • IPA dump
        • Frida IPA dump
        • iOS 11 и выше
        • Младше iOS 10
      • Jailbreak
      • DFU режим (режим восстановления и обновления)
    • Android
      • Файловая система
        • Android KeyStore
      • Общая информация о системе: Полезные тулзы и команды
      • Проверить подписи apk
      • Создание и восстановление резервной копии
      • Память процессов
      • Root
        • Common
        • A/B-разделы
        • Su
        • TWRP
  • Pentest
    • Уязвимости и Атаки
      • Изи баги
      • Common
      • iOS
      • Android
      • AppLinks
      • Auth
        • Biometrics bypass
        • PIN Bruteforce
        • Типичные ошибки реализации SMS-аутентификации
      • USSD Attack
      • Java Object Deserialization
      • Lack of binary protection (anti-debugging) controls
      • Disabled security features in binary libraries
      • Lack of exploit mitigations (e.g. PIE, ARC, or stack canaries)
      • Path disclosure in the binary
      • Runtime hacking exploits (e.g. exploits that are only possible in a jailbroken environment)
      • Snapshot/pasteboard leakage
      • User data stored unencrypted in the file system and/or external storage
      • Android Task Hijacking
      • WebView
        • Check list
        • Example Web View XSS in iOS app
        • CVE-2020-6506: uXSS in Android WebView
    • Кейсы
      • Общие
        • Firebase
        • Про сниффинг трафика HTTP2/gRPC
        • Dump memory
      • Android
        • Simple Library RCE for Android
        • Закинуть GApps на эмулятор
        • Android Dependency Check
        • Запрет скриншота и детект оверлея
        • Disable/Delete any app w/o root
      • iOS
        • App Transport Security
        • Info.plist
        • Смотреть логи
        • Установка IPA-образа на iOS без XCode, Cydia Impactor
        • Борьба со скриншотами
        • Блюринг изображений в менеджере окон
        • Установка неподписанных IPA
      • Hybrid Apps
        • Flutter SDK: RE/Capture Traffic
    • Bug Bounty
    • Настройка окружения
      • SASTs
      • Frida & Objection
      • Pentest WebView
      • iOS
        • Platform
        • Network
          • Запись траффика iOS
          • iOS SSL Unpinning
      • Android
        • Reverse Engineering
        • Platform
        • Network
          • Запись трафика Android
          • Android: SSL Unpinning
    • Mitigations
    • Books & Papers
    • Companies & People & Blogs
    • Инструменты и скрипты
      • Комбайны
      • Android
        • grep: Извлечение информации из APK
        • Более менее
        • Старая херня
          • Drozer
          • Разное
      • iOS
        • SAST
          • ipanema
          • iblessing
        • meetle
        • Static Analys with Frida
        • iFunBox
        • iOS Binary Analysis
        • needle
        • idb
        • ios emulator
        • passionfruit
        • Grapefruit ("NG passionfruit")
        • XPC Sniffing
        • SAST in MobSF
        • Поиск по файлам
      • hybrid app
        • Cordova
        • Xamarin
        • Electron
      • FBFlipper
      • truegaze
  • Reverse Engineering
    • Android
      • Tools
        • Decompilers
        • TODO: Androguard
        • TODO: AndroPyTool
        • TODO: LIEF-project
        • TODO: MobSF
        • JADX
        • dex2jar
        • Diff APKs, JARs,..
        • APKiD
        • enjarify
        • adb/fastboot
          • Install
          • Usage
          • Troubleshooting
          • На что можем влиять через adb (в поисках сервисов)
        • DexCalibur
      • Объединить несколько JAR
      • Build AOSP in Docker
      • Патчинг
      • Поиск уникальных строк в Smali
      • Защита от frida
    • iOS
      • CVEs
      • Tools
        • iRET
        • xcrun
        • otool: check binary encryption
      • Патчинг
      • Start iOS Debug Server
      • iOS Audio Framework
      • Facebook SDK
      • Swift
      • Attack Secure Boot of SEP
      • iOS Kernel Firmware
    • Tools
      • frida
        • Установка
        • Frida CLI
        • Запуск скриптов
        • Общие команды (JS API)
        • Frida Projects
        • Примеры
          • Материалы
          • Android
          • iOS
          • Unity/Mono
          • Общее
            • Вывод Callstack
            • Перехват инструкции по смещению
            • Перехват функции по имени
            • Перехват функции по смещению (sub_*)
      • objection
      • luject
      • emulators
    • Кейсы
      • Hybrid App
        • Intro
        • Hermes
        • Xamarin
        • React Native
        • Unity
        • Debug Hybrid App
    • Статьи
  • Administration
    • Инструменты
      • Android
        • uiautomatorviewer
        • jobb
        • archquery
        • apkanalyzer
        • avdmanager
        • emulator
        • perfetto
        • monkeyrunner
        • Настройка окружения
        • sdkmanager
Powered by GitBook
On this page

Was this helpful?

  1. Reverse Engineering
  2. Android

Патчинг

1 Распаковываем наш apk apktool d -r -b my.apk - декомпилим наш apk в smali; -r - не распаковывать ресурсы -b - не вставлять отладочную информацию в smali -s - не дизасмить dex

2 Изменяем, как надо smali, manifest и т.п.

3 Запаковываем в apk apktool b my -o my_pathed.apk -f - форсированная сборка без проверки изменений -d - выставить debuggable=true в манифесте

4 Подписываем apk Удаляем из apk папку META-INF со старой подписью приложения (если есть) и приступаем к генерации новой. Создаем хранилище ключей и генерируем в нем ключ для подписи apk: keytool -genkey -keystore mykeys.keystore -storepass spassword -alias mykey1 -keypass kpassword1 -dname "CN=ololo O=HackAndroid C=RU" -validity 10000 -sigalg SHA256withRSA -keyalg RSA -keysize 2048

Подписываем только что сгенерированным ключом наш APK: jarsigner -sigalg SHA256withRSA -digestalg SHA1 -keystore mykeys.keystore -storepass spassword -keypass kpassword1 my_pathed.apk mykey1

Теперь осталось выровнять данные в архиве по четырехбайтной границе: zipalign -f 4 my_pathed.apk my_pathed_zipal.apk

Другой вариант подписи: Сначала zipalign, затем apksigner (из android sdk (build-tools/[version]/apksigner.bat sign --ks keystore my.apk))

jarsigner и keytool - часть JDK (см bin) zipalign - часть Android SDK / build tools

Caution: You must use zipalign at one of two specific points in the app-building process, depending on which app-signing tool you use: - If you use apksigner, zipalign must only be performed before the APK file has been signed. If you sign your APK using apksigner and make further changes to the APK, its signature is invalidated. - If you use jarsigner, zipalign must only be performed after the APK file has been signed.

PreviousBuild AOSP in DockerNextПоиск уникальных строк в Smali

Last updated 4 years ago

Was this helpful?