internal/

directory
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 11, 2026 License: MIT

Directories

Path Synopsis
Package archive handles unpacking .deb files (a Unix "ar" archive containing debian-binary, control.tar.*, and data.tar.*) and safely extracting the compressed tarballs inside, guarding against path traversal, symlink escapes, and decompression bombs.
Package archive handles unpacking .deb files (a Unix "ar" archive containing debian-binary, control.tar.*, and data.tar.*) and safely extracting the compressed tarballs inside, guarding against path traversal, symlink escapes, and decompression bombs.
Package buildsrc compiles glibc from source inside a period-correct Ubuntu base image (selected by version, since old glibc releases need an old-enough gcc/binutils to build cleanly), driven via `docker run`.
Package buildsrc compiles glibc from source inside a period-correct Ubuntu base image (selected by version, since old glibc releases need an old-enough gcc/binutils to build cleanly), driven via `docker run`.
Package bundle packs/unpacks the whole libs/ cache as a single tar.gz so it can be carried into an air-gapped CTF environment that can't reach any mirror.
Package bundle packs/unpacks the whole libs/ cache as a single tar.gz so it can be carried into an air-gapped CTF environment that can't reach any mirror.
Package cache resolves on-disk paths used by pwnlibc's persistent state: the bbolt symbol/fingerprint index, the aggregated package list, and per-version provenance manifests.
Package cache resolves on-disk paths used by pwnlibc's persistent state: the bbolt symbol/fingerprint index, the aggregated package list, and per-version provenance manifests.
Package cli wires pwnlibc's Cobra command tree together.
Package cli wires pwnlibc's Cobra command tree together.
Package config loads pwnlibc's YAML configuration: storage paths, mirror priority, and user-defined custom mirrors.
Package config loads pwnlibc's YAML configuration: storage paths, mirror priority, and user-defined custom mirrors.
Package diffcmd compares two ELF files (typically two glibc versions): symbol additions/removals/offset-changes and security-attribute transitions, computed natively via debug/elf.
Package diffcmd compares two ELF files (typically two glibc versions): symbol additions/removals/offset-changes and security-attribute transitions, computed natively via debug/elf.
Package elfinfo extracts everything pwnlibc needs from an ELF file using only the Go standard library's debug/elf — no shelling out to readelf, nm, or pyelftools like the original tool.
Package elfinfo extracts everything pwnlibc needs from an ELF file using only the Go standard library's debug/elf — no shelling out to readelf, nm, or pyelftools like the original tool.
Package fetch implements pwnlibc's HTTP retrieval strategy: bounded timeouts, exponential-backoff retries per mirror, and racing several mirrors concurrently so the fastest reachable one wins.
Package fetch implements pwnlibc's HTTP retrieval strategy: bounded timeouts, exponential-backoff retries per mirror, and racing several mirrors concurrently so the fastest reachable one wins.
Package glibcver parses the "2.NN" major.minor component out of glibc version strings like "2.31-0ubuntu9.9" for ordering comparisons.
Package glibcver parses the "2.NN" major.minor component out of glibc version strings like "2.31-0ubuntu9.9" for ordering comparisons.
Package identify determines which glibc version an unknown .so/binary is, trying (in order) BuildID exact match against the local index, BuildID lookup via libc.rip, and finally anchor-symbol fingerprint matching against every locally indexed version.
Package identify determines which glibc version an unknown .so/binary is, trying (in order) BuildID exact match against the local index, BuildID lookup via libc.rip, and finally anchor-symbol fingerprint matching against every locally indexed version.
Package index maintains pwnlibc's local persistent index: a BuildID -> version map and a per-version symbol table cache, backed by bbolt (pure Go, no cgo) so lookups are O(1) instead of re-parsing ELF files on every search/identify/diff invocation.
Package index maintains pwnlibc's local persistent index: a BuildID -> version map and a per-version symbol table cache, backed by bbolt (pure Go, no cgo) so lookups are O(1) instead of re-parsing ELF files on every search/identify/diff invocation.
Package jsonout provides the shared --json output envelope used by every pwnlibc subcommand so machine-readable output has one consistent shape.
Package jsonout provides the shared --json output envelope used by every pwnlibc subcommand so machine-readable output has one consistent shape.
Package libcrip is a client for the libc.rip public reverse-symbol-lookup API, used by `search --symbol` and the online path of `identify`.
Package libcrip is a client for the libc.rip public reverse-symbol-lookup API, used by `search --symbol` and the online path of `identify`.
Package mirrors defines the registry of apt mirrors pwnlibc downloads glibc packages from, and probes them concurrently for availability.
Package mirrors defines the registry of apt mirrors pwnlibc downloads glibc packages from, and probes them concurrently for availability.
Package packages parses apt pool directory listings into a unified, locally cached list of available libc6 / libc6-dbg package files across every configured mirror, so `search`/`download` never re-hit the network.
Package packages parses apt pool directory listings into a unified, locally cached list of available libc6 / libc6-dbg package files across every configured mirror, so `search`/`download` never re-hit the network.
Package patcher implements pwninit-style ELF patching: rewrite a target binary's PT_INTERP to point at a specific ld.so and set its RPATH/RUNPATH to a specific libc directory, so it runs against the exact glibc version a CTF challenge shipped with.
Package patcher implements pwninit-style ELF patching: rewrite a target binary's PT_INTERP to point at a specific ld.so and set its RPATH/RUNPATH to a specific libc directory, so it runs against the exact glibc version a CTF challenge shipped with.
Package pwnerr defines the typed error taxonomy used across pwnlibc so both human and --json output can report actionable, stable error codes instead of ad-hoc wrapped strings.
Package pwnerr defines the typed error taxonomy used across pwnlibc so both human and --json output can report actionable, stable error codes instead of ad-hoc wrapped strings.
Package vulndb ships a small curated list of well-known glibc CVEs and answers "which of these affect version X" queries for the `vuln` subcommand.
Package vulndb ships a small curated list of well-known glibc CVEs and answers "which of these affect version X" queries for the `vuln` subcommand.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL