{"id":29182446,"url":"https://github.com/jxsl13/symbol-search","last_synced_at":"2025-07-01T20:05:58.587Z","repository":{"id":56854488,"uuid":"524225576","full_name":"jxsl13/symbol-search","owner":"jxsl13","description":"Search for binary \u0026 library symbols in a single file or in a directory tree or in an archive inside of a directory tree.","archived":false,"fork":false,"pushed_at":"2025-03-30T11:06:48.000Z","size":1977,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T11:28:48.108Z","etag":null,"topics":["7zip","analysis","binary","elf","executable","gzip","mach-o","pe","shared-library","static-library","tar","vulnerability","xz","zip"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jxsl13.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2022-08-12T21:12:22.000Z","updated_at":"2025-03-30T11:06:52.000Z","dependencies_parsed_at":"2025-03-30T11:25:17.949Z","dependency_job_id":null,"html_url":"https://github.com/jxsl13/symbol-search","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/jxsl13/symbol-search","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jxsl13%2Fsymbol-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jxsl13%2Fsymbol-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jxsl13%2Fsymbol-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jxsl13%2Fsymbol-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jxsl13","download_url":"https://codeload.github.com/jxsl13/symbol-search/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jxsl13%2Fsymbol-search/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263029215,"owners_count":23402354,"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":["7zip","analysis","binary","elf","executable","gzip","mach-o","pe","shared-library","static-library","tar","vulnerability","xz","zip"],"created_at":"2025-07-01T20:05:57.908Z","updated_at":"2025-07-01T20:05:58.575Z","avatar_url":"https://github.com/jxsl13.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# symbol-search\n\nThis utility can be used in order to find vulneravilities or rather vulnerable function symbols in binaries and shared libraries.\nYou can use this utility to search for binaries or shared libraries that might potentially contain vulnerable or exploitable\nversions of dynamically linked or statically linked libraries.\n\nSupported file formats:\n\n- Archive files (.tar, .zip, .gz, .bz2, .xz, .7z)\n- ELF (Linux) (binary, .so)\n- Static libraries (.a)\n- PE (Windows) (.exe, .dll)\n\nNot yet suported:\n\n- Mach-O (macOS) (.dylib)\n\n## Installation\n\n```shell\ngo install github.com/jxsl13/symbol-search@latest\n```\n\n## Examples\n\n```sh\nsymbol-search -s \"gnutls_pkcs7_verify\" -f /path/to/dir/or/single/file\n\nsymbol-search -s \"gnutls_pkcs7_verify\" -f /path/to/dir/or/single/file -o report.txt\n\nsymbol-search -s \"gnutls_pkcs7_verify\" -f /path/to/dir/or/single/ -o report.txt --concurrency 64\n\nsymbol-search -f /path/to/dir/or/single/ -o report.txt --concurrency 64 gnutls_pkcs7_verify callback_blub\n\n\n# linux only shared library symbols that are that are either loaded at startup or dynamically at runtime\nsymbol-search --no-pe --no-internal -f \"/path/to/dir/or/single/\" '.*'\n\n```\n\n## Usage\n\n```shell\n$ symbol-search --help\nEnvironment variables:\n  SEARCH_DIR           directory to search for files recursively (default: \".\")\n  FILE_PATH_REGEX      comma separated list regex to match file path in the search dir or in archives (default: \"[^.*$]\")\n  FILE_NAME_REGEX      comma separated list regex to match file name in the search dir or in archives (default: \"[^([^\\\\.]+|.+\\\\.(so|a|dll|lib|exe))$]\")\n  INCLUDE_ARCHIVE      search inside archive files (default: \"false\")\n  ARCHIVE_REGEX        regex to match archive files in the search dir (default: \"\\\\.(gz|tgz|xz||zst|bz2|tar|zip|7z)$\")\n  SYMBOL_NAME_REGEX    comma separated list regex to match symbol name in the search dir or in archives (default: \"[.*]\")\n  CONCURRENCY          number of concurrent workers to use (default: \"6\")\n  OUTPUT_FILE          output file to write the results to\n  NO_ELF               do not parse ELF files (Linux binaries) (default: \"false\")\n  NO_PE                do not parse PE files (Windows binaries) (default: \"false\")\n  NO_IMPORTED          do not parse imported symbols (from dll or shared objects) (default: \"false\")\n  NO_DYNAMIC           do not parse dynamic symbols which are loaded at runtime with ldopen (default: \"false\")\n  NO_INTERNAL          do not parse internal symbols from the binary or library itself (default: \"false\")\n  DEBUG                enable debug output (default: \"false\")\n\nUsage:\n  symbol-search [flags]\n  symbol-search [command]\n\nAvailable Commands:\n  completion  Generate completion script\n  help        Help about any command\n\nFlags:\n  -a, --archive-regex string       regex to match archive files in the search dir (default \"\\\\.(gz|tgz|xz||zst|bz2|tar|zip|7z)$\")\n  -t, --concurrency int            number of concurrent workers to use (default 6)\n  -v, --debug                      enable debug output\n  -n, --file-name-regex string     comma separated list regex to match file name in the search dir or in archives (default \"[^([^\\\\.]+|.+\\\\.(so|a|dll|lib|exe))$]\")\n  -p, --file-path-regex string     comma separated list regex to match file path in the search dir or in archives (default \"[^.*$]\")\n  -h, --help                       help for symbol-search\n  -A, --include-archive            search inside archive files\n      --no-dynamic                 do not parse dynamic symbols which are loaded at runtime with ldopen\n      --no-elf                     do not parse ELF files (Linux binaries)\n      --no-imported                do not parse imported symbols (from dll or shared objects)\n      --no-internal                do not parse internal symbols from the binary or library itself\n      --no-pe                      do not parse PE files (Windows binaries)\n  -o, --output-file string         output file to write the results to\n  -f, --search-dir string          directory to search for files recursively (default \".\")\n  -s, --symbol-name-regex string   comma separated list regex to match symbol name in the search dir or in archives (default \"[.*]\")\n\nUse \"symbol-search [command] --help\" for more information about a command.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjxsl13%2Fsymbol-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjxsl13%2Fsymbol-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjxsl13%2Fsymbol-search/lists"}