Skip to content

Commit

Permalink
prepare v0.7 stable release (#416)
Browse files Browse the repository at this point in the history
  • Loading branch information
Enkelmann authored Jun 22, 2023
1 parent 97b3235 commit 39876ac
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 27 deletions.
17 changes: 16 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 1,21 @@
0.7-dev
0.7 (2023-06)
====

- Improve handling of conditional assignment assembly instructions (PR #337)
- Improved exactness of CWE-190 check (PR #336)
- Improved exactness of CWE-119 check (PRs #339, #399)
- Added stubs for common libC-functions to several analyses (PRs #342, #348)
- Added a check for CWE-789: Memory Allocation with Excessive Size Value (PR #347)
- Improved implementation of the expression propagation algorithm (PR #356)
- Implement tracking of variables in global memory for several analyses (PRs #358, #361)
- Generate call trace information in the JSON output of CWE-119-check results (PRs #365, #388)
- Add macros for simpler unit test generation, refactored unit tests (PRs #380, #386)
- Function signature analysis output now gets properly sanitized (PR #389)
- Migrate the official Docker images from Dockerhub to ghcr.io (PR #401)
- Improved support for MIPS (PR #404)
- Generate call trace information in the JSON output of CWE-416-check results (PR #408)
- Support more allocation/deallocation functions in the checks, e.g C -new/delete (PR #414)

0.6 (2022-06)
====

Expand Down
7 changes: 4 additions & 3 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -1,12 1,13 @@
# cwe_checker contributors

- [Thomas Barabosch](https://github.com/tbarabosch)
- Original author
- Original author, maintainer 2018-2019

- [Nils-Edvin Enkelmann](https://github.com/Enkelmann)
- Current maintainer
- Maintainer since 2020

- [Jörg Stucke](https://github.com/jstucke)
- Docker container

- [Melvin Klimke](https://github.com/mellowCS)

- [Mauritz van den Bosch](https://github.com/m-rtz)
25 changes: 16 additions & 9 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 4 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 1,3 @@
***Important note:*** We recently decided to migrate from Dockerhub to the Github container registry.
If you are using our prebuilt Docker images, please remember to change the cwe_checker-image names from `fkiecad/cwe_checker` to `ghcr.io/fkie-cad/cwe_checker` in your scripts!

<p align="center">
<img src="doc/images/cwe_checker_logo.png" alt="cwe_checker logo" width="50%" height="50%"/>
</p>
Expand All @@ -21,13 18,13 @@ Its main focus are ELF binaries that are commonly found on Linux and Unix operat
The cwe_checker uses [Ghidra](https://ghidra-sre.org/) to disassemble binaries into one common intermediate representation
and implements its own analyses on this IR.
Hence, the analyses can be run on most CPU architectures that Ghidra can disassemble,
which makes the *cwe_checker* a valuable tool for firmware analysis.
which makes the cwe_checker a valuable tool for firmware analysis.

The following arguments should convince you to give *cwe_checker* a try:
- it is very easy to set up, just build the Docker container!
- it analyzes ELF binaries of several CPU architectures including x86, ARM, MIPS, and PPC
- it is extensible due to its plugin-based architecture
- it is configureable, e.g. apply analyses to new APIs
- it is configurable, e.g. apply analyses to new APIs
- view results annotated in Ghidra
- cwe_checker can be integrated as a plugin into [FACT](https://github.com/fkie-cad/FACT_core)

Expand All @@ -42,7 39,7 @@ The following arguments should convince you to give *cwe_checker* a try:
The simplest way is to pull the latest Docker image from the [Github container registry](https://github.com/fkie-cad/cwe_checker/pkgs/container/cwe_checker):
- `docker pull ghcr.io/fkie-cad/cwe_checker:latest` yields an image based on the current master branch.
- `docker pull ghcr.io/fkie-cad/cwe_checker:stable` yields an image based on the latest stable release version.
- `docker pull ghcr.io/fkie-cad/cwe_checker:v0.6` yields an image based on the v0.6 stable release version.
- `docker pull ghcr.io/fkie-cad/cwe_checker:v0.7` yields an image based on the v0.7 stable release version.
However, it is recommended to switch to newer stable releases as soon as they get published, since improvements between stable versions can be quite significant.

If you want to build the docker image yourself, just run
Expand All @@ -56,7 53,7 @@ The prebuilt Docker images are currently only x86-based.

The following dependencies must be installed in order to build and install the *cwe_checker* locally:
- [Rust](https://www.rust-lang.org) >= 1.69
- [Ghidra](https://ghidra-sre.org/) >= 10.2 (**Warning:** This applies to the master branch, the v0.6 stable release needs Ghidra 10.1.5)
- [Ghidra](https://ghidra-sre.org/) >= 10.2

Run `make all GHIDRA_PATH=/path/to/ghidra_folder` (with the correct path to the local Ghidra installation inserted) to compile and install the cwe_checker.
If you omit the `GHIDRA_PATH` argument the installer will search your file system for a local installation of Ghidra.
Expand Down
4 changes: 2 additions & 2 deletions src/caller/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,12 1,12 @@
[package]
name = "cwe_checker"
version = "0.7.0-dev"
version = "0.7.0"
authors = ["Nils-Edvin Enkelmann <[email protected]>"]
edition = "2021"

[dependencies]
clap = { version = "4.0", features = ["derive"] }
cwe_checker_lib = { path = "../cwe_checker_lib" }
serde_json = "1.0"
directories = "4.0.1"
directories = "5.0.1"
anyhow = "1.0"
6 changes: 3 additions & 3 deletions src/cwe_checker_lib/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 1,6 @@
[package]
name = "cwe_checker_lib"
version = "0.7.0-dev"
version = "0.7.0"
authors = ["Nils-Edvin Enkelmann <[email protected]>"]
edition = "2021"

Expand All @@ -15,8 15,8 @@ fnv = "1.0" # a faster hash function for small keys like integers
anyhow = "1.0" # for easy error types
crossbeam-channel = "0.5.4"
derive_more = "0.99"
directories = "4.0.1"
goblin = "0.5.1"
directories = "5.0.1"
goblin = "0.7.1"
itertools = "0.10.3"
gcd = "2.1.0"
nix = "0.26.1"
Expand Down
2 changes: 1 addition & 1 deletion src/cwe_checker_lib/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 11,7 @@ Currently its main focus are ELF binaries that are commonly found on Linux and U
The cwe_checker uses [Ghidra](https://ghidra-sre.org/) to disassemble binaries into one common intermediate representation
and implements its own analyses on this IR.
Hence, the analyses can be run on most CPU architectures that Ghidra can disassemble,
which makes the *cwe_checker* a valuable tool for firmware analysis.
which makes the cwe_checker a valuable tool for firmware analysis.
# Usage
Expand Down
2 changes: 1 addition & 1 deletion src/installer/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 4,7 @@ version = "0.1.0"
edition = "2021"

[dependencies]
directories = "4.0.1"
directories = "5.0.1"
walkdir = "2"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Expand Down

0 comments on commit 39876ac

Please sign in to comment.