Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/sterrasec/ipa-medit
Безопасность iOSКриминалистика памятиПентестинг мобильных приложенийТестирование на ПроникновениеМобильная безопасностьАнализ Бинарных Файлов
GitHubsterrasec/ipa-medit

ipa-medit

Инструмент для модификации памяти для переподписанных ipa поддерживает iOS-приложения, работающие на iPhone и Mac на Apple Silicon, без джейлбрейка.

Репозиторий
2072441 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ipa-medit

GitHub release License: MIT

Ipa-medit — это инструмент для поиска и изменения памяти в переподписанных ipa-файлах без джейлбрейка. Он поддерживает приложения iOS, работающие на iPhone и Mac на Apple Silicon. Инструмент создан для тестирования безопасности мобильных игр. Многие мобильные игры имеют защиту от джейлбрейка, но ipa-medit не требует джейлбрейка, поэтому модификация памяти возможна без обхода этой защиты.

Мотивация

Модификация памяти — самый простой способ читерства в играх, и это один из пунктов проверки в тестировании безопасности. Существуют также простые в использовании читерские инструменты, такие как GameGem и iGameGuardian. Однако не было инструментов, доступных для устройств без джейлбрейка и для работы в командной строке (CUI) на Mac с Apple Silicon. Поэтому я создал его как инструмент для тестирования безопасности. Версия для Android: sterrasec/apk-medit.

Демонстрация

Требования

  • macOS
    • Необходим установленный действующий сертификат разработчика iOS.
  • Только при нацеливании на приложения iOS, работающие на iPhone.
    • Xcode
    • libimobiledevice/libimobiledevice
    • libimobiledevice/ideviceinstaller
root@kitploit:~
$ brew install --HEAD libplist
$ brew install --HEAD usbmuxd
$ brew install --HEAD libimobiledevice
$ brew install --HEAD ideviceinstaller

Установка

Бинарный файл (только для Intel Mac)

Загрузите бинарный файл из GitHub Releases и поместите его в вашу директорию $PATH.

Сборка вручную

Вы можете собрать его с помощью команды make. Для сборки требуется компилятор Go. Если вы нацеливаетесь на приложение iOS, работающее на Mac с Apple Silicon, вам потребуется подписать его, но скрипт script/codesign.sh будет выполнен автоматически.

root@kitploit:~
$ git clone [email protected]:sterrasec/ipa-medit.git
$ cd ipa-medit
$ make build

Использование

Целевой файл .ipa должен быть подписан сертификатом, установленным на вашем компьютере. Если вы хотите модифицировать память в сторонних приложениях, используйте инструмент переподписи, например ipautil.

root@kitploit:~
$ ipautil decode tap1000000.ipa # распаковать
$ ipautil build Payload         # переподписать и сгенерировать .ipa файл

Нацеливание на приложение iOS на iPhone

Для запуска необходимо указать путь к исполняемому файлу внутри .ipa с помощью -bin и идентификатор пакета с помощью -id.

root@kitploit:~
$ unzip tap1000000.ipa
$ ipa-medit -bin="./Payload/tap1000000.app/tap1000000" -id="jp.hoge.tap1000000"

Нацеливание на приложение iOS на Mac с Apple Silicon

Для запуска необходимо указать имя процесса с помощью -name или PID с помощью -pid. Имя процесса и PID приложения iOS можно проверить в Мониторинге системы.

root@kitploit:~
$ ipa-medit -name <имя процесса>

Команды

Ниже перечислены команды, доступные в интерактивном режиме.

find

Поиск указанного целого числа в памяти.

root@kitploit:~
> find 999986
Success to halt process
Scanning: 0x00000001025e4000-0x00000001025e8000
Scanning: 0x00000001025f4000-0x00000001025fc000
Scanning: 0x0000000102604000-0x0000000102608000
....
Scanning: 0x000000016eb34000-0x000000016ebbc000
Scanning: 0x000000016ebc0000-0x000000016ebe8000
Scanning: 0x000000016ebec000-0x000000016ec74000
Scanning: 0x000000016ec78000-0x000000016ed00000
Found: 1!!
Address: 0x10a2feea0

По умолчанию при нацеливании на приложения iOS на iPhone выполняется поиск только целых чисел, так как API LLDB медленный. При нацеливании на приложение iOS на Mac с Apple Silicon также выполняется поиск строк.

Вы также можете указать тип данных, например string, word, dword, qword.

root@kitploit:~
> find dword 999994
Search Double Word...
Target Value: 999994([58 66 15 0])
Found: 1!!
Address: 0x11378aea0

filter

Фильтрация предыдущих результатов поиска, совпадающих с текущими.

root@kitploit:~
> filter 999842
Success to halt process
Found: 1!!
Address: 0x1087beea0

patch

Запись указанного значения по адресу, найденному в результате поиска.

root@kitploit:~
> patch 10
Successfully patched!

attach

Присоединение к целевому процессу.

root@kitploit:~
> attach
Success to halt process

detach

Отсоединение от присоединённого процесса.

root@kitploit:~
> detach
Success to continue process

ps

Получение информации о целевом процессе. Работает только при нацеливании на приложение iOS на iPhone.

root@kitploit:~
> ps
SBProcess: pid = 926, state = running, threads = 37, executable = tap1000000
State: Running
thread #1: tid = 0x545ee, 0x00000001bd6552d0 libsystem_kernel.dylib`mach_msg_trap + 8, queue = 'com.apple.main-thread'
thread #3: tid = 0x54619, 0x00000001bd67a184 libsystem_kernel.dylib`__workq_kernreturn + 8
thread #4: tid = 0x5461a, 0x00000001bd67a184 libsystem_kernel.dylib`__workq_kernreturn + 8
thread #5: tid = 0x5461b, 0x00000001bd67a184 libsystem_kernel.dylib`__workq_kernreturn + 8
thread #6: tid = 0x5461c, 0x00000001bd67a184 libsystem_kernel.dylib`__workq_kernreturn + 8
thread #7: tid = 0x5461d, 0x00000001bd6552d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.uikit.eventfetch-thread'
thread #8: tid = 0x5461e, 0x00000001bd6791ac libsystem_kernel.dylib`__psynch_cvwait + 8, name = 'GC Finalizer'
thread #9: tid = 0x5461f, 0x00000001bd65530c libsystem_kernel.dylib`semaphore_wait_trap + 8, name = 'Job.Worker 0'
thread #10: tid = 0x54620, 0x00000001bd65530c libsystem_kernel.dylib`semaphore_wait_trap + 8, name = 'Job.Worker 1'
thread #11: tid = 0x54621, 0x00000001bd65530c libsystem_kernel.dylib`semaphore_wait_trap + 8, name = 'Job.Worker 2'
...
thread #35: tid = 0x54659, 0x00000001bd6552d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'AURemoteIO::IOThread'
thread #36: tid = 0x54662, 0x00000001bd679814 libsystem_kernel.dylib`__semwait_signal + 8
thread #37: tid = 0x54663, 0x00000001bd6552d0 libsystem_kernel.dylib`mach_msg_trap + 8, name = 'com.apple.CoreMotion.MotionThread'
thread #38: tid = 0x54664, 0x00000001bd65530c libsystem_kernel.dylib`semaphore_wait_trap + 8, name = 'Loading.PreloadManager'

exit

Для выхода из медита используйте команду exit или Ctrl-D.

root@kitploit:~
> exit
Bye!

Устранение неполадок

Failed to get reply to handshake packet

Если появляется ошибка /private/var/containers/Bundle/Application/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/hoge.app: error: failed to get reply to handshake packet и не удаётся правильно связаться с устройством iOS и lldb, запустите Xcode и соберите какое-нибудь приложение — это должно исправить ситуацию.

Could not connect to lockdownd

Если появляется ошибка Could not connect to lockdownd. и не удаётся правильно связаться с устройством iOS и ideviceinstaller, запустите Xcode и соберите какое-нибудь приложение — это должно исправить ситуацию. Если это не помогает, обновите ideviceinstaller и libimobiledevice до последних версий, используя примеры команд в разделе «Требования».

Could not start com.apple.debugserver

Это можно исправить, установив последнюю неверсионную версию libimobiledevice и ideviceinstaller, добавив опцию --HEAD при выполнении brew install.

  • Ссылка: Could not start com.apple.debugserver! ios 14.1 xcode 12.2 MacOS 10.15.4 iphone12 · Issue #1104 · libimobiledevice/libimobiledevice

Лицензия

Лицензия MIT

Скачать инструмент