{"adoption": {"forks": 285, "observed_at": "2026-08-28T04:06:31.117406+00:00", "stars": 2253}, "canonical_url": "https://ross.abutalabs.com/products/bap", "card": {"archived": false, "artifact_type": "framework", "description": "Binary Analysis Platform", "domain": ["reverse-engineering", "security", "programming-languages", "developer-tools"], "enriched": true, "function": ["reverse-engineering", "parser", "interpreter", "security", "plugin-system", "sdk"], "health_score": 69, "homepage": null, "language": "OCaml", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["BinaryAnalysisPlatform/bap"], "name": "BinaryAnalysisPlatform/bap", "platform": ["cli", "python"], "pushed_at": "2026-05-07T15:28:41+00:00", "repo": "BinaryAnalysisPlatform/bap", "stars": 2253, "tags": ["binary-analysis", "disassembler", "lifter", "symbolic-execution", "taint-analysis", "static-analysis", "program-verification", "ocaml", "x86", "arm", "mips", "powerpc", "primus-lisp", "smt", "linux", "macos"], "topics": ["binary-analysis", "reverse-engineering", "program-analysis", "static-analysis", "dynamic-analysis", "program-verification", "instruction-semantics", "taint-analysis", "disassembler", "lifter", "ocaml", "arm", "x86", "security", "emulator", "bap", "powerpc", "mips", "symbolic-execution"], "urls": [], "use_cases": ["analyze binary programs statically", "disassemble and lift binaries to an intermediate representation", "run symbolic execution on binaries", "perform taint analysis on executables", "write custom binary analysis tools in OCaml", "verify properties of binary code with SMT solvers", "emulate and microexecute binary code"], "what_it_is": "CMU Binary Analysis Platform (BAP) is a suite of OCaml libraries and a plugin-extensible CLI tool for analyzing binary programs. It lifts binaries for x86, x86-64, ARM, MIPS, and PowerPC into a semantic IR and provides interpreters, a symbolic executor, taint analysis, and a domain-specific language (Primus Lisp) for writing custom analyses.", "when_to_avoid": ["you only need a GUI disassembler for quick reverse engineering", "you need decompilation to high-level source code", "you require architectures outside BAP's supported set without writing plugins", "you prefer Python-first analysis frameworks like angr"], "when_to_choose": ["you need semantically precise binary analysis rather than just disassembly", "you want to build custom program analyses on top of a well-defined IR", "you work in OCaml or can use C/Python bindings", "you need support for x86, ARM, MIPS, or PowerPC architectures"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bap", "repo": "BinaryAnalysisPlatform/bap", "role": "main", "score": 59}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:43:47.252962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83475959d143195d552f221fbe1713a0d2197f0de8ea88b5967d783215a65d71", "fetched_at": "2026-08-28T04:06:31.117406+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinaryAnalysisPlatform/bap"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:43:47.252962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83475959d143195d552f221fbe1713a0d2197f0de8ea88b5967d783215a65d71", "fetched_at": "2026-08-28T04:06:31.117406+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinaryAnalysisPlatform/bap"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:43:47.252962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83475959d143195d552f221fbe1713a0d2197f0de8ea88b5967d783215a65d71", "fetched_at": "2026-08-28T04:06:31.117406+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinaryAnalysisPlatform/bap"}], "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:06:31.117406+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:43:47.252962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83475959d143195d552f221fbe1713a0d2197f0de8ea88b5967d783215a65d71", "fetched_at": "2026-08-28T04:06:31.117406+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinaryAnalysisPlatform/bap"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:43:47.252962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83475959d143195d552f221fbe1713a0d2197f0de8ea88b5967d783215a65d71", "fetched_at": "2026-08-28T04:06:31.117406+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinaryAnalysisPlatform/bap"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:43:47.252962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83475959d143195d552f221fbe1713a0d2197f0de8ea88b5967d783215a65d71", "fetched_at": "2026-08-28T04:06:31.117406+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinaryAnalysisPlatform/bap"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:31.117406+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:43:47.252962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83475959d143195d552f221fbe1713a0d2197f0de8ea88b5967d783215a65d71", "fetched_at": "2026-08-28T04:06:31.117406+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinaryAnalysisPlatform/bap"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:43:47.252962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83475959d143195d552f221fbe1713a0d2197f0de8ea88b5967d783215a65d71", "fetched_at": "2026-08-28T04:06:31.117406+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinaryAnalysisPlatform/bap"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:43:47.252962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83475959d143195d552f221fbe1713a0d2197f0de8ea88b5967d783215a65d71", "fetched_at": "2026-08-28T04:06:31.117406+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinaryAnalysisPlatform/bap"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:43:47.252962+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "83475959d143195d552f221fbe1713a0d2197f0de8ea88b5967d783215a65d71", "fetched_at": "2026-08-28T04:06:31.117406+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BinaryAnalysisPlatform/bap"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 81, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4325, "days_push": 118, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 59, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}