{"adoption": {"forks": 141, "observed_at": "2026-08-28T04:04:43.358330+00:00", "stars": 1434}, "canonical_url": "https://ross.abutalabs.com/products/r2frida", "card": {"archived": false, "artifact_type": "plugin", "description": "Radare2 and Frida better together.", "domain": ["security", "reverse-engineering", "developer-tools", "mobile-development"], "enriched": true, "function": ["reverse-engineering", "security", "plugin-system", "developer-tools"], "health_score": 100, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["nowsecure/r2frida"], "name": "nowsecure/r2frida", "platform": ["windows", "cli", "cross-platform"], "pushed_at": "2026-08-24T23:25:59+00:00", "repo": "nowsecure/r2frida", "stars": 1434, "tags": ["frida", "radare2", "dynamic-analysis", "static-analysis", "binary-analysis", "instrumentation", "mobile-security", "memory-inspection", "hooking", "debugging", "linux", "macos", "android", "ios"], "topics": ["frida", "radare2", "ios-security", "android-security", "static-analysis", "dynamic-analysis"], "urls": [], "use_cases": ["hook and trace functions in a running Android app", "inspect memory of an iOS process over USB", "reverse engineer a native binary with dynamic instrumentation", "enumerate classes and methods in an Objective-C or Java process", "patch code and change page permissions in a live process", "run Frida scripts from within radare2", "analyze malware behavior by attaching to a local process"], "what_it_is": "r2frida is a radare2 plugin that integrates the Frida dynamic instrumentation toolkit, letting users inspect and manipulate local or remote processes using r2 commands instead of writing Frida scripts. It supports attaching, spawning, hooking, memory read/write, and tracing across Linux, Windows, macOS, iOS, and Android on x64, arm32, and arm64.", "when_to_avoid": ["you only need static analysis without dynamic instrumentation", "you are not familiar with radare2 or Frida concepts", "you need a GUI-based reverse engineering tool", "your target platform is not supported by Frida"], "when_to_choose": ["you want to combine radare2's static analysis with Frida's dynamic instrumentation", "you need to analyze mobile apps on iOS or Android", "you prefer r2 commands over writing raw Frida JavaScript", "you need cross-platform process inspection without installing frida-tools on the host"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/r2frida", "repo": "nowsecure/r2frida", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:36:55.338465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8379940986cca714c907ccd3a3bf0ab005afca5ea3f869d4b6189f709ae5120c", "fetched_at": "2026-08-28T04:04:43.358330+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nowsecure/r2frida"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:36:55.338465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8379940986cca714c907ccd3a3bf0ab005afca5ea3f869d4b6189f709ae5120c", "fetched_at": "2026-08-28T04:04:43.358330+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nowsecure/r2frida"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:36:55.338465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8379940986cca714c907ccd3a3bf0ab005afca5ea3f869d4b6189f709ae5120c", "fetched_at": "2026-08-28T04:04:43.358330+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nowsecure/r2frida"}], "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:43.358330+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:36:55.338465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8379940986cca714c907ccd3a3bf0ab005afca5ea3f869d4b6189f709ae5120c", "fetched_at": "2026-08-28T04:04:43.358330+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nowsecure/r2frida"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:36:55.338465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8379940986cca714c907ccd3a3bf0ab005afca5ea3f869d4b6189f709ae5120c", "fetched_at": "2026-08-28T04:04:43.358330+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nowsecure/r2frida"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:36:55.338465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8379940986cca714c907ccd3a3bf0ab005afca5ea3f869d4b6189f709ae5120c", "fetched_at": "2026-08-28T04:04:43.358330+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nowsecure/r2frida"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:43.358330+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:36:55.338465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8379940986cca714c907ccd3a3bf0ab005afca5ea3f869d4b6189f709ae5120c", "fetched_at": "2026-08-28T04:04:43.358330+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nowsecure/r2frida"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:36:55.338465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8379940986cca714c907ccd3a3bf0ab005afca5ea3f869d4b6189f709ae5120c", "fetched_at": "2026-08-28T04:04:43.358330+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nowsecure/r2frida"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:36:55.338465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8379940986cca714c907ccd3a3bf0ab005afca5ea3f869d4b6189f709ae5120c", "fetched_at": "2026-08-28T04:04:43.358330+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nowsecure/r2frida"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:36:55.338465+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8379940986cca714c907ccd3a3bf0ab005afca5ea3f869d4b6189f709ae5120c", "fetched_at": "2026-08-28T04:04:43.358330+00:00", "kind": "readme", "missing": false, "url": "https://github.com/nowsecure/r2frida"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 85}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4129, "days_push": 9, "days_rel": 23, "gap_med": 45.5, "n_releases_24m": 13}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}