Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
reFlutter — Flutter 엔진 라이브러리를 패치하여, 루트나 인증서 설치 없이 Android 및 iOS 앱에서 런타임 리버스 엔지니어링, 트래픽 가로채기, SSL 고정 우회를 가능하게 합니다. | Kitploit
도구/GitHubGitHub/impact-i/reflutter
Android SecurityDynamic Analysis (Sandboxing)iOS SecurityReverse EngineeringPenetration TestingMobile Security
GitHubimpact-i/reflutter

reFlutter

Flutter 엔진 라이브러리를 패치하여, 루트나 인증서 설치 없이 Android 및 iOS 앱에서 런타임 리버스 엔지니어링, 트래픽 가로채기, SSL 고정 우회를 가능하게 합니다.

저장소 보기
2.7k2931029일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

stars

블로그에서 더 읽기: https://swarm.ptsecurity.com/fork-bomb-for-flutter/

이 프레임워크는 이미 컴파일되어 앱 리패키징이 준비된 패치된 버전의 Flutter 라이브러리를 사용하여 Flutter 앱 리버스 엔지니어링을 돕습니다. 이 라이브러리는 스냅샷 역직렬화 과정이 수정되어 편리한 방식으로 동적 분석을 수행할 수 있습니다.

주요 기능:

  • socket.cc는 트래픽 모니터링 및 차단을 위해 패치되었습니다;
  • 클래스, 함수 및 일부 필드를 출력하도록 dart.cc가 수정되었습니다;
  • 함수의 절대 코드 오프셋 표시;
  • 성공적인 컴파일을 위한 사소한 변경 사항 포함;
  • 자신만의 패치를 구현하려면 특별히 제작된 Dockerfile을 사용하여 수동 Flutter 코드 변경이 지원됩니다.

지원되는 엔진

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

설치

root@kitploit:~
# Linux, Windows, MacOS
pip3 install reflutter==0.8.6

사용법

root@kitploit:~
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

트래픽 차단

Flutter 애플리케이션이 있는 장치와 동일한 네트워크에 있는 Burp Suite 프록시 서버의 IP를 지정해야 합니다. 그런 다음 BurpSuite -> Listener Proxy -> Options 탭에서 프록시를 구성하십시오:

  • 포트 추가: 8083
  • 주소에 바인딩: All interfaces
  • 요청 처리: 투명 프록시 지원 = True

Android의 경우 인증서 설치나 루트 액세스가 필요하지 않습니다. reFlutter는 또한 일부 Flutter 인증서 고정 구현을 우회할 수 있습니다.

⚠️ 참고: Flutter 버전 3.24.0(스냅샷 해시: 80a49c7111088100a233b2ae788e1f48)부터 하드코딩된 프록시 IP와 포트가 제거되었습니다. 이제 장치에서 직접 프록시를 구성해야 합니다.

Android에서

ADB를 사용하여 장치의 프록시를 구성하십시오:

root@kitploit:~
adb -s <device> shell "settings put global http_proxy <proxy_ip:port>"

APK에 서명하고 정렬한 후 설치합니다. 선택적으로 TunProxy를 구성하여 Burp Suite를 통해 트래픽을 라우팅할 수 있습니다.

iOS에서

IPA에 서명하고 설치합니다. Potatso를 구성하여 Burp Suite 프록시 서버를 사용하십시오.

Android에서 사용

결과 APK는 정렬 및 서명되어야 합니다. 권장 도구는 uber-apk-signer입니다:

root@kitploit:~
java -jar uber-apk-signer.jar --allowResign -a release.RE.apk

장치에서 앱을 실행합니다. 바이너리 검색을 통해 _kDartIsolateSnapshotInstructions를 확인합니다. reFlutter는 덤프 파일을 앱의 루트 폴더에 쓰고 777 권한을 설정합니다. 다음을 사용하여 검색하십시오:

root@kitploit:~
adb -d shell "cat /data/data/<PACKAGE_NAME>/dump.dart" > dump.dart
파일 내용
root@kitploit:~
Library:'package:anyapp/navigation/DeepLinkImpl.dart' Class: Navigation extends Object {
String* DeepUrl = anyapp://evil.com/ ;
...

iOS에서 사용

reflutter main.ipa 실행 후 장치에서 앱을 실행합니다. 덤프 파일 경로가 Xcode 콘솔 로그에 출력됩니다:

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

장치에서 파일을 검색합니다.

Frida

root@kitploit:~
frida-tools==13.7.1
frida==16.7.19

Frida 스크립트에서 덤프 오프셋을 사용하십시오:

root@kitploit:~
frida -U -f <package> -l frida.js

_kDartIsolateSnapshotInstructions를 찾으려면:

root@kitploit:~
readelf -Ws libapp.so

Value 필드를 찾으십시오.

할 일

  • 함수의 절대 코드 오프셋 표시;
  • 더 많은 문자열 및 필드 추출;
  • 소켓 패치 추가;
  • Fork 및 Github Actions를 사용하여 엔진 지원을 Debug로 확장;
  • zip 아카이브 내 App.framework 및 libapp.so 탐지 개선

엔진 빌드

엔진은 enginehash.csv의 데이터를 기반으로 GitHub Actions를 사용하여 빌드됩니다. 스냅샷 해시는 다음에서 가져옵니다:

root@kitploit:~
https://storage.googleapis.com/flutter_infra_release/flutter/<hash>/android-arm64-release/linux-x64.zip
릴리스

gif

사용자 정의 빌드

Docker를 사용한 수동 Flutter 코드 패치가 지원됩니다:

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

실행 방법:

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

예시:

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

예시: Android ARM64 빌드 (Linux/Windows)

root@kitploit:~
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

플래그:

  • -e x64=0: x64 빌드 비활성화
  • -e arm64=0: arm64 빌드 비활성화
  • -e arm=0: arm32 빌드 비활성화
  • -e WAIT=300: 빌드 전 소스 수정 시간(초)
  • -e HASH_PATCH: enginehash.csv에서 스냅샷 해시
  • -e COMMIT: 엔진 커밋 해시

도구 다운로드