{"adoption": {"forks": 1745, "observed_at": "2026-08-28T04:08:18.117298+00:00", "stars": 3768}, "canonical_url": "https://ross.abutalabs.com/products/confuserex", "card": {"archived": true, "artifact_type": "cli-tool", "description": "An open-source, free protector for .NET applications", "domain": ["security", "developer-tools", "cross-platform"], "enriched": true, "function": ["security", "compiler", "developer-tools", "cli", "gui", "plugin-system"], "health_score": 10, "homepage": "http://yck1509.github.io/ConfuserEx/", "language": "C#", "license": "NOASSERTION", "license_family": "other", "maturity": "abandoned", "member_repos": ["yck1509/ConfuserEx"], "name": "yck1509/ConfuserEx", "platform": ["windows", "dotnet", "cli", "cross-platform"], "pushed_at": "2019-05-14T14:23:56+00:00", "repo": "yck1509/ConfuserEx", "stars": 3768, "tags": ["obfuscation", "code-protection", "net-framework", "anti-tampering", "anti-debugging", "symbol-renaming", "discontinued"], "topics": [], "urls": [], "use_cases": ["protect .NET applications from reverse engineering", "obfuscate C# assemblies to prevent decompilation", "rename symbols in .NET binaries including WPF/BAML", "encrypt constants and resources in .NET apps", "add anti-debugger and anti-tampering protection to .NET software", "compress and embed dependencies into a protected .NET output"], "what_it_is": "ConfuserEx is a free, open-source protector for .NET applications that provides obfuscation features such as symbol renaming, control flow obfuscation, constant and resource encryption, and anti-debugging/anti-tampering protections. It offers both a command-line interface and a graphical interface, and is the successor to the original Confuser project.", "when_to_avoid": ["you are targeting .NET Core, .NET 5+, or modern .NET runtimes beyond .NET Framework 4.5", "you need an actively maintained tool with bug fixes and community support, since this project is discontinued and unmaintained", "you require guaranteed protection against determined attackers, as obfuscation is not a security boundary"], "when_to_choose": ["you need to obfuscate a .NET Framework 2.0-4.5 application for free", "you want commercial-protector-level features like control flow obfuscation and method encryption without paying for a license", "you need a plugin-extensible obfuscation pipeline for .NET assemblies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/confuserex", "repo": "yck1509/ConfuserEx", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:28:35.026255+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c65dba75679d1f1193497e416a2614e8d0e617c5203c8b2514f7e78c81ab8172", "fetched_at": "2026-08-28T04:08:18.117298+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yck1509/ConfuserEx"}, {"content_hash": "59f5e77173d2b1cea34ecb9918ab30f969ee47c6983c9d81d6b0852589794651", "fetched_at": "2026-08-29T09:22:39.387138+00:00", "kind": "homepage", "missing": false, "url": "http://yck1509.github.io/ConfuserEx/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:28:35.026255+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c65dba75679d1f1193497e416a2614e8d0e617c5203c8b2514f7e78c81ab8172", "fetched_at": "2026-08-28T04:08:18.117298+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yck1509/ConfuserEx"}, {"content_hash": "59f5e77173d2b1cea34ecb9918ab30f969ee47c6983c9d81d6b0852589794651", "fetched_at": "2026-08-29T09:22:39.387138+00:00", "kind": "homepage", "missing": false, "url": "http://yck1509.github.io/ConfuserEx/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:28:35.026255+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c65dba75679d1f1193497e416a2614e8d0e617c5203c8b2514f7e78c81ab8172", "fetched_at": "2026-08-28T04:08:18.117298+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yck1509/ConfuserEx"}, {"content_hash": "59f5e77173d2b1cea34ecb9918ab30f969ee47c6983c9d81d6b0852589794651", "fetched_at": "2026-08-29T09:22:39.387138+00:00", "kind": "homepage", "missing": false, "url": "http://yck1509.github.io/ConfuserEx/"}], "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:08:18.117298+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:28:35.026255+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c65dba75679d1f1193497e416a2614e8d0e617c5203c8b2514f7e78c81ab8172", "fetched_at": "2026-08-28T04:08:18.117298+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yck1509/ConfuserEx"}, {"content_hash": "59f5e77173d2b1cea34ecb9918ab30f969ee47c6983c9d81d6b0852589794651", "fetched_at": "2026-08-29T09:22:39.387138+00:00", "kind": "homepage", "missing": false, "url": "http://yck1509.github.io/ConfuserEx/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:28:35.026255+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c65dba75679d1f1193497e416a2614e8d0e617c5203c8b2514f7e78c81ab8172", "fetched_at": "2026-08-28T04:08:18.117298+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yck1509/ConfuserEx"}, {"content_hash": "59f5e77173d2b1cea34ecb9918ab30f969ee47c6983c9d81d6b0852589794651", "fetched_at": "2026-08-29T09:22:39.387138+00:00", "kind": "homepage", "missing": false, "url": "http://yck1509.github.io/ConfuserEx/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:28:35.026255+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c65dba75679d1f1193497e416a2614e8d0e617c5203c8b2514f7e78c81ab8172", "fetched_at": "2026-08-28T04:08:18.117298+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yck1509/ConfuserEx"}, {"content_hash": "59f5e77173d2b1cea34ecb9918ab30f969ee47c6983c9d81d6b0852589794651", "fetched_at": "2026-08-29T09:22:39.387138+00:00", "kind": "homepage", "missing": false, "url": "http://yck1509.github.io/ConfuserEx/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:18.117298+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:28:35.026255+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c65dba75679d1f1193497e416a2614e8d0e617c5203c8b2514f7e78c81ab8172", "fetched_at": "2026-08-28T04:08:18.117298+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yck1509/ConfuserEx"}, {"content_hash": "59f5e77173d2b1cea34ecb9918ab30f969ee47c6983c9d81d6b0852589794651", "fetched_at": "2026-08-29T09:22:39.387138+00:00", "kind": "homepage", "missing": false, "url": "http://yck1509.github.io/ConfuserEx/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:28:35.026255+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c65dba75679d1f1193497e416a2614e8d0e617c5203c8b2514f7e78c81ab8172", "fetched_at": "2026-08-28T04:08:18.117298+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yck1509/ConfuserEx"}, {"content_hash": "59f5e77173d2b1cea34ecb9918ab30f969ee47c6983c9d81d6b0852589794651", "fetched_at": "2026-08-29T09:22:39.387138+00:00", "kind": "homepage", "missing": false, "url": "http://yck1509.github.io/ConfuserEx/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:28:35.026255+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c65dba75679d1f1193497e416a2614e8d0e617c5203c8b2514f7e78c81ab8172", "fetched_at": "2026-08-28T04:08:18.117298+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yck1509/ConfuserEx"}, {"content_hash": "59f5e77173d2b1cea34ecb9918ab30f969ee47c6983c9d81d6b0852589794651", "fetched_at": "2026-08-29T09:22:39.387138+00:00", "kind": "homepage", "missing": false, "url": "http://yck1509.github.io/ConfuserEx/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:28:35.026255+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c65dba75679d1f1193497e416a2614e8d0e617c5203c8b2514f7e78c81ab8172", "fetched_at": "2026-08-28T04:08:18.117298+00:00", "kind": "readme", "missing": false, "url": "https://github.com/yck1509/ConfuserEx"}, {"content_hash": "59f5e77173d2b1cea34ecb9918ab30f969ee47c6983c9d81d6b0852589794651", "fetched_at": "2026-08-29T09:22:39.387138+00:00", "kind": "homepage", "missing": false, "url": "http://yck1509.github.io/ConfuserEx/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4541, "days_push": 2668, "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}}