{"adoption": {"forks": 206, "observed_at": "2026-08-28T04:03:12.810746+00:00", "stars": 1009}, "canonical_url": "https://ross.abutalabs.com/products/ajayrandhawa-keylogger", "card": {"archived": false, "artifact_type": "application", "description": "Keylogger is 100% invisible keylogger not only for users, but also undetectable by antivirus software. keylogger Monitors all keystokes, Mouse clicks. It has a seperate process which continues capture system screenshot and send to ftp server in given time.", "domain": ["security", "windows", "developer-tools"], "enriched": true, "function": ["security", "monitoring", "logging"], "health_score": 43, "homepage": null, "language": "C++", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["ajayrandhawa/Keylogger"], "name": "ajayrandhawa/Keylogger", "platform": ["windows", "cpp"], "pushed_at": "2025-08-20T17:49:22+00:00", "repo": "ajayrandhawa/Keylogger", "stars": 1009, "tags": ["keylogger", "surveillance", "stealth", "ftp-upload", "screenshot-capture", "educational", "offensive-security"], "topics": ["client", "visual", "c-plus-plus", "stealth", "hidden", "exploit", "keylogger", "system", "keylogger-screenshot", "advanced", "ftp-client", "bypass-antivirus", "simple", "win7", "win10", "win8", "blackcat"], "urls": [], "use_cases": ["demonstrate keylogging techniques for security education", "capture keystrokes and screenshots on a Windows machine", "study stealth persistence and antivirus bypass methods", "monitor activity on an authorized test system", "learn Windows C++ system programming with GDI+ screenshots"], "what_it_is": "A Windows keylogger written in Visual C++ that invisibly captures keystrokes, mouse clicks, and periodic screenshots, uploading them to an FTP server. It is explicitly framed as an educational tool for demonstrating stealth monitoring and persistence techniques.", "when_to_avoid": ["you need a legitimate employee or parental monitoring solution with legal compliance features", "you want software with a license, active maintenance guarantees, or security audits", "you need cross-platform support", "any use without explicit authorization from the monitored system's owner"], "when_to_choose": ["you need an educational example of Windows keylogging and persistence in C++", "you are studying offensive security or malware behavior in a lab", "you want a working demo of FTP-based log exfiltration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ajayrandhawa-keylogger", "repo": "ajayrandhawa/Keylogger", "role": "main", "score": 49}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.181273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3d12d45ea98299f2d6e5c66abd4ecc6705591e15a0bd74d7717d03a8c8c243de", "fetched_at": "2026-08-28T04:03:12.810746+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ajayrandhawa/Keylogger"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.181273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3d12d45ea98299f2d6e5c66abd4ecc6705591e15a0bd74d7717d03a8c8c243de", "fetched_at": "2026-08-28T04:03:12.810746+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ajayrandhawa/Keylogger"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.181273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3d12d45ea98299f2d6e5c66abd4ecc6705591e15a0bd74d7717d03a8c8c243de", "fetched_at": "2026-08-28T04:03:12.810746+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ajayrandhawa/Keylogger"}], "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:03:12.810746+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.181273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3d12d45ea98299f2d6e5c66abd4ecc6705591e15a0bd74d7717d03a8c8c243de", "fetched_at": "2026-08-28T04:03:12.810746+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ajayrandhawa/Keylogger"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.181273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3d12d45ea98299f2d6e5c66abd4ecc6705591e15a0bd74d7717d03a8c8c243de", "fetched_at": "2026-08-28T04:03:12.810746+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ajayrandhawa/Keylogger"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.181273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3d12d45ea98299f2d6e5c66abd4ecc6705591e15a0bd74d7717d03a8c8c243de", "fetched_at": "2026-08-28T04:03:12.810746+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ajayrandhawa/Keylogger"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:12.810746+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.181273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3d12d45ea98299f2d6e5c66abd4ecc6705591e15a0bd74d7717d03a8c8c243de", "fetched_at": "2026-08-28T04:03:12.810746+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ajayrandhawa/Keylogger"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.181273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3d12d45ea98299f2d6e5c66abd4ecc6705591e15a0bd74d7717d03a8c8c243de", "fetched_at": "2026-08-28T04:03:12.810746+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ajayrandhawa/Keylogger"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.181273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3d12d45ea98299f2d6e5c66abd4ecc6705591e15a0bd74d7717d03a8c8c243de", "fetched_at": "2026-08-28T04:03:12.810746+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ajayrandhawa/Keylogger"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:12:01.181273+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3d12d45ea98299f2d6e5c66abd4ecc6705591e15a0bd74d7717d03a8c8c243de", "fetched_at": "2026-08-28T04:03:12.810746+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ajayrandhawa/Keylogger"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 37, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2955, "days_push": 378, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 49, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}