{"adoption": {"forks": 270, "observed_at": "2026-08-28T04:04:27.735395+00:00", "stars": 1348}, "canonical_url": "https://ross.abutalabs.com/products/armariris", "card": {"archived": false, "artifact_type": "framework", "description": "孤挺花（Armariris） --  由上海交通大学密码与计算机安全实验室维护的LLVM混淆框架", "domain": ["security", "compilers", "reverse-engineering", "developer-tools"], "enriched": true, "function": ["compiler", "security", "cryptography", "build-tool"], "health_score": 20, "homepage": null, "language": "C++", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["GoSSIP-SJTU/Armariris"], "name": "GoSSIP-SJTU/Armariris", "platform": ["windows", "cpp", "cross-platform"], "pushed_at": "2019-06-03T05:32:54+00:00", "repo": "GoSSIP-SJTU/Armariris", "stars": 1348, "tags": ["llvm", "obfuscator", "code-obfuscation", "control-flow-flattening", "string-encryption", "instruction-substitution", "software-protection", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["obfuscate C/C++ binaries to hinder reverse engineering", "encrypt string literals in compiled programs", "flatten control flow to resist static analysis", "substitute instructions to obscure program logic", "protect proprietary software from tampering"], "what_it_is": "Armariris is an LLVM-based code obfuscation framework maintained by Shanghai Jiao Tong University's cryptography and computer security lab. It supports multiple languages and platforms, offering string encryption, control flow flattening, and instruction substitution via compile-time flags.", "when_to_avoid": ["you need actively maintained obfuscation for recent LLVM versions", "you only need lightweight protection like packing or anti-debugging", "you require commercial-grade support or advanced obfuscation techniques"], "when_to_choose": ["you need LLVM-based obfuscation integrated into your normal build pipeline", "you want string encryption, control flow flattening, and instruction substitution in one tool", "you need multi-language, multi-platform binary protection"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/armariris", "repo": "GoSSIP-SJTU/Armariris", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.305731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "483e7c8bb008b4b4a51a85a05a9d3299c5f39b3b19d4e9bda0d714c30b0c2c08", "fetched_at": "2026-08-28T04:04:27.735395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GoSSIP-SJTU/Armariris"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.305731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "483e7c8bb008b4b4a51a85a05a9d3299c5f39b3b19d4e9bda0d714c30b0c2c08", "fetched_at": "2026-08-28T04:04:27.735395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GoSSIP-SJTU/Armariris"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.305731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "483e7c8bb008b4b4a51a85a05a9d3299c5f39b3b19d4e9bda0d714c30b0c2c08", "fetched_at": "2026-08-28T04:04:27.735395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GoSSIP-SJTU/Armariris"}], "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:27.735395+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.305731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "483e7c8bb008b4b4a51a85a05a9d3299c5f39b3b19d4e9bda0d714c30b0c2c08", "fetched_at": "2026-08-28T04:04:27.735395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GoSSIP-SJTU/Armariris"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.305731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "483e7c8bb008b4b4a51a85a05a9d3299c5f39b3b19d4e9bda0d714c30b0c2c08", "fetched_at": "2026-08-28T04:04:27.735395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GoSSIP-SJTU/Armariris"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.305731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "483e7c8bb008b4b4a51a85a05a9d3299c5f39b3b19d4e9bda0d714c30b0c2c08", "fetched_at": "2026-08-28T04:04:27.735395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GoSSIP-SJTU/Armariris"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:27.735395+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.305731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "483e7c8bb008b4b4a51a85a05a9d3299c5f39b3b19d4e9bda0d714c30b0c2c08", "fetched_at": "2026-08-28T04:04:27.735395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GoSSIP-SJTU/Armariris"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.305731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "483e7c8bb008b4b4a51a85a05a9d3299c5f39b3b19d4e9bda0d714c30b0c2c08", "fetched_at": "2026-08-28T04:04:27.735395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GoSSIP-SJTU/Armariris"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.305731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "483e7c8bb008b4b4a51a85a05a9d3299c5f39b3b19d4e9bda0d714c30b0c2c08", "fetched_at": "2026-08-28T04:04:27.735395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GoSSIP-SJTU/Armariris"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:42:24.305731+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "483e7c8bb008b4b4a51a85a05a9d3299c5f39b3b19d4e9bda0d714c30b0c2c08", "fetched_at": "2026-08-28T04:04:27.735395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GoSSIP-SJTU/Armariris"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3353, "days_push": 2648, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}