{"adoption": {"forks": 307, "observed_at": "2026-08-28T04:06:42.198481+00:00", "stars": 2378}, "canonical_url": "https://ross.abutalabs.com/products/ret-sync", "card": {"archived": false, "artifact_type": "plugin", "description": "ret-sync is a set of plugins that helps to synchronize a debugging session (WinDbg/GDB/LLDB/OllyDbg2/x64dbg) with IDA/Ghidra/Binary Ninja disassemblers.", "domain": ["reverse-engineering", "security", "developer-tools"], "enriched": true, "function": ["reverse-engineering", "security", "developer-tools"], "health_score": 61, "homepage": null, "language": "C", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["bootleg/ret-sync"], "name": "bootleg/ret-sync", "platform": ["windows", "cross-platform"], "pushed_at": "2026-02-15T09:12:10+00:00", "repo": "bootleg/ret-sync", "stars": 2378, "tags": ["debugger-plugin", "disassembler", "ida-pro", "ghidra", "binary-ninja", "windbg", "gdb", "lldb", "x64dbg", "dynamic-analysis", "static-analysis", "linux", "macos"], "topics": ["reverse-engineering", "debugger", "disassembler", "software-analysis", "ida-pro", "ghidra", "ida-plugin", "binaryninja"], "urls": [], "use_cases": ["synchronize IDA graph view with a live WinDbg debugging session", "trace execution in Ghidra while debugging with GDB", "debug malware with x64dbg while following along in a disassembler", "rebase addresses on-the-fly to deal with ASLR during dynamic analysis", "sync multiple IDBs at once to trace across multiple modules", "pass debugger comments and command output into the disassembler"], "what_it_is": "ret-sync is a set of plugins that synchronize a debugging session (WinDbg, GDB, LLDB, OllyDbg, x64dbg) with disassemblers (IDA, Ghidra, Binary Ninja). It combines static and dynamic analysis by keeping disassembler views in sync with the debugger's live state, including automatic ASLR rebasing.", "when_to_avoid": ["you only do static analysis without a debugger", "you use a disassembler or debugger not on the supported list", "you need a fully integrated single-tool reversing environment"], "when_to_choose": ["you want to combine static disassembly with live dynamic debugging", "you need ASLR-aware address synchronization between debugger and disassembler", "you work across multiple hosts or VMs with debugger and disassembler separated", "you need support for many debugger/disassembler combinations from one tool"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ret-sync", "repo": "bootleg/ret-sync", "role": "main", "score": 53}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:34:53.825456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "459aec062a339e71cbde55293c311217fff27f008aa7a6098ededed7d3e800c1", "fetched_at": "2026-08-28T04:06:42.198481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bootleg/ret-sync"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:34:53.825456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "459aec062a339e71cbde55293c311217fff27f008aa7a6098ededed7d3e800c1", "fetched_at": "2026-08-28T04:06:42.198481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bootleg/ret-sync"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:34:53.825456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "459aec062a339e71cbde55293c311217fff27f008aa7a6098ededed7d3e800c1", "fetched_at": "2026-08-28T04:06:42.198481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bootleg/ret-sync"}], "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:42.198481+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:34:53.825456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "459aec062a339e71cbde55293c311217fff27f008aa7a6098ededed7d3e800c1", "fetched_at": "2026-08-28T04:06:42.198481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bootleg/ret-sync"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:34:53.825456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "459aec062a339e71cbde55293c311217fff27f008aa7a6098ededed7d3e800c1", "fetched_at": "2026-08-28T04:06:42.198481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bootleg/ret-sync"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:34:53.825456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "459aec062a339e71cbde55293c311217fff27f008aa7a6098ededed7d3e800c1", "fetched_at": "2026-08-28T04:06:42.198481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bootleg/ret-sync"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:42.198481+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:34:53.825456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "459aec062a339e71cbde55293c311217fff27f008aa7a6098ededed7d3e800c1", "fetched_at": "2026-08-28T04:06:42.198481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bootleg/ret-sync"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:34:53.825456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "459aec062a339e71cbde55293c311217fff27f008aa7a6098ededed7d3e800c1", "fetched_at": "2026-08-28T04:06:42.198481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bootleg/ret-sync"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:34:53.825456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "459aec062a339e71cbde55293c311217fff27f008aa7a6098ededed7d3e800c1", "fetched_at": "2026-08-28T04:06:42.198481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bootleg/ret-sync"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:34:53.825456+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "459aec062a339e71cbde55293c311217fff27f008aa7a6098ededed7d3e800c1", "fetched_at": "2026-08-28T04:06:42.198481+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bootleg/ret-sync"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 67, "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": 3888, "days_push": 199, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 53, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}