Added
- Add `ElfLoadAlignmentModifier`, which reclaims unused alignment bytes between PT_LOAD segments in ELFs as free space. ([302](https://github.com/redballoonsecurity/ofrak/pull/302))
- Add a "copy to clipboard" button to the "Show Snippet" view for easy exporting. ([301](https://github.com/redballoonsecurity/ofrak/pull/301))
- Add a settings pane to the OFRAK GUI that supports theming and changing colors ([309](https://github.com/redballoonsecurity/ofrak/pull/309))
- Add a button and interface in the OFRAK GUI to specifically select any component to run on a resource ([287](https://github.com/redballoonsecurity/ofrak/pull/287))
- Add DDR pad support to the OFRAK GUI ([322](https://github.com/redballoonsecurity/ofrak/pull/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](https://github.com/redballoonsecurity/ofrak/pull/297))
- Bump `importlib-metadata` version to fix import errors ([296](https://github.com/redballoonsecurity/ofrak/pull/296))
- Treat `libmagic`, `strings` as `ComponentExternalTools` so that they are considered dependencies. ([299](https://github.com/redballoonsecurity/ofrak/pull/299/))
ofrak-type-v2.2.0
[2.2.0](https://github.com/redballoonsecurity/ofrak/compare/ofrak-type-v2.1.0...ofrak-type-v2.2.0)
Added
- `ProcessorType.CORTEX_A72`
- LinkableSymbolType enum for generalized representation of symbol types (essentially functions vs. data)
ofrak-patch-maker-v4.0.0
[4.0.0](https://github.com/redballoonsecurity/ofrak/compare/ofrak-patch-maker-v.3.0.0...ofrak-patch-maker-v.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](https://github.com/redballoonsecurity/ofrak/pull/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.