{"adoption": {"forks": 349, "observed_at": "2026-08-28T04:07:21.964128+00:00", "stars": 2787}, "canonical_url": "https://ross.abutalabs.com/products/mcsema", "card": {"archived": true, "artifact_type": "framework", "description": "Framework for lifting x86, amd64, aarch64, sparc32, and sparc64 program binaries to LLVM bitcode", "domain": ["reverse-engineering", "security", "compilers", "developer-tools"], "enriched": true, "function": ["reverse-engineering", "compiler", "security", "parser"], "health_score": 10, "homepage": "https://www.trailofbits.com/expertise/mcsema", "language": "C++", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["lifting-bits/mcsema"], "name": "lifting-bits/mcsema", "platform": ["windows", "cpp"], "pushed_at": "2022-04-26T13:43:28+00:00", "repo": "lifting-bits/mcsema", "stars": 2787, "tags": ["binary-lifting", "llvm-bitcode", "binary-analysis", "ida-pro", "binary-translation", "static-binary-rewriting", "remill", "linux", "macos"], "topics": ["x86", "x86-64", "aarch64", "llvm", "llvm-ir", "llvm-bitcode", "ida", "binary-analysis", "sparc", "sparc64"], "urls": [], "use_cases": ["lift a binary to llvm bitcode for analysis", "analyze a stripped executable without source code", "fuzz a closed-source binary with libFuzzer", "recompile a binary into a runnable program with modifications", "retroactively harden binaries against security bugs", "validate vendor binaries against expected behavior"], "what_it_is": "McSema is a framework that lifts native x86, amd64, aarch64, sparc32, and sparc64 executable binaries (ELF and PE) into LLVM bitcode. It works in two steps—control flow recovery via IDA Pro disassembly and instruction translation via the remill library—enabling program analysis, fuzzing, and binary recompilation.", "when_to_avoid": ["you need a maintained tool with recent updates (latest release 2022)", "you cannot use IDA Pro for control flow recovery", "you need lifting for architectures beyond x86, amd64, aarch64, and sparc"], "when_to_choose": ["you need to analyze or transform binaries without source code", "you want to apply LLVM-based tools (optimizers, fuzzers, sanitizers) to native binaries", "you need to lift x86, amd64, aarch64, or sparc binaries to bitcode"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mcsema", "repo": "lifting-bits/mcsema", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:16:00.277174+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7675105df180e5c244c2fbedb2490701a52607d89f3e686f8a53b842370b28", "fetched_at": "2026-08-28T04:07:21.964128+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lifting-bits/mcsema"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:16:00.277174+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7675105df180e5c244c2fbedb2490701a52607d89f3e686f8a53b842370b28", "fetched_at": "2026-08-28T04:07:21.964128+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lifting-bits/mcsema"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:16:00.277174+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7675105df180e5c244c2fbedb2490701a52607d89f3e686f8a53b842370b28", "fetched_at": "2026-08-28T04:07:21.964128+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lifting-bits/mcsema"}], "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:07:21.964128+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:16:00.277174+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7675105df180e5c244c2fbedb2490701a52607d89f3e686f8a53b842370b28", "fetched_at": "2026-08-28T04:07:21.964128+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lifting-bits/mcsema"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:16:00.277174+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7675105df180e5c244c2fbedb2490701a52607d89f3e686f8a53b842370b28", "fetched_at": "2026-08-28T04:07:21.964128+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lifting-bits/mcsema"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:16:00.277174+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7675105df180e5c244c2fbedb2490701a52607d89f3e686f8a53b842370b28", "fetched_at": "2026-08-28T04:07:21.964128+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lifting-bits/mcsema"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:21.964128+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:16:00.277174+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7675105df180e5c244c2fbedb2490701a52607d89f3e686f8a53b842370b28", "fetched_at": "2026-08-28T04:07:21.964128+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lifting-bits/mcsema"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:16:00.277174+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7675105df180e5c244c2fbedb2490701a52607d89f3e686f8a53b842370b28", "fetched_at": "2026-08-28T04:07:21.964128+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lifting-bits/mcsema"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:16:00.277174+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7675105df180e5c244c2fbedb2490701a52607d89f3e686f8a53b842370b28", "fetched_at": "2026-08-28T04:07:21.964128+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lifting-bits/mcsema"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:16:00.277174+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b7675105df180e5c244c2fbedb2490701a52607d89f3e686f8a53b842370b28", "fetched_at": "2026-08-28T04:07:21.964128+00:00", "kind": "readme", "missing": false, "url": "https://github.com/lifting-bits/mcsema"}], "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": 4418, "days_push": 1590, "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}}