Skip to content

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 08:28
· 98 commits to master since this release

Added

  • Add graph cfg FUNCTION for instruction blocks, control-flow edges, call
    sites, and unresolved or out-of-body transitions, with explicit output budgets.
  • Structure pcode function FUNCTION --high into result-scoped operations,
    values, ordered High CFG edges, and variable/symbol relationships, including
    definition/use slots and incomplete-output information.
  • Add project archive NAME --output FILE and project restore ARCHIVE NAME
    for standard Ghidra GAR snapshots and restoration into new projects. Archive
    drains and saves a running bridge before stopping it; both operations refuse
    destination collisions and report project-link dependencies.
  • Add incoming_reference_count to data list, counting references to the
    whole object, including structure fields and array elements, for filtering
    and sorting.
  • Add type clone for independent top-level definitions, type resize for
    non-packed structure tails, and category listing, creation, empty deletion,
    and single-type moves. Type details include universal IDs and source archives.
  • Add explicitly placed bitfields with type field create-bitfield, bounded
    width/base-type edits, struct ordinal selectors, and bitfield annotation,
    clearing, and deletion without losing neighboring components.
  • Add function call-signature get/set/clear for saved prototypes at one call
    site, including overrides left stale by later instruction or body changes.
  • Add function set-body to replace a function's complete body with repeated
    inclusive ranges and report native annotation/reference losses from shrinking.
  • Add listing flow get/set/clear for instruction flow overrides and independent
    fallthrough control, preserving bytes and leaving full analysis explicit.
  • Add function get --with-frame for saved stack layout and expose both direct
    thunk targets and final signature/frame owners.
  • Add memory file-mappings to list preserved-file mapping intervals and find
    every direct mapping of --file-offset, with --source-at selecting one
    saved input and metadata identifying excluded indirect mappings.
  • Add memory block create/rename/set-permissions/set-volatile/move/delete,
    with exact block-start targets, explicit initialization and permissions, and
    named overlay spaces. Memory queries expose block type, spaces, and volatility.
  • Add xref create memory, delete, and set-primary with explicit operand
    selection, source checks, and conflict preservation.
  • Add Equate definitions with equate create/list/get/delete and exact operand
    associations with attach/detach, preserving 64-bit constant values.
  • Add bookmark set/delete for one address/type/category, with stdin and file
    text input for setting notes.
  • Add namespace list/get/create, including class namespaces, and
    symbol set-namespace/set-primary with single-target selection and native
    function-change receipts.
  • Add program context list/get/set/clear for processor decoding context,
    distinguishing recorded, default, and effective values with valid-bit masks.
    Context edits do not replace existing instructions or run analysis.
  • Add program rebase BASE to move the image base and default-space memory,
    reporting moved blocks and unchanged overlays/other spaces. Rebasing leaves
    memory bytes unchanged and does not reapply relocations or run analysis.
  • Add inclusive analysis run --start START --end END to seed range reanalysis
    and --pending to process the currently open program's queued analysis.
    The default remains full reanalysis; range analysis can affect other addresses.
  • Add exact language_id and compiler_spec_id to program info for reuse with
    import settings.

Changed

  • Render instruction CFG and High P-code results as dedicated human-readable
    sections, including block/operation identities, relationships, and output
    completeness in compact and full output.
  • Report logical size zero for empty structs in type get and type list.
  • Replace function edit-var with function var list/get/set. Variable reads
    expose decompiler candidates and saved definitions separately; exact-name
    selection with optional filtering resolves one target before an edit.
  • Rename tag add/remove to tag attach/detach. Attach requires existing tag
    definitions; remove automatic creation and --no-create. Detach rejects
    undefined names while leaving known, unattached tags unchanged.
  • Unify normal JSON as data with optional nonempty meta, including management
    commands and batch reports. Standalone results and batch entries now match;
    lists retain context and effective paging metadata through field projection.
    Classify result shapes by command, keeping single objects and graphs intact.
  • Emit every NDJSON list as one value per line, including project lists; empty
    lists emit no lines. Count results remain unwrapped numbers in NDJSON.
  • Restrict function get, type get, and decompile to single-result output
    controls. Keep symbol delete target filtering and field projection, removing
    list sorting, paging, and counting from its receipt. Count comments by row in
    comment get and retain the target address as list context.

Fixed

  • Require acknowledgement of the bridge's final save before completing shutdown;
    a process exit without confirmation now reports failure and preserves project
    state instead of allowing an archive to proceed with an uncertain save.
  • Fix doctor bridge compilation on Windows when compiler arguments exceed the
    command-line limit or temporary-directory paths contain Unicode characters.
  • Resolve GAR source and destination paths consistently across preflight,
    bridge shutdown, and Ghidra locking when directory symlinks precede ...
  • Keep type import-c --category from replacing or moving same-named types
    outside the destination category, including their existing uses.
  • Include references into defined strings in string refs, with their actual
    destination and byte offset from the string's start.
  • Report only function names in xref to's to_function, matching xref from.
  • Reject missing program open/delete targets during batch preflight before
    executing earlier commands, including nested batches.
  • Show excluded file-mapping ranges and reasons in compact/full output, and
    avoid repeating fields in compact objects without a primary display field.
  • Include saved function definitions in type get, with return and parameter
    types, calling convention, variadic state, and no-return state.
  • Stop program statistics scans cooperatively when their job is cancelled.
  • Select program exporters independently of the JVM locale for uppercase formats.
  • Describe defined strings and supported comment types accurately in list help.
  • Restore GAR archives created by Ghidra on Windows by normalizing entry path
    separators before safety checks, collision detection, and extraction.