Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/3.0.0 #294

Merged
merged 6 commits into from
Apr 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ofrak-app",
"version": "2.2.1",
"version": "3.0.0",
"description": "The graphical front-end for OFRAK.",
"homepage": "https://ofrak.com",
"private": true,
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/App.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -246,5 +246,5 @@ Answer by running riddle.answer('your answer here') from the console.`);
{/if}

<div class="bottomright">
<p><a href="https://ofrak.com" target="_blank" rel="noreferrer">v2.2.1</a></p>
<p><a href="https://ofrak.com" target="_blank" rel="noreferrer">v3.0.0</a></p>
</div>
21 changes: 11 additions & 10 deletions ofrak_core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,28 @@ All notable changes to `ofrak` will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased](https://github.com/redballoonsecurity/ofrak/tree/master)

## [3.0.0](https://github.com/redballoonsecurity/ofrak/compare/ofrak-v2.2.1...ofrak-v3.0.0)
### Added
- Add call to flush a resource to disk in the script whenever a user downloads a resource from the GUI. ([#277](https://github.com/redballoonsecurity/ofrak/pull/277))
- Generate dynamic, runnable script based on GUI actions and display the script in the GUI. ([#265](https://github.com/redballoonsecurity/ofrak/pull/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](https://github.com/redballoonsecurity/ofrak/pull/266))
- Add `-i`/`--import` option to the CLI to import and discover additional OFRAK Python packages when starting OFRAK. [#269](https://github.com/redballoonsecurity/ofrak/pull/269)
- Add `-i`/`--import` option to the CLI to import and discover additional OFRAK Python packages when starting OFRAK. ([#269](https://github.com/redballoonsecurity/ofrak/pull/269))
- Add Identifier to tag `ComplexBlocks` as `LinkableSymbols` and Analyzer to copy attributes from a `ComplexBlock` to its `LinkableSymbol`. ([#226](https://github.com/redballoonsecurity/ofrak/pull/226))
- Add method to create new `LinkableSymbols` from symbols defined in a patch file. ([#226](https://github.com/redballoonsecurity/ofrak/pull/226))


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

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

## [2.2.1](https://github.com/redballoonsecurity/ofrak/compare/ofrak-v2.2.0...ofrak-v2.2.1) - 2023-03-08
### Added
Expand All @@ -46,11 +52,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
- Support more OpenWRT TRX files by making fewer assumptions about the partitions ([#216](https://github.com/redballoonsecurity/ofrak/pull/216))
- Fix some OS-specific problems (libmagic install, log file path) preventing OFRAK install on Windows ([#239](https://github.com/redballoonsecurity/ofrak/pull/239))

### Added
- Add Identifier to tag `ComplexBlocks` as `LinkableSymbols` and Analyzer to copy attributes from a `ComplexBlock` to its `LinkableSymbol`.
- Add method to create new `LinkableSymbols` from symbols defined in a patch file.
- Limit stub file creation for linkable BOMs to only those required by a patch.

## [2.2.0](https://github.com/redballoonsecurity/ofrak/compare/ofrak-v2.1.1...ofrak-v2.2.0) - 2023-02-01
### Fixed
- Fix bug in data service that can cause mangled internal state [#197](https://github.com/redballoonsecurity/ofrak/pull/197)
Expand Down
2 changes: 0 additions & 2 deletions ofrak_core/requirements-test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@ hypothesis~=6.39.3
hypothesis-trio
trio-asyncio
mypy==0.942
ofrak_angr~=1.0
ofrak_capstone~=1.0
psutil~=5.9
pyelftools==0.29
pytest-aiohttp
Expand Down
11 changes: 6 additions & 5 deletions ofrak_core/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,21 +40,22 @@ def read_requirements(requirements_path):

setuptools.setup(
name="ofrak",
version="2.2.1",
version="3.0.0",
description="A binary analysis and modification platform",
packages=setuptools.find_packages(exclude=["test_ofrak", "test_ofrak.*"]),
package_data={
"ofrak": ["py.typed"],
},
install_requires=[
"ofrak_io~=1.0",
"ofrak_type~=2.0",
"ofrak_patch_maker~=3.0",
"ofrak_io>=1.0,==1.*",
"ofrak_type>=2.2.0rc0,==2.*",
"ofrak_patch_maker>=4.0.0rc0,==4.*",
]
+ read_requirements("requirements.txt"),
extras_require={
"docs": read_requirements("requirements-docs.txt"),
"test": read_requirements("requirements-test.txt"),
"test": ["ofrak_angr~=1.0", "ofrak_capstone~=1.0"]
+ read_requirements("requirements-test.txt"),
},
author="Red Balloon Security",
author_email="ofrak@redballoonsecurity.com",
Expand Down
4 changes: 2 additions & 2 deletions ofrak_core/test_ofrak/components/test_string.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@
int main() {
printf("O");
printf("h, hi");
printf(" Marc!\n");
printf("You are tearing me apart, Lisa!\n");
printf(" Marc!");
printf("You are tearing me apart, Lisa!");
return 0;
}
"""
Expand Down
15 changes: 9 additions & 6 deletions ofrak_patch_maker/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)

## [Unreleased](https://github.com/redballoonsecurity/ofrak/tree/master)

## [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.
Expand All @@ -19,10 +23,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
### 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.

## [3.0.0](https://github.com/redballoonsecurity/ofrak/compare/ofrak-patch-maker-v.2.0.0...ofrak-patch-maker-v.3.0.0) - 2023-01-20
### Added
- `-fno-optimize-sibling-calls` flag added to AVR toolchain.
- Optional permission map parameter to `Allocatable.allocate_bom`, which enables developers to express where
segments of one set of permissions may be placed in the destination binary. For example, a developer may specify
to place `MemoryPermissions.R` `Segments` in destination program `MemoryRegions` of `MemoryPermissions.R`
Expand All @@ -33,11 +41,6 @@ or `MemoryPermissions.RX`.
- Make toolchain names in `toolchain.conf` more specific:
- `GNU_ARM_NONE` changed to `GNU_ARM_NONE_EABI_10_2_1`.
- `GNU_X86_64_LINUX` changed to `GNU_X86_64_LINUX_EABI_10_3_0`.
- 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.

### Removed
- Removed `ToolchainVersion`.
Expand Down
4 changes: 2 additions & 2 deletions ofrak_patch_maker/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@ def read_requirements(requirements_path):

setuptools.setup(
name="ofrak_patch_maker",
version="3.0.0",
version="4.0.0",
description="PatchMaker tool for applying source-code patches to binaries",
packages=setuptools.find_packages(exclude=("ofrak_patch_maker_test",)),
package_data={"ofrak_patch_maker": ["py.typed"]},
install_requires=[
"ofrak_type~=2.0",
"ofrak_type>=2.2.0rc0,==2.*",
]
+ read_requirements("requirements.txt"),
extras_require={
Expand Down
2 changes: 2 additions & 0 deletions ofrak_type/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)

## [Unreleased](https://github.com/redballoonsecurity/ofrak/tree/master)

## [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)
Expand Down
2 changes: 1 addition & 1 deletion ofrak_type/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def run(self):

setuptools.setup(
name="ofrak_type",
version="2.1.0",
version="2.2.0",
description="Custom classes and types used in OFRAK",
package_data={
"ofrak_type": ["py.typed"],
Expand Down