Ofrak Versions Save

OFRAK: unpack, modify, and repack binaries.

ofrak-v3.2.0

9 months ago

Added

  • Add a JFFS2 packer and unpacker. (#326)
  • Add method to Resource and data service to search for patterns in its data (#333)
  • Add search bars to GUI in order to search for a string or bytes within a resource. (#345)
  • Add Identifier, Unpacker, Packer for Intel Hex format. (#349)
  • Add unpackers for EXT filesystems (versions 2 through 4). (#337)
  • A new feature that allows users to create an OFRAK "project" that contains a collection of scripts and binaries. (#360)

Changed

  • Support uploading files in chunks to handle files larger than 2GB from the GUI (#324)

Fixed

  • Save resources affected by data patches and dependency updates on a resource being saved (#355)

ofrak-patch-maker-v4.0.2

9 months ago

Fixed

  • Remove option to read or install toolchain.conf from/to "/etc/toolchain.conf" (#342)

ofrak-patch-maker-v4.0.1

11 months ago

Added

  • Interface to iterate over all Toolchain implementations (#287)

Fixed

  • Localize magic import (#299)

ofrak-v3.1.0

11 months ago

Added

  • Add ElfLoadAlignmentModifier, which reclaims unused alignment bytes between PT_LOAD segments in ELFs as free space. (#302)
  • Add a "copy to clipboard" button to the "Show Snippet" view for easy exporting. (#301)
  • Add a settings pane to the OFRAK GUI that supports theming and changing colors (#309)
  • Add a button and interface in the OFRAK GUI to specifically select any component to run on a resource (#287)
  • Add DDR pad support to the OFRAK GUI (#322)

Fixed

  • Fixed a bug where clicking "Unpack" or "Identify" (for example) too quickly after loading a large resource causes an error that freezes up the whole GUI (#297)
  • Bump importlib-metadata version to fix import errors (#296)
  • Treat libmagic, strings as ComponentExternalTools so that they are considered dependencies. (#299)

ofrak-patch-maker-v4.0.0

1 year ago

4.0.0

Changed

  • Discard .altinstructions section when linking
  • Use SUBALIGN(0) for .bss sections
  • Force literal pool at end of function for AARCH64 using -mpc-relative-literal-loads

Added

  • -fno-optimize-sibling-calls flag added to AVR toolchain.
  • -fno-pic flag added to the GNU_10_Toolchain to omit GOTs in patches (FEMs) against binaries that aren't dynamically linked. (see #245)
  • Add methods to parse relocation symbols from object files.
  • Extend parsed symbol dictionary to include LinkableSymbolType.
  • Extend AssembledObject and BOM types to include relocation and unresolved symbols.
  • Add separate data sections support to LLVM toolchain, and add general flag for including subsections

Changed

  • Switch to standard GCC-like frontend for LLVM, which supports C attribute(weak)
  • Treat weak symbols as "undefined" in BOM, so alternative, strong definitions can be searched
  • Pass -mmcu value to the AVR preprocessor.
  • Raise a more descriptive error on toolchain failure.

Fixed

  • Toolchain preprocess() method now returns the path to the preprocessed file.

ofrak-type-v2.2.0

1 year ago

2.2.0

Added

  • ProcessorType.CORTEX_A72
  • LinkableSymbolType enum for generalized representation of symbol types (essentially functions vs. data)

ofrak-v3.0.0

1 year ago

3.0.0

Added

  • Add call to flush a resource to disk in the script whenever a user downloads a resource from the GUI. (#277)
  • Generate dynamic, runnable script based on GUI actions and display the script in the GUI. (#265)
  • Add -f/--file option to ofrak gui command to pre-load some files into OFRAK before opening the GUI, so they can be explored right away (#266)
  • Add -i/--import option to the CLI to import and discover additional OFRAK Python packages when starting OFRAK. (#269)
  • Add Identifier to tag ComplexBlocks as LinkableSymbols and Analyzer to copy attributes from a ComplexBlock to its LinkableSymbol. (#226)
  • Add method to create new LinkableSymbols from symbols defined in a patch file. (#226)

Changed

  • Remove need to create Resources to pass source code and headers to PatchFromSourceModifier and FunctionReplaceModifier (#249)
  • Choose Analyzer components which output the entirety of a view, rather than piece by piece, which would choose the wrong Analyzer sometimes. (#264)
  • Generate LinkableBinary stubs as strong symbols, so linker use them to override weak symbols in patch (#259)
  • Limit stub file creation for linkable BOMs to only those required by a patch. (#226)

Fixed

  • Fix bug where ComponentExternalTool would raise an error when checking whether a tool was installed returned a non-zero exit value (#289)
  • Fix bug where jumping to a multiple of 0x10 in the GUI went to the previous line (#254)
  • Fix installing on Windows, as well as small GUI style fixes for Windows (#261)
  • Fixed Uf2File identifier so that it correctly tags UF2 files with Uf2File (#283)

ofrak-v2.2.1

1 year ago

Added

  • Add GUI features
    • Keyboard shortcuts (#210)
    • Button to add a tag to a resource (#215)
    • Browser tab title contains current resource caption (#230)
  • Add a way to sort and filter by data length or offset (#220)
  • Add caption to ElfProgramHeader (#223)
  • Add baseline support for running pip-installing ofrak on Windows (#228, #239, #242, #246)

Changed

  • Updates to Flash components: (#195)
    • Flash components now support more than one occurrence of the same field type in FlashAttributes.
    • FlashOobResourceUnpacker continues to unpack even if blocks do not perfectly align at end of the FlashOobResource (this is useful for real-world flash dumps).
  • Tweak how errors are raised when auto-running components, so the actual root cause is not buried (#219)
  • Show mapped resource captions on hover in the hex view (#221)
  • Change how resources are stored to making deleting (and thus packing) much faster (#201)
  • Use non-blocking asyncio.create_subprocess_exec calls in components (#53)

Fixed

  • Fix bug where initially loaded GUI resource has collapsed children (#209)
  • Fix bug in GUI where "jump to offset" feature in hex view rounded up instead of down (#243)
  • Support more OpenWRT TRX files by making fewer assumptions about the partitions (#216)
  • Fix some OS-specific problems (libmagic install, log file path) preventing OFRAK install on Windows (#239)

ofrak-v2.2.0

1 year ago

Fixed

  • Fix bug in data service that can cause mangled internal state #197
  • Fix long-broken OFRAK.set_id_service #198
  • Fix bug in SegmentInjectorModifier that resulted in deleting more resources than necessary #200

Added

  • Replace unofficial p7zip with official 7zip package
  • File browser dialog in the GUI
  • Area in the GUI to jump to a given data offset
  • GUI command line now has a flag to not automatically open the browser

Changed

  • GUI is much faster, especially for resources with hundreds of thousands of children #191
  • Resources whose data gets modified are now listed in the resource_modified field of component results #200

ofrak-v2.1.1

1 year ago

Fixed

  • GUI uses correct attribute class names again (not *AutoAttributes)