{"adoption": {"forks": 188, "observed_at": "2026-08-28T04:04:47.786595+00:00", "stars": 1463}, "canonical_url": "https://ross.abutalabs.com/products/ptswarm-reflutter", "card": {"archived": true, "artifact_type": "framework", "description": "Flutter Reverse Engineering Framework", "domain": ["reverse-engineering", "security", "mobile-development", "penetration-testing"], "enriched": true, "function": ["reverse-engineering", "security", "penetration-testing", "cli"], "health_score": 10, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["ptswarm/reFlutter"], "name": "ptswarm/reFlutter", "platform": ["windows", "cli", "python"], "pushed_at": "2022-04-11T10:45:21+00:00", "repo": "ptswarm/reFlutter", "stars": 1463, "tags": ["flutter", "ssl-pinning-bypass", "traffic-interception", "burp-suite", "mobile-security", "apk-repacking", "bug-bounty", "linux", "macos", "android", "ios"], "topics": ["mobile-security", "reverse-engineering", "bugbounty", "ssl-pinning"], "urls": [], "use_cases": ["intercept HTTPS traffic from a Flutter mobile app with Burp Suite", "bypass SSL certificate pinning in Flutter applications", "reverse engineer a Flutter apk or ipa during a bug bounty", "dump Dart classes and functions from a compiled Flutter app", "repack an Android app for dynamic analysis without root", "analyze Flutter app network traffic on iOS arm64 devices"], "what_it_is": "A Python-based framework that repacks Flutter Android and iOS apps with a patched Flutter engine library to enable dynamic analysis. It redirects app traffic through a Burp Suite proxy and dumps Dart snapshot information for reverse engineering, without requiring root or certificate installation.", "when_to_avoid": ["the target app is native Android or iOS rather than Flutter", "you need a maintained tool with recent updates and current Flutter engine support", "you need static analysis only without repacking the app", "your workflow requires non-arm architectures or Flutter master channel builds"], "when_to_choose": ["you need to pentest or reverse engineer a Flutter mobile app", "you want traffic interception without installing certificates or rooting the device", "you need to bypass Flutter SSL pinning implementations", "you want to inspect Dart snapshot classes and functions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ptswarm-reflutter", "repo": "ptswarm/reFlutter", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:35:14.451135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0036ee1c6091035c2e027b5d2af6b198c3bc5525d8e01141976745ecec7fd9", "fetched_at": "2026-08-28T04:04:47.786595+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ptswarm/reFlutter"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:35:14.451135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0036ee1c6091035c2e027b5d2af6b198c3bc5525d8e01141976745ecec7fd9", "fetched_at": "2026-08-28T04:04:47.786595+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ptswarm/reFlutter"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:35:14.451135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0036ee1c6091035c2e027b5d2af6b198c3bc5525d8e01141976745ecec7fd9", "fetched_at": "2026-08-28T04:04:47.786595+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ptswarm/reFlutter"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:35:14.451135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0036ee1c6091035c2e027b5d2af6b198c3bc5525d8e01141976745ecec7fd9", "fetched_at": "2026-08-28T04:04:47.786595+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ptswarm/reFlutter"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:35:14.451135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0036ee1c6091035c2e027b5d2af6b198c3bc5525d8e01141976745ecec7fd9", "fetched_at": "2026-08-28T04:04:47.786595+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ptswarm/reFlutter"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:35:14.451135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0036ee1c6091035c2e027b5d2af6b198c3bc5525d8e01141976745ecec7fd9", "fetched_at": "2026-08-28T04:04:47.786595+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ptswarm/reFlutter"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:47.786595+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:35:14.451135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0036ee1c6091035c2e027b5d2af6b198c3bc5525d8e01141976745ecec7fd9", "fetched_at": "2026-08-28T04:04:47.786595+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ptswarm/reFlutter"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:35:14.451135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0036ee1c6091035c2e027b5d2af6b198c3bc5525d8e01141976745ecec7fd9", "fetched_at": "2026-08-28T04:04:47.786595+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ptswarm/reFlutter"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:35:14.451135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0036ee1c6091035c2e027b5d2af6b198c3bc5525d8e01141976745ecec7fd9", "fetched_at": "2026-08-28T04:04:47.786595+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ptswarm/reFlutter"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:35:14.451135+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0f0036ee1c6091035c2e027b5d2af6b198c3bc5525d8e01141976745ecec7fd9", "fetched_at": "2026-08-28T04:04:47.786595+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ptswarm/reFlutter"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1799, "days_push": 1605, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}