Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
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
reFlutter — Corrige as bibliotecas do motor Flutter para permitir engenharia reversa em tempo de execução, interceptação de tráfego e bypass de SSL pinning para aplicativos Android e iOS sem necessidade de root ou instalação de certificados. | Kitploit
Ferramentas/GitHubGitHub/impact-i/reflutter
Segurança AndroidAnálise Dinâmica (Sandboxing)Segurança iOSEngenharia ReversaTestes de PenetraçãoSegurança Móvel
GitHubimpact-i/reflutter

reFlutter

Corrige as bibliotecas do motor Flutter para permitir engenharia reversa em tempo de execução, interceptação de tráfego e bypass de SSL pinning para aplicativos Android e iOS sem necessidade de root ou instalação de certificados.

Ver Repositório
2.7k29329há 6 diasRevisado 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

stars

Leia mais no blog: https://swarm.ptsecurity.com/fork-bomb-for-flutter/

Este framework auxilia na engenharia reversa de aplicativos Flutter usando a versão corrigida da biblioteca Flutter, que já está compilada e pronta para reempacotamento do app. Esta biblioteca tem o processo de desserialização de snapshot modificado para permitir que você realize análise dinâmica de forma conveniente.

Principais recursos:

  • socket.cc é corrigido para monitoramento e interceptação de tráfego;
  • dart.cc é modificado para imprimir classes, funções e alguns campos;
  • exibe o deslocamento absoluto de código para funções;
  • contém pequenas alterações para compilação bem-sucedida;
  • se você deseja implementar suas próprias correções, alterações manuais no código do Flutter são suportadas usando um Dockerfile especialmente criado.

Engines suportadas

  • Android: arm64, arm32;
  • iOS: arm64;
  • Release: Stable, Beta

Instalação

# Linux, Windows, MacOS
pip3 install reflutter==0.8.6

Uso

impact@f:~$ reflutter main.apk

Please enter your Burp Suite IP: <input_ip>

SnapshotHash: 8ee4ef7a67df9845fba331734198a953
The resulting apk file: ./release.RE.apk
Please sign the apk file

impact@f:~$ reflutter main.ipa

Opções:

  • -p, --patch-dump — modo dump: corrige a engine para emitir dump.dart (classes/métodos/offsets) na inicialização, e imprime uma dica de frida.js em vez das instruções de proxy.
  • -n, --no-interact — nunca solicita um IP do Burp (implica 127.0.0.1); útil para engines antigas em CI.
  • -b <Snapshot_Hash>, --build-engine — modo de build da engine: imprime o commit da engine para um snapshot hash e (quando executado dentro de um checkout flutter/flutter) aplica os patches de código-fonte do reFlutter. Veja scripts/local-release.

Interceptação de tráfego

Você precisa especificar o IP do seu Burp Suite Proxy Server localizado na mesma rede onde está o dispositivo com o aplicativo Flutter. Em seguida, configure o Proxy em BurpSuite -> Listener Proxy -> Options tab:

  • Adicionar porta: 8083
  • Bind to address: All interfaces
  • Request handling: Support invisible proxying = True

Não é necessária instalação de certificado nem acesso root para Android. O reFlutter também permite contornar algumas das implementações de certificate pinning do Flutter.

⚠️ Nota: Engines até e incluindo Flutter 3.24.x (snapshot hash 80a49c7111088100a233b2ae788e1f48) ainda carregam o IP de proxy hardcoded e são corrigidas no local. A partir do 3.27.x o IP hardcoded não existe mais — configure o proxy diretamente no dispositivo.

No Android

Use o ADB para configurar o proxy do dispositivo:

adb -s <device> shell "settings put global http_proxy <proxy_ip:port>"

Assine, alinhe e instale o APK. Opcionalmente, configure o TunProxy para rotear o tráfego através do Burp Suite.

No iOS

Assine e instale o IPA. Configure o Potatso para usar seu servidor proxy do Burp Suite.

Uso no Android

O apk resultante deve ser alinhado e assinado. Uma ferramenta recomendada é o uber-apk-signer:

java -jar uber-apk-signer.jar --allowResign -a release.RE.apk

Execute o app em um dispositivo. Determine _kDartIsolateSnapshotInstructions via busca binária. O reFlutter grava o arquivo de dump na pasta raiz do app e define permissões 777. Recupere-o usando:

adb -d shell "cat /data/data/<PACKAGE_NAME>/dump.dart" > dump.dart
conteúdo do arquivo
Library:'package:anyapp/navigation/DeepLinkImpl.dart' Class: Navigation extends Object {
String* DeepUrl = anyapp://evil.com/ ;
...

Uso no iOS

Após executar reflutter main.ipa, execute o app no dispositivo. O caminho do arquivo de dump é impresso nos logs do console do Xcode:

Current working dir: /private/var/mobile/Containers/Data/Application/<UUID>/dump.dart

Recupere o arquivo do dispositivo.

Frida

frida-tools==13.7.1
frida==16.7.19

Use os offsets de dump no script do Frida:

frida -U -f <package> -l frida.js

Para encontrar _kDartIsolateSnapshotInstructions:

readelf -Ws libapp.so

Procure pelo campo Value.

A Fazer

  • Exibir deslocamento absoluto de código para funções;
  • Extrair mais strings e campos;
  • Adicionar patch de socket;
  • Estender o suporte da engine para Debug usando Fork e Github Actions;
  • Melhorar a detecção de App.framework e libapp.so dentro do arquivo zip

Build da Engine

As engines são compiladas com scripts/local-release (macOS; compila v2 + v3 para iOS e Android arm64/arm/x64, verifica se cada patch foi aplicado e envia os assets de release) com base nos dados em enginehash.csv. O commit da engine para um snapshot hash é resolvido via reflutter -b <Snapshot_Hash>. O snapshot hash é obtido de:

https://storage.googleapis.com/flutter_infra_release/flutter/<hash>/android-arm64-release/linux-x64.zip
release

gif

Build Personalizado

A aplicação manual de patches no código do Flutter é suportada usando Docker:

git clone https://github.com/Impact-I/reFlutter && cd reFlutter
docker build -t reflutter -f Dockerfile .

Execute com:

docker run -it -v "$(pwd):/t" -e HASH_PATCH=<Snapshot_Hash> -e COMMIT=<Engine_commit> reflutter

Exemplo:

docker run -it -v "$(pwd):/t" -e HASH_PATCH=aa64af18e7d086041ac127cc4bc50c5e -e COMMIT=d44b5a94c976fbb65815374f61ab5392a220b084 reflutter

Exemplo: Compilar Android ARM64 (Linux/Windows)

docker run -e WAIT=300 -e x64=0 -e arm=0 -e HASH_PATCH=<Snapshot_Hash> -e COMMIT=<Engine_commit> --rm -iv${PWD}:/t reflutter

Flags:

  • -e x64=0: desabilita o build x64
  • -e arm64=0: desabilita o build arm64
  • -e arm=0: desabilita o build arm32
  • -e WAIT=300: tempo em segundos para modificar o código-fonte antes do build
  • -e HASH_PATCH: snapshot hash de enginehash.csv
  • -e COMMIT: hash do commit da engine

Baixar ferramenta