{"adoption": {"forks": 352, "observed_at": "2026-08-28T04:06:23.620224+00:00", "stars": 2185}, "canonical_url": "https://ross.abutalabs.com/products/novmp", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A static devirtualizer for VMProtect x64 3.x. powered by VTIL.", "domain": ["security", "reverse-engineering", "developer-tools"], "enriched": true, "function": ["reverse-engineering", "compiler", "parser", "developer-tools"], "health_score": 20, "homepage": null, "language": "C++", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "experimental", "member_repos": ["can1357/NoVmp"], "name": "can1357/NoVmp", "platform": ["windows", "cpp", "cli"], "pushed_at": "2021-08-08T16:34:04+00:00", "repo": "can1357/NoVmp", "stars": 2185, "tags": ["devirtualization", "vmprotect", "vtil", "binary-analysis", "deobfuscation", "proof-of-concept"], "topics": ["devirtualization", "vtil", "vmprotect"], "urls": [], "use_cases": ["devirtualize VMProtect-protected x64 binaries", "convert virtualized code into readable VTIL for reverse engineering", "remove VMProtect virtualization from an unpacked dump", "analyze specific virtualized routines by address", "undo VMProtect constant obfuscation"], "what_it_is": "NoVmp is a static devirtualizer that translates VMProtect x64 3.x-virtualized binaries into optimized VTIL intermediate code, optionally recompiling back to x64. It is an experimental proof-of-concept built on the VTIL-Core library.", "when_to_avoid": ["you need to handle packed binaries without dumping them first", "you require the experimental x64 recompilation for production use", "the target binary has relocations stripped", "you need jump table support or fast optimization passes"], "when_to_choose": ["you need to statically analyze or deobfuscate binaries protected with VMProtect x64 3.0-3.5", "you work with VTIL-based binary analysis workflows", "you have an unpacked dump of the target binary"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/novmp", "repo": "can1357/NoVmp", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:48:11.294011+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5ada2c09ba6a5bf6b727143f4cc7f36163499053adfe806d7161d5fe80b374d", "fetched_at": "2026-08-28T04:06:23.620224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/can1357/NoVmp"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:48:11.294011+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5ada2c09ba6a5bf6b727143f4cc7f36163499053adfe806d7161d5fe80b374d", "fetched_at": "2026-08-28T04:06:23.620224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/can1357/NoVmp"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:48:11.294011+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5ada2c09ba6a5bf6b727143f4cc7f36163499053adfe806d7161d5fe80b374d", "fetched_at": "2026-08-28T04:06:23.620224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/can1357/NoVmp"}], "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:23.620224+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:48:11.294011+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5ada2c09ba6a5bf6b727143f4cc7f36163499053adfe806d7161d5fe80b374d", "fetched_at": "2026-08-28T04:06:23.620224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/can1357/NoVmp"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:48:11.294011+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5ada2c09ba6a5bf6b727143f4cc7f36163499053adfe806d7161d5fe80b374d", "fetched_at": "2026-08-28T04:06:23.620224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/can1357/NoVmp"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:48:11.294011+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5ada2c09ba6a5bf6b727143f4cc7f36163499053adfe806d7161d5fe80b374d", "fetched_at": "2026-08-28T04:06:23.620224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/can1357/NoVmp"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.620224+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:48:11.294011+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5ada2c09ba6a5bf6b727143f4cc7f36163499053adfe806d7161d5fe80b374d", "fetched_at": "2026-08-28T04:06:23.620224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/can1357/NoVmp"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:48:11.294011+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5ada2c09ba6a5bf6b727143f4cc7f36163499053adfe806d7161d5fe80b374d", "fetched_at": "2026-08-28T04:06:23.620224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/can1357/NoVmp"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:48:11.294011+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5ada2c09ba6a5bf6b727143f4cc7f36163499053adfe806d7161d5fe80b374d", "fetched_at": "2026-08-28T04:06:23.620224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/can1357/NoVmp"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:48:11.294011+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e5ada2c09ba6a5bf6b727143f4cc7f36163499053adfe806d7161d5fe80b374d", "fetched_at": "2026-08-28T04:06:23.620224+00:00", "kind": "readme", "missing": false, "url": "https://github.com/can1357/NoVmp"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 2208, "days_push": 1851, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}