{"id":17058793,"url":"https://github.com/h4sh5/bcddb","last_synced_at":"2025-07-27T00:14:01.529Z","repository":{"id":115382680,"uuid":"365639693","full_name":"h4sh5/bcddb","owner":"h4sh5","description":"cross-architecture binary comparison database","archived":false,"fork":false,"pushed_at":"2024-10-29T03:30:05.000Z","size":261,"stargazers_count":8,"open_issues_count":7,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-25T03:12:03.359Z","etag":null,"topics":["decompiler","lsh","minhash","retdec","reverse-engineering"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/h4sh5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-05-09T00:52:01.000Z","updated_at":"2025-03-21T20:31:38.000Z","dependencies_parsed_at":"2024-10-14T10:31:04.660Z","dependency_job_id":"ef2ae13d-97a3-4877-af03-c58521a69d95","html_url":"https://github.com/h4sh5/bcddb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/h4sh5/bcddb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h4sh5%2Fbcddb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h4sh5%2Fbcddb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h4sh5%2Fbcddb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h4sh5%2Fbcddb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h4sh5","download_url":"https://codeload.github.com/h4sh5/bcddb/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h4sh5%2Fbcddb/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267274024,"owners_count":24062677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["decompiler","lsh","minhash","retdec","reverse-engineering"],"created_at":"2024-10-14T10:30:57.622Z","updated_at":"2025-07-27T00:14:01.504Z","avatar_url":"https://github.com/h4sh5.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BCD: Cross-architecture Binary Comparison DB\n\nworkflow:\n`binary -\u003e retdec lift into llvm-ir -\u003e minhash -\u003e db` \n\nStores functions in binaries as minhash sets for quick lookup for similar functions.\nExample usecases:\n- detect libc functions with stripped names (demangling)\n- detect similar functions in other binaries (e.g. malware analysis/clustering)\n- match functions in a binary with open source functions (source code recovery / decompiling)\n\n## pre-requisites\n\n(can comment out ssdeep and pysimhash if not running experiments, the main db is in minhash)\n\n`pip3 install -r requirements.txt`\n\nneed to install retdec from https://github.com/avast/retdec\nand place `retdec-decompiler` on PATH\n\n### index functions in a binary \n\n`./bcd.py -i /bin/whoami`\n\n(if no picklefile specified, a new db is saved in the `db_dict.pkl`)\n\n### search similar functions from a binary\n\n`./bcd.py /bin/echo`\n\n## usage recommendations\n\n- index binaries that have symbols (not stripped) for symbol demangling\n\t- to see binaries with symbols, use `nm \u003cpath to binary\u003e` on linux/mac (use WSL if you are on windows)\n\n- index known functions, like crypto routines, to detect similar crypto routines (e.g. in ransomware)\n\n## web app\n\nThe Work-In-Progress flask app works ONLY IN SINGLE THREADED MODE (because of global variables)\n\nIf you are running it behind a reverse proxy (like nginx), do NOT use multiple workers. Just use one python and process and proxy pass the port (e.g. 5000)\n\nMake sure you have flask installed (already in requirements.txt).\n\nto run:\n\n`./server.py`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh4sh5%2Fbcddb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh4sh5%2Fbcddb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh4sh5%2Fbcddb/lists"}