mirror of
https://github.com/vee1e/naksheap.git
synced 2026-09-01 10:18:37 +00:00
Rust workspace that turns a core dump of a stripped, optimized C/C++ binary into a typed heap object graph: objects, sizes, allocator state, references, and probable struct layouts, all without debug info. - glibc ptmalloc carving (main + thread arenas, tcache/fastbin freed state, mmap allocations), ELF core + memory-list minidump parsing - pointer scan, layout clustering, vtable/string/vector detection, confidence + evidence on every node - ASCII/JSON/Graphviz/HTML output, synthetic fixtures with ground truth, and real-dump validation harness (aarch64 glibc 2.39) in scripts/ - web deployment reference stack in deploy/ MIT OR Apache-2.0
22 lines
754 B
Docker
22 lines
754 B
Docker
# Multi-stage: build the Rust binary, then a slim runtime image.
|
|
FROM rust:1.95 AS build
|
|
WORKDIR /src
|
|
COPY Cargo.toml Cargo.lock ./
|
|
COPY crates ./crates
|
|
RUN cargo build --release --workspace --locked
|
|
|
|
FROM debian:bookworm-slim
|
|
RUN apt-get update && apt-get install -y --no-install-recommends python3 \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
WORKDIR /srv
|
|
COPY --from=build /src/target/release/naksheap /usr/local/bin/naksheap
|
|
COPY deploy/server.py /srv/server.py
|
|
RUN useradd --create-home --uid 10001 --shell /usr/sbin/nologin naksheap \
|
|
&& mkdir -p /data && chown naksheap:naksheap /data
|
|
USER naksheap
|
|
ENV NAKSHEAP_BIN=naksheap \
|
|
NAKSHEAP_ARTIFACTS=/data \
|
|
NAKSHEAP_PORT=8080
|
|
EXPOSE 8080
|
|
VOLUME ["/data"]
|
|
ENTRYPOINT ["python3", "/srv/server.py"]
|