Skip to content

ByteRipperWeb 0.9.5-1 — documents that follow you across tabs and windows

Latest

Choose a tag to compare

@maxshevelev maxshevelev released this 26 Oct 13:41
· 21 commits to main since this release

This release is about where a file lives. A document now belongs to the app rather than to a page, so a pane carried to another tab or window keeps its unsaved changes, its undo history and its way back to the file it came out of. The Windows build opens several windows as one workspace, brings it back at the next launch with every unsaved change and the undo history, and keeps a job's workspace as a project.

Tabs and windows

  • Open in New Tab, on the header menu of either pane of a comparison or on a panel's pill, moves it into a new browser tab, and a pane dragged by its header — or a panel by its pill — onto another tab of the app goes there. The document is not copied: both tabs see the same one, so Undo in the new tab takes back the edits made in the old.
  • A part keeps its link wherever it goes: carried to another pane, tab or window, it still updates its parent through Update in Parent, and draws the parent file's annotations.
  • The Windows build has several windows, as one workspace (File ▸ New Window, Ctrl+Shift+N). A pane or a panel is dragged from one window to another, or onto the New Window strip that appears above the panes while you drag; with Alt it is copied. A file is open only once: opening it again offers Show in Its Window or Move to This Window.
  • In the Windows build the annotations, the help and the agent each have a window of their own, and a setting changed in one window applies in all of them.
  • A file an annotation card or the agent opens, when this window's panes are both taken, opens in a new window or tab instead of asking which pane to give up.

The workspace and projects (Windows build)

  • Reopen the workspace at launch (Settings ▸ General, off after installation) brings back every window at its place and size, and in each the files, the caret and the selection, bookmarks, segments, the minimap, the Find bar, the fragment panels, the tool panel with its node and open branches, and the Annotations panel.
  • Nothing unsaved is lost: documents never saved, parts with changes not yet put back, and unsaved changes to files come back as they were, still red, and survive an abnormal termination too. Quitting does not ask about them.
  • The undo history outlives the session: after a relaunch Undo takes back the edits made before it, and undoing to the saved state makes a file unmodified again.
  • A file that changed on disk is caught, by its size and date and, where changes are kept over it, by its SHA-256: a copy that only moved the date keeps its changes, different bytes under the same date do not. One message after the restore lists the files that changed or are missing.
  • Projects: File ▸ Save as Project… keeps every window in a .brw folder of its own; Open Project…, Open Recent Project and Close Project switch between jobs, nothing asked about the one being left. A project refers to the dumps where they are and stays a few kilobytes unless it holds unsaved bytes. File ▸ Open Recent lists the files opened lately.
  • A workspace or a project written by an earlier build is read and brought up to date; one written by a newer build is left untouched, and the app says so.
  • The browser edition has none of this: a page cannot open a file again by itself, so a reload starts from an empty window.

Undo history

  • The undo history keeps its bytes in a journal on disk, not in memory, so a fill or a paste of gigabytes can be undone without holding them twice. Settings ▸ General bounds each history by the size of its changes (512 MB to 16 GB, 4 GB by default) and by its number of steps; past either, the oldest steps go first.

More of the image read

  • Panasonic's DMI area in the BIOS region's padding: model, serial, asset tag and Windows key, each record's checksum checked, with the correct byte given where one fails.
  • HP's HP_MUD and Apple's SysF store are read as DMI areas, and every vendor's values are listed in one Entries table, each row a link to where its value is read from. The DMI badge says whose layout it found — Lenovo DMI, HP DMI, Apple DMI.
  • The BIOS Version Data Table of Insyde firmware lists the BIOS, product and kernel versions, the release date, the compiler and the ESRT entry under Entries; a click outlines the bytes each value is read from.
  • A Lenovo LENV block stored unencoded opens as itself. The flash chip catalogue knows the Eon EN25QE32A.

Smaller things

  • A pointer on a mark, a bookmark or the minimap shows what is there at once, in a callout beside it; a note's text appears when the pointer reaches its outline.
  • Tree rows in UEFI Structure and the ME Analyzer open and close with motion, and the tree scrolls to make room before a branch opens. The disclosure triangle takes a click on the row's full height.
  • Update in Parent reports its refusals, warnings and progress in the interface language.
  • The ME Analyzer's summary selects and copies like the other detail lists; the name column fits the longest name.
  • In a comparison both minimaps draw their bytes at the same width.
  • Save on a document with no file asks where to save it, wherever the browser has a save dialog, instead of downloading.
  • Edit ▸ Select All selects a text field's text while you type in one; Settings opens on General. The help's search field sits at the top of its contents.
  • The ME region is read at most twice when opened, instead of four times, and its analysis no longer holds up the UEFI tree.

Fixes

  • Dragging a pane by its header, or a panel by its pill, with the mouse moved nothing.
  • After opening the ME region of a CSME 13 dump, opening the BIOS region left its row on "Loading…" for good.
  • While dragging a pane, every pane lit its drop bands, not only the one under the pointer.
  • Check for Update… without a network connection failed with an error instead of saying that GitHub could not be reached.

The page (ByteRipperWeb-0.9.5-1.html) is the whole app in one file:
open it in Chrome or Edge from disk, no installation and no server. Files
never leave the machine. Opened from disk, a page has no private storage, so
File ▸ Duplicate needs the hosted page or the Windows build.

Windows (ByteRipper-0.9.5-1-setup.exe installs it for the current user
and starts fastest; -portable.exe and the .zip need no installation): the
same app in a window of its own, x64. Help ▸ Check for Update… installs the
next release from the setup. Not code-signed, so SmartScreen warns on the
first launch: choose More info ▸ Run anyway.

In the browser, the same release: https://maxshevelev.github.io/ByteRipperWeb/ —
and on a Mac, the native app: https://github.com/maxshevelev/ByteRipper/releases/latest