{"id":13437256,"url":"https://github.com/m4b/bingrep","last_synced_at":"2025-05-14T18:06:58.863Z","repository":{"id":40990870,"uuid":"83196963","full_name":"m4b/bingrep","owner":"m4b","description":"like ~~grep~~ UBER, but for binaries","archived":false,"fork":false,"pushed_at":"2023-02-06T07:00:29.000Z","size":1051,"stargazers_count":1731,"open_issues_count":7,"forks_count":67,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-05-13T15:32:58.133Z","etag":null,"topics":["binary","elf","grep","mach-o","objdump","portable-executable"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m4b.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}},"created_at":"2017-02-26T09:21:23.000Z","updated_at":"2025-05-12T23:23:19.000Z","dependencies_parsed_at":"2023-02-19T04:46:02.986Z","dependency_job_id":null,"html_url":"https://github.com/m4b/bingrep","commit_stats":{"total_commits":130,"total_committers":7,"mean_commits":"18.571428571428573","dds":0.09999999999999998,"last_synced_commit":"d38de026f9054e6f1b49380fc23cd9e58241a032"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4b%2Fbingrep","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4b%2Fbingrep/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4b%2Fbingrep/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4b%2Fbingrep/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m4b","download_url":"https://codeload.github.com/m4b/bingrep/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254198515,"owners_count":22030966,"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","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":["binary","elf","grep","mach-o","objdump","portable-executable"],"created_at":"2024-07-31T03:00:55.451Z","updated_at":"2025-05-14T18:06:53.848Z","avatar_url":"https://github.com/m4b.png","language":"Rust","funding_links":[],"categories":["Applications","Rust","应用程序 Applications","应用","应用 Applications","CLI Utilities","Malware Analysis"],"sub_categories":["System tools","系统工具 System tools","系统工具"],"readme":"# bingrep\n\n\n[![Actions][actions-badge]][actions-url]\n[![crates.io version][crates-bingrep-badge]][crates-bingrep]\n\n\u003c!-- Badges' links --\u003e\n\n[actions-badge]: https://github.com/m4b/bingrep/workflows/CI/badge.svg?branch=master\n[actions-url]: https://github.com/m4b/bingrep/actions\n[crates-bingrep-badge]: https://img.shields.io/crates/v/bingrep.svg\n[crates-bingrep]: https://crates.io/crates/bingrep\n\nGreps through binaries from various OSs and architectures, and colors them. Current backends:\n\n* ELF 32/64, arm, x86, openrisc - all others will parse and color, but relocations won't show properly\n* Mach 32/64, arm, x86\n* Unix and BSD archive printer\n* PE (debug only)\n\n**NOTE**: Building requires rustc version 1.20 or greater.  If you're using a distro's rust compiler, consider using https://rustup.rs to install your rustc compiler and associated binaries.\n\n![elf_table2](etc/elf_table2.png)\n\n![elf_table1](etc/elf_table1.png)\n\n![mach](etc/mach.png)\n\n![archive](etc/archive.png)\n\n## Install\n\n`bingrep` is available through cargo, via `cargo install bingrep`, or you can build, and install the resulting binary wherever you like.\n\n## Build\n\nTested with stable rustc 1.38.0.\n\n`cargo build --release`\n\nNow copy the resulting binary in `\u003cpath_to_bingrep\u003e/target/release/bingrep` wherever you like.\n\n## Run\n\nExample:\n\n```\nbingrep /bin/ls\n```\n\nTo dump internal debug representation of the parsed binary:\n\n```\nbingrep -d /bin/ls\n```\n\nTo demangle symbols, use `-D` or `--demangle`:\n\n```\nbingrep -D /bin/ls\n```\n\n## Meta Analysis (Experimental)\n\nYou can print a hextable (WIP) via `--hex` or an overview of file offset ranges via `--ranges`.\n\n![ranges](etc/ranges.png)\n\n## Searching\n\nSearch functionality is being added.\n\nYou can try it out using `bingrep --search \"string\" ` or `bingrep -s \"string\"`.  Currently only works for ELF targets.\n\nPlease chime in on https://github.com/m4b/bingrep/issues/13 for how this functionality will:\n\n1. Be presented,\n2. What API will be exposed\n3. What usecases are most important (e.g., how do you like to search binaries)\n4. How it will be implemented\n\n# FAQ\n\n\u003e Why is this repo called bingrep, it's nothing like grep at all\n\nThat's a good question; I was using this as a personal development tool for some time, and I was conferring with someone from the internet about some binary stuff, when I decided I should just upload this to a proper repo instead of sending pictures. So I quickly created a repo, I felt like I had been greppin' through binaries, so that was the name I uploaded.  Even worse, I named it `bg` as the produced executable at the time of the upload, and this of course immediately conflicted with the unix command `bg`. There's an [issue](https://github.com/m4b/bingrep/issues/1) for a better name, you can chime in too!\n\n\u003e Why do you/should I use this instead of X ?\n\nFor some of my projects or workflows I need to very quickly see the load address, offset, or size of a symbol/program header/section header/export/import. I got tired of using objdump/nm/X because really, I just needed to colorize addresses, sizes etc., so I can quickly identify them and move on.  So I wrote this, very quickly, and named it a bad name (sorry!). Then I went totally overboard and started coloring everything, everywhere.  You love it, don't worry. Also you're free to use anything you want, whatever makes you happy and productive!\n\n\u003e Is there anything to work on?\n\nYes, there are several open issues. I think I'd actually like to port the symbol map functionality (which enables printing every binary that exports a symbol) from https://github.com/m4b/rdr, as well as implement a \"reverse symbol map\", which finds every binary that calls/imports a symbol.\n\nIf you also like hacking on binary stuff, the backend this uses, https://github.com/m4b/goblin, is responsible for the actual loading, parsing, etc., and there are several open issues on that repo as well if you feel like contributing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm4b%2Fbingrep","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm4b%2Fbingrep","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm4b%2Fbingrep/lists"}