Skip to content

Commit

Permalink
Merge pull request #472 from vobst/pcode_extractor_refactoring
Browse files Browse the repository at this point in the history
The Great Pcode Extractor Refactoring
  • Loading branch information
vobst authored Dec 10, 2024
2 parents 37c8125 + bf62f7e commit 457d2db
Show file tree
Hide file tree
Showing 192 changed files with 13,543 additions and 9,642 deletions.
39 changes: 19 additions & 20 deletions .github/workflows/acceptance-tests.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Acceptance tests

on:
on:
push:
branches:
- master
Expand All @@ -10,16 +10,16 @@ on:

env:
CARGO_TERM_COLOR: always
GHIDRA_RELEASE_TAG: Ghidra_10.2.3_build
GHIDRA_VERSION: ghidra_10.2.3_PUBLIC_20230208

jobs:
jobs:

acceptance-tests:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Build the cwe_checker docker image
run: docker build -t cwe_checker .
- name: Build and run docker image for cross compiling
run: |
pushd test/artificial_samples
Expand All @@ -28,28 +28,27 @@ jobs:
popd
pushd test/lkm_samples
./build.sh
- uses: actions/setup-java@v1
with:
java-version: "17.0.x"
java-package: jdk
architecture: x64
- name: Install Ghidra
run: |
wget https://github.com/NationalSecurityAgency/ghidra/releases/download/${GHIDRA_RELEASE_TAG}/${GHIDRA_VERSION}.zip
unzip -d ghidra ${GHIDRA_VERSION}.zip
mv ghidra/ghidra_* /opt/ghidra
rm ${GHIDRA_VERSION}.zip
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.76.0
toolchain: 1.82.0
override: true
- name: Install cwe_checker
run: make all GHIDRA_PATH=/opt/ghidra
- uses: actions-rs/cargo@v1
with:
command: test
args: --locked --no-fail-fast -p acceptance_tests_ghidra -- --show-output --ignored --test-threads 1
args: --locked --no-fail-fast -p acceptance_tests_ghidra -F docker -- --show-output --ignored
- name: Generate zip with test binaries
run: |
zip artificial_samples.zip test/artificial_samples/build/*.out
zip lkm_samples.zip test/lkm_samples/build/*.ko
- name: Archive test binaries
uses: actions/upload-artifact@v4
with:
name: acceptance-test-binaries
path: |
artificial_samples.zip
lkm_samples.zip
docker-build:
runs-on: ubuntu-latest
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/codestyle_checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.76.0
toolchain: 1.82.0
override: true
components: rustfmt
- uses: actions-rs/cargo@v1
Expand All @@ -33,7 +33,7 @@ jobs:
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.76.0
toolchain: 1.82.0
override: true
components: clippy
- uses: actions-rs/cargo@v1
Expand All @@ -53,7 +53,7 @@ jobs:
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.76.0
toolchain: 1.82.0
override: true
components: rust-docs
- uses: actions-rs/cargo@v1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: 1.76.0
toolchain: 1.82.0
override: true
- uses: actions-rs/cargo@v1
with:
Expand Down
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -264,3 +264,16 @@ ghidra/p_code_extractor/lib/

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# Stuff
notes.md
*.pcode-raw
*.ir-optimized
*.ir-unoptimized
*.ir-opt
*.ir-unopt
*.ir
*.pi
*.cfg
*.warn
_ghidra
11 changes: 11 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
0.10-dev
===

- Rewrite of the PcodeExtractor Ghidra plugin (PR #472)
- Rewrite of the internal Pcode to IR conversion (PR #472)
- Introduction of a dedicated intraprocedural CFG type (PR #472)
- Introduction of a call graph type (PR #472)
- Reduced memory usage of the dead variable elimination pass (PR #472)
- Reduced runtime of the input expression propagation pass (PR #472)
- Addition of benchmarks for additional architectures (PR #472)
- Support for additional architectures due to Ghidra update (PR #472)
- Feature to run acceptance tests inside the Docker container (PR #472)
- Introduce `--cfg-stats` flag (PR #472)

0.9 (2024-08)
===

Expand Down
Loading

0 comments on commit 457d2db

Please sign in to comment.