Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ipa-medit — Ferramenta de modificação de memória para ipas re-assinados suporta aplicativos iOS rodando em iPhone e Apple Silicon Mac sem jailbreak. | Kitploit
Ferramentas/GitHubGitHub/sterrasec/ipa-medit
Segurança iOSForensia de MemóriaPentesting de Apps MóveisTestes de PenetraçãoSegurança MóvelAnálise de Binários
GitHubsterrasec/ipa-medit

ipa-medit

Ferramenta de modificação de memória para ipas re-assinados suporta aplicativos iOS rodando em iPhone e Apple Silicon Mac sem jailbreak.

Ver Repositório
2072417há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

ipa-medit

GitHub release License: MIT

Ipa-medit é uma ferramenta de busca e patch de memória para ipa reassinados sem jailbreak. Suporta aplicativos iOS rodando em iPhone e Mac com Apple Silicon. Foi criada para testes de segurança em jogos mobile. Muitos jogos mobile possuem detecção de jailbreak, mas o ipa-medit não requer jailbreak, então a modificação de memória pode ser feita sem contornar a detecção de jailbreak.

Motivação

A modificação de memória é a maneira mais fácil de trapacear em jogos, sendo um dos itens a serem verificados no teste de segurança. Existem também ferramentas de trapaça que podem ser usadas casualmente, como GameGem e iGameGuardian. No entanto, não havia ferramentas disponíveis para dispositivos sem jailbreak e CUI, Mac com Apple Silicon. Então eu a criei como uma ferramenta de teste de segurança. A versão para Android é sterrasec/apk-medit.

Demonstração

Requisitos

  • macOS
    • Você precisa ter um certificado de desenvolvimento iOS válido instalado.
  • Apenas ao direcionar aplicativos iOS rodando em um iPhone.
    • Xcode
    • libimobiledevice/libimobiledevice
    • libimobiledevice/ideviceinstaller
$ brew install --HEAD libplist
$ brew install --HEAD usbmuxd
$ brew install --HEAD libimobiledevice
$ brew install --HEAD ideviceinstaller

Instalação

Binário (Intell Mac Only)

Baixe o binário dos GitHub Releases e coloque-o no seu $PATH.

Compilação Manual

Você pode compilá-lo usando o comando make. O compilador Go é necessário para compilar. Se você estiver direcionando um aplicativo iOS que roda em um Mac com Apple Silicon, precisará assiná-lo, mas o script/codesign.sh será executado e assinado automaticamente.

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

Uso

O arquivo .ipa alvo deve ser assinado com um certificado instalado no seu computador. Se você quiser modificar a memória em aplicativos de terceiros, use uma ferramenta como ipautil para re-assinar.

$ ipautil decode tap1000000.ipa # descompactar
$ ipautil build Payload         # re-assinar e gerar o arquivo .ipa

Direcionando o aplicativo iOS no iPhone

Para iniciá-lo, você precisa especificar o caminho do arquivo executável contido no arquivo .ipa com -bin e o bundle id com -id.

$ unzip tap1000000.ipa
$ ipa-medit -bin="./Payload/tap1000000.app/tap1000000" -id="jp.hoge.tap1000000"

Direcionando o aplicativo iOS no Mac com Apple Silicon

Para iniciá-lo, você precisa especificar o nome do processo com -name ou o pid com -pid. O nome do processo e o pid do aplicativo iOS podem ser verificados no Monitor de Atividades.

$ ipa-medit -name <nome do processo>

Comandos

Aqui estão os comandos disponíveis em um prompt interativo.

find

Pesquisa o inteiro especificado na memória.

> 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

Por padrão, apenas inteiros são pesquisados ao direcionar aplicativos iOS rodando no iPhone, pois a API do LLDB é lenta. Ao direcionar um aplicativo iOS rodando no Mac com Apple Silicon, strings também serão pesquisadas.

Você também pode especificar o tipo de dado como string, word, dword, qword.

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

filter

Filtra os resultados de pesquisa anteriores que correspondem aos resultados atuais.

> filter 999842
Success to halt process
Found: 1!!
Address: 0x1087beea0

patch

Escreve o valor especificado no endereço encontrado pela pesquisa.

> patch 10
Successfully patched!

attach

Anexa-se ao processo alvo.

> attach
Success to halt process

detach

Desanexa-se do processo anexado.

> detach
Success to continue process

ps

Obtém informações sobre o processo alvo. Funcionará apenas se você estiver direcionando um aplicativo iOS rodando em um iPhone.

> 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

Para sair do medit, use o comando exit ou Ctrl-D.

> exit
Bye!

Solução de problemas

Falha ao obter resposta ao pacote de handshake

Se você receber o erro /private/var/containers/Bundle/Application/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/hoge.app: error: failed to get reply to handshake packet e não conseguir se comunicar adequadamente com o dispositivo iOS e o lldb, inicie o Xcode e compile algum aplicativo, e isso funcionará.

Não foi possível conectar ao lockdownd

Se você receber o erro Could not connect to lockdownd. e não conseguir se comunicar adequadamente com o dispositivo iOS e o ideviceinstaller, inicie o Xcode e compile algum aplicativo, e isso funcionará. Se isso não resolver o problema, atualize ideviceinstaller e libimobiledevice para as versões mais recentes usando o exemplo de comandos na seção Requisitos.

Não foi possível iniciar o com.apple.debugserver

Isso pode ser corrigido instalando o código mais recente sem versão do libimobiledevice e ideviceinstaller adicionando a opção --HEAD ao fazer brew install.

Baixar ferramenta