home.social

Search

50 results for “binjr”

  1. The Beast 🤘 BINARY ORDER DESCEND DEEPER INTO DIGITAL DYSTOPIA WITH NEW SINGLE “NARROW WAY THROUGH” - @thebeast: FOR IMMEDIATE RELEASE

    BINARY ORDER DESCEND DEEPER INTO DIGITAL DYSTOPIA WITH NEW SINGLE “NARROW WAY THROUGH”

    London Industrial Electronic Project Continues Building Its Dark Cyberpunk Universe With a New Cinematic Release

    OUT NOW

    Listen Here: distrokid.com/hyperfollow/bina

    LONDON, UK – London-based… dlvr.it/TW2xY4 LinkInBio for More 🤘

  2. The new binaries have a -1 version suffix, but KeePassXC will display the same 2.8.0 version number under About. If you want to check whether you already have the new version, check the revision number under About / Debug Info. The new version will show up as revision 82ab2fd.

  3. Christophe Pettus: Binary read replicas in PostgreSQL, Part 3

    postgr.es/p/9zA

  4. Reverse Engineer Anything: The Open-Source Tool That Turns Any Binary Into a Readable Spec (And Why Big Tech Won’t Love It)

    Introduction


    Every binary is a black box. Whether it’s a proprietary CLI tool, a firmware blob, or a legacy service, understanding what it does—and how to automate it—usually means hours of manual reverse engineering. For developers building AI agents, this is a bottleneck: agents need structured interfaces (APIs, schemas, command specs) to interact with the world, not opaque executables.

    Enter BinSpec—an open-source tool that statically analyzes binaries and generates a readable specification: CLI flags, environment variables, input/output formats, and even a Python wrapper. It’s not magic; it combines static analysis (via LIEF and Capstone) with heuristics and optional dynamic tracing (via Intel PIN). The result is a machine-readable spec that an AI agent can consume to call the binary safely.

    Big Tech won’t love it because it democratizes interoperability with closed systems. But for developers building autonomous agents, it’s a force multiplier.

    Problem


    AI agents thrive on structured tools. Frameworks like LangChain or AutoGen expect callable functions with clear input/output schemas. But most software in the wild isn’t an API—it’s a binary with --help text at best, and cryptic error codes at worst.

    Consider a typical proprietary tool:

    $ ./acme_tool --help
    Usage: acme_tool [OPTIONS] INPUT
    -o, --output FILE Write result to FILE
    -v, --verbose Increase verbosity
    --mode MODE One of: fast, safe, debug

    A human can parse this. An AI agent cannot reliably infer types, defaults, or side effects. Worse, many binaries lack help text entirely. The agent is left guessing, leading to brittle prompts and unsafe subprocess calls.

    Manual reverse engineering (disassembly, debugging) is time-consuming and requires expertise. We need automation that produces a spec an agent can use without executing arbitrary code blindly.

    Solution


    BinSpec (fictional name for this article; the approach is real) is a Python tool that:

    1. Extracts strings and symbols from the binary using LIEF.
    2. Disassembles entry points and referenced functions with Capstone to identify argument parsing patterns (e.g., getopt, argparse).
    3. Infers a CLI schema from help text, string literals, and control-flow heuristics.
    4. Optionally traces execution with Intel PIN to observe file I/O and syscalls (sandboxed!).
    5. Emits a JSON spec and a Python wrapper with type hints.

    The spec is not guaranteed complete—it’s a best-effort reconstruction. But it’s enough for an agent to generate safe calls with validation.

    Why open source? Because transparency matters. You can audit the heuristics, extend them, and run everything locally. No phone-home, no proprietary cloud.

    Implementation


    Let’s build a minimal version of BinSpec that extracts strings and generates a spec. We’ll use lief for parsing and capstone for disassembly. Install dependencies:

    pip install lief capstone

    Step 1: Extract strings and symbols


    import lief
    import re

    def extract_strings(binary_path, min_length=4):
    binary = lief.parse(binary_path)
    strings = set()
    for section in binary.sections:
    if section.size == 0:
    continue
    data = section.content
    # naive ASCII string extraction
    for match in re.finditer(rb'[\x20-\x7e]{%d,}' % min_length, data):
    strings.add(match.group().decode('ascii', errors='ignore'))
    return strings

    # Example usage
    strings = extract_strings('/bin/ls')
    print(list(strings)[:10])

    This yields help text fragments, error messages, and flag names.

    Step 2: Disassemble to find argument parsing


    We locate calls to getopt or similar by scanning for symbol references. For simplicity, we disassemble the .text section and look for string references.

    from capstone import Cs, CS_ARCH_X86, CS_MODE_64

    def disassemble_text(binary_path):
    binary = lief.parse(binary_path)
    text = binary.get_section('.text')
    if not text:
    return
    [] md = Cs(CS_ARCH_X86, CS_MODE_64)
    instructions =
    [] for insn in md.disasm(text.content, text.virtual_address):
    instructions.append(insn)
    return instructions

    # Find LEA instructions referencing strings (simplified)
    insns = disassemble_text('/bin/ls')
    for insn in insns[:5]:
    print(f"0x{insn.address:x}: {insn.mnemonic} {insn.op_str}")

    Step 3: Generate a spec


    We combine strings and heuristics to produce a JSON spec. This is intentionally conservative.

    import json

    def generate_spec(binary_path):
    strings = extract_strings(binary_path)
    # Heuristic: flags start with '-' and are short
    flags = [s for s in strings if re.fullmatch(r'--?[a-zA-Z][\w-]*', s)]
    spec = {
    "binary": binary_path,
    "flags": sorted(set(flags)),
    "inferred": True,
    "warning": "Spec is heuristic. Validate before use."
    }
    return spec

    spec = generate_spec('/bin/ls')
    print(json.dumps(spec, indent=2))

    Step 4: Safe agent integration


    An AI agent can use this spec to construct commands—but must validate inputs. Here’s a minimal agent loop with explicit termination:

    import subprocess
    import shlex

    def run_tool(binary, args, timeout=5):
    # SECURITY WARNING: Never pass untrusted input to subprocess without validation.
    # This example uses shlex.quote and a whitelist of flags from the spec.
    allowed_flags = set(spec["flags"])
    for arg in args:
    if arg.startswith('-') and arg not in allowed_flags:
    raise ValueError(f"Flag {arg} not in spec")
    cmd = [binary] + [shlex.quote(a) for a in args]
    result = subprocess.run(cmd, capture_output=True, text=True, timeout=timeout)
    return result.stdout

    # Agent loop: try up to 3 times, then abort
    def agent_loop(binary, user_request, max_attempts=3):
    attempts = 0
    while attempts < max_attempts:
    # In a real agent, an LLM would propose args based on spec
    proposed_args = ["-l"] # example
    try:
    output = run_tool(binary, proposed_args)
    return output
    except Exception as e:
    attempts += 1
    raise RuntimeError("Agent failed to produce valid command")

    Security note: Executing arbitrary binaries is dangerous. Always run in a sandbox (e.g., Docker, firejail) and never use shell=True. The spec reduces risk but doesn’t eliminate it.

    Step 5: Dynamic tracing (optional)


    For deeper insight, you can use strace (Linux) to observe syscalls:

    strace -f -e trace=file,network ./acme_tool input.txt 2> trace.log

    Parse trace.log to infer file access patterns. Integrate this into BinSpec as an optional module. Warning: Tracing executes the binary—only do this in an isolated environment.

    Key Takeaways


    • BinSpec-style tools turn opaque binaries into structured specs that AI agents can consume, bridging the gap between legacy software and modern automation.
    • Static analysis (LIEF + Capstone) extracts strings, symbols, and control-flow hints without execution.
    • Heuristics are imperfect—always validate specs and sandbox execution.
    • Security first: Never eval untrusted output or run binaries without isolation. Use shlex.quote, whitelists, and timeouts.
    • Open source matters for auditability and trust; Big Tech prefers lock-in, but developers benefit from transparency.

    The code above is runnable and extensible. Start with /bin/ls, then try it on a proprietary CLI. You’ll get a spec—and a starting point for your agent.

    Disclaimer: BinSpec is a conceptual name; the techniques are real and implemented in tools like LIEF, Capstone, and strace. Always respect software licenses and local laws when reverse engineering.#ai #python #reverseengineering #opensource #software #coding #development #engineering #inclusive #community
    Reverse Engineer Anything: The Open-Source Tool That Turns Any Binary Into a Readable Spec (And Why Big Tech Won’t Love It)

  5. Besides the Brotli patch, the updated binaries fix Qt crashes on macOS 27 and a deployment issue of the Qt TLS modules breaking the update checker and favicon downloads. No new binaries are needed for Windows, since we don't bundle Brotli there.

  6. This week's theme is:
    And there were a bunch of remixes of Binary Finary's original trance track from 1998, but this from 2000 is perhaps the most transcendental:

    Binary Finary - 2000 (JamX/De Leon, DuMonde remix): youtube.com/watch?v=raOfvIzZviM

  7. 🕳️ oddquark // Black Hole Watch — 2026-10-24

    A hidden second jet in Mrk 501 just outed a supermassive black hole binary on a 121-day orbit, inspiraling toward merger in ~100 years 🤯 that's basically tomorrow in cosmic time, and it'll scream gravitational waves across the universe when it happens.

    🔗 dailygalaxy.com/2026/10/two-bl

    #BlackHole #Astrophysics #GravitationalWaves #EventHorizon

  8. Goose left block/goose in April. Flisk is the name on the binary now, tdk is the name in older posts. Update the agent before you update the stack.#flisk #goose #docker #ai #software #coding #development #engineering #inclusive #community
    Two Renames, One Laptop: Goose's New Home and the flisk.sh Cutover
  9. Huge thank you to @BSidesPDX for hosting us again this year and our very own @bhavna for giving an amazing class on AI Assisted Binary Diffing!

  10. RE: fosstodon.org/@keepassxc/11732

    🚨Attention! Yesterday, we published new 2.8.0-1 binaries for macOS (DMG) and Linux (AppImage) to fix three separate upstream Qt bugs on macOS and to ship an updated version of Brotli that fixes CVE-2026-111497.

    The new version will not show up as an update automatically, but we recommend everyone to install it from keepassxc.org/download/ until the release of 2.8.1.

  11. ⚠️ Attention SysAdmins: Critical PHP vulnerabilities (PHP2SHELL / CVE-2026-109618 & CVE-2026-109619) are actively circulating.

    iDatam clients on unmanaged dedicated servers must update their OS packages via SSH immediately to prevent remote exploitation. Do not forget to restart your web server and PHP-FPM services to load the patched binaries into memory. Open a high-priority support ticket if you require a one-time managed intervention.

    #CyberSecurity #Linux #SysAdmin #PHP #DedicatedServers

  12. Zenplay in glorious Sinclair-colour, and not the worst of attribute clashes.

    This is not a mockup animation, it's the embedded ZenZX emulator as a visual component, it's running a Z80 binary assembled on the fly from Zenplay data. Since we use the Zenas assembler we don't have to call an external tool like pasmo or sjasmplus, Zenas is linked as a library, and it can produce binary objects as blobs in memory, which I then "paste" into the Z80 emulator's attached virtual RAM.

    #zenplay #ZXSpectrum #Speccy #Spectrum #retrogaming #pixelart #golang #foss #retrocomputing
    #indiedev #indiegamedev #gamedev #Z80

  13. morluto/rea +8,506 stars in 24h (total 365.7k). Agents to reverse engineer anything—app behavior to binaries. Why the surge? Open the page:

    olud.ai/project/morluto-rea.ht

    #OpenSource #AI #GitHub

  14. No poisoned package, no hijacked maintainer. A correctly signed, fully attested PHP binary was the vulnerable artifact, so the tooling built after SolarWinds and xz had nothing to catch.

  15. 🧠 #doubleAI, a Tel Aviv startup founded in 2023, has launched #Maxwell, a code execution model (CEM) that evaluates, optimizes and rewrites binary code while a program is running. Source code stays untouched. #AI #LLM #performance
    🧵👇

  16. The Robin's Egg Nebula is a planetary nebula about 3 light-years across, displaying the final phase in the evolution of an aging binary star system consisting of two white dwarf stars, less massive but much hotter than our Sun

  17. NVIDIA OpenShell's standalone prover formally checks agent policies against a boundary. I built it from source (Z3 via a pip wheel) and ran 29 candidate/boundary pairs: REST escalation, L4 laundering and new binaries all caught with concrete countere…#agents #cli #opensource #security #software #coding #development #engineering #inclusive #community
    I built OpenShell's Z3 policy prover and ran 29 checks. It caught everything except the metadata address.
  18. 📈 Biggest 24h star gain in open-source AI:

    ⭐ morluto/rea +9,914 stars in 24h (total 365.7k)
    « Reverse engineer anything with agents, from app behavior down to native binaries. »

    olud.ai/project/morluto-rea.ht

    #OpenSource #AI #GitHub

  19. @uvok I was in the same situation and replaced my NextCloud instance with @OpenCloud and #radicale (as part of opencloud) a while back. And I'm much happier with it. A primary driver for me was the fact that it's a compiled single Go binary. Been running for about 6 months now, 0 issues and more speed!
    #homelab #selfhosted #selfhosting #opencloud

  20. How PHP's coordinated disclosure process went belly up: Leaks, an accidental release, a decision to push an updated binary early, shifting embargo dates/times for a massive coordinated vulnerability disclosure. Oh and the open-source PHP team also admits to decision paralysis after it found one of the flaws in 2024.
    databreachtoday.com/how-phps-c

  21. @The_Universality @lime360 @jaypeach53 @Tutanota

    There's compat_linux for running Linux programs on #FreeBSD or #NetBSD (and most derivatives, but not #OpenBSD), but I couldn't get it working for #KerbalSpaceProgram (the native Linux binary, not #proton or #WINE), so I'm not sure if it can be used for games.

    We need more #FOSSGaming ;)

  22. I’m working on an article about how trans folks can make checking their chest for breast cancer less dysphoria-inducing.

    Are you a trans or non-binary person with strategies that help you check your chest monthly? If you’re up for sharing them with me, please email me at [email protected]!

    #Trans #TransHealth #BreastCancer

  23. A few weeks ago, I ran an audit on a backend microservice container running in our staging cluster.The application itself was a compiled Go binary that took up less than 20 MB of disk space. But when I ran docker images, the resulting image weighed in at nearly 1 GB.Even worse, when I attached an interactive terminal into that running container:Bashdocker exec -it payment-service /bin/bash
    I found a full-blown Debian Linux environment sitting inside. Compilers, package managers (apt), network downloaders (curl, wget), and an active root shell were all sitting right next to our core application logic.If an attacker managed to find a remote code execution (RCE) bug in that service, I hadn’t just handed them an app bug—I had handed them an entire Linux workstation inside our VPC.Here is how modern container workflows solve this using two industry patterns: Multi-Stage Builds and Distroless Images.1. Multi-Stage Builds: The Restaurant Kitchen AnalogyThink about eating at a restaurant.In the kitchen, the chef uses heavy knives, cutting boards, vegetable peelers, mixing bowls, and blazing stoves. When the waiter brings your order to the dining table, you get a clean plate with the finished meal.You would never expect the waiter to dump the chopping board, raw vegetable peels, greasy pans, and meat scraps directly onto your table.Yet that is exactly what a single-stage Dockerfile does.+-----------------------------------------------------------+
    | SINGLE STAGE (Messy Kitchen + Food Shipped Together) |
    | Compilers + SDKs + Git + Headers + Source Code + Binary |
    | Image Size: ~900 MB |
    +-----------------------------------------------------------+
    When building an application in Go, Rust, C++, Java, or even Node.js, you need heavy build tools: compilers, package managers, development headers, and build caches. But your production environment only needs the final compiled binary or transpiled assets.The Fix: Multi-Stage SeparationA multi-stage build uses multiple FROM instructions in a single Dockerfile. Each FROM starts a brand-new stage, letting you copy only the artifacts you want from earlier stages.Here is what that looks like in practice:Dockerfile# -------------------------------------------------------------

    STAGE 1: "The Kitchen" (Builder stage with compilers and SDKs)

    -------------------------------------------------------------


    FROM golang:1.23-alpine AS builder

    WORKDIR /build

    Cache dependency downloads


    COPY go.mod go.sum ./
    RUN go mod download

    Copy source and compile down to a standalone binary


    COPY . .
    RUN CGO_ENABLED=0 go build -o /build/payment-api .

    -------------------------------------------------------------

    STAGE 2: "The Dining Table" (Final production runtime)

    -------------------------------------------------------------


    FROM alpine:3.20

    WORKDIR /app

    Copy ONLY the compiled binary from Stage 1


    COPY --from=builder /build/payment-api /app/payment-api

    EXPOSE 8080
    CMD ["/app/payment-api"]
    The Difference:Single-Stage Image: ~900 MB (Go compiler, source code, build caches, git).Multi-Stage Image: ~15 MB (Tiny Alpine OS layer + compiled binary).Why It Matters:During high-traffic autoscaling events, Kubernetes doesn't have to pull 1 GB images across the network to spin up new pods. A 15 MB image pulls in less than a second, saving cloud bandwidth costs and speeding up recovery times.2. Distroless Images: Stripping Down to the ChassisDropping image size to 15 MB with Alpine is a huge step forward, but from a security perspective, Alpine still ships with an interactive shell (/bin/sh) and a package manager (apk).To understand why this is a risk, consider an analogy:A standard family car comes with air conditioning, leather seats, a radio, a trunk, and a glovebox. A Formula 1 race car strips out everything that doesn't make the car go fast: no back seat, no radio, no air conditioning, no trunk.A Distroless image (originally created by Google) takes that Formula 1 approach to containers. It contains only your application and its minimal runtime dependencies (like glibc or SSL root certificates).It explicitly omits:Package managers (apt, apk, yum)System utilities (curl, wget, ls, grep)Interactive shells (/bin/sh, /bin/bash)Standard Base (Ubuntu/Debian): [ Shell + Tools + Package Manager + App ]
    Alpine Base: [ Shell + apk + Minimal OS + App ]
    Distroless Base: [ App + Direct Runtime Libs ONLY ]
    A Real-World Security ScenarioImagine a critical vulnerability (like an RCE or file-upload exploit) is discovered in a patient records microservice.Scenario A: The Container Runs on Standard UbuntuThe attacker exploits the application bug and executes an arbitrary command.They run curl or apt-get install nmap directly inside the container.They download an external botnet or reconnaissance script.They explore the local container filesystem using ls -la and read configs.They use the running container as a jump box to pivot into the rest of your private network.Scenario B: The Container Runs on DistrolessThe attacker exploits the bug and tries to invoke /bin/sh.The operating system responds:Plaintextexec: "/bin/sh": stat /bin/sh: no such file or directory
    The attacker tries calling curl or wget to pull remote tools. Neither exists.The exploit fails because there is no execution environment inside the container to run unauthorized binaries.The Gold Standard: Multi-Stage + DistrolessIn production systems handling sensitive workloads, you can combine both techniques. You build in a full developer SDK environment, but ship on Google's static Distroless image:Dockerfile# Stage 1: Build the code in a full compiler environment
    FROM golang:1.23 AS builder

    WORKDIR /src
    COPY . .
    RUN CGO_ENABLED=0 go build -o /app/server .

    Stage 2: Deploy to Google's Distroless static runtime


    FROM gcr.io/distroless/static-debian12

    Copy the binary from the builder stage


    COPY --from=builder /app/server /server

    Distroless provides a built-in non-root user (UID 65532: nonroot)


    USER nonroot:nonroot

    EXPOSE 8080
    ENTRYPOINT ["/server"]
    What You Get:Tiny footprint: Image sizes drop to the bare minimum required for execution.Non-root by default: Runs under user nonroot, neutralizing container escape techniques that rely on root privileges.No shell attacks: Traditional living-off-the-land techniques (using installed utilities like curl or bash) are impossible.Clean vulnerability scans: Tools like Trivy or Snyk show zero CVEs for unneeded OS packages, because those packages were never installed in the first place.Comparison SummaryConceptWhat It IsProblem It SolvesProduction ImpactMulti-Stage BuildA Dockerfile using multiple FROM stages to separate build tools from runtime artifacts.Bloated image sizes caused by compilers, test suites, and package caches.Cuts storage needs, saves cloud network transfer costs, and speeds up auto-scaling.Distroless ImageA base image containing only the app and direct dependencies—no shell, no package manager.Attackers using internal container shells and OS utilities to pivot into your private network.Eliminates package vulnerabilities and neutralizes shell-based exploit payloads.Wrapping UpBuilding clean containers isn't just about saving a few hundred megabytes of disk space. It fundamentally changes the threat model of your workloads in the cloud.If your production container doesn't need a compiler to run, don't ship one. And if it doesn't need an interactive shell to serve traffic, strip the shell out entirely.Keep the kitchen in the build stage, and bring only the clean plate to production.#devops #docker #go #security #software #coding #development #engineering #inclusive #community
    The Clean Plate Problem: How Multi-Stage Builds and Distroless Images Cut Container Attack Surfaces to Zero

  24. Today at @pgconfeu, 10:25 in Auditorium 1: radar + radar-analyst, agentless diagnostic snapshots for . Zero-dependency binary, one zipfile of metadata, and findings that pair every fact with a fix.
    👇
    postgresql.eu/events/pgconfeu2

  25. morluto/rea gained 11,354 stars in 24h (357.2k total) – today's top open-source AI mover. Reverse engineering anything with agents, from app behavior to binaries. That kind of surge is hard to ignore.

    olud.ai/project/morluto-rea.ht

    #OpenSource #AI #GitHub

  26. My teammate Matt Green put together a new Velociraptor artifact to "inventory PHP installations on Windows, Linux and macOS for remediation scoping. Collect package versions, common binary/module paths and running PHP processes."

    docs.velociraptor.app/exchange

    This might come in handy in the upcoming days 🙈

Share on Mastodon

Enter the server where you have an account.