CI and developer setup for building the full REDasm project from source.
For bug reports, feature requests and general discussion see here.
- CMake 3.25
- C17 (core) & C++17 (GUI)
- Qt 6.8 LTS (GUI)
- Git
Tested on Visual Studio 2022
Qt can be installed via aqtinstall:
pip install aqtinstall
aqt install-qt windows desktop 6.8.3 win64_msvc2022_64 -O C:\QtAll requirements are met by the default Ubuntu 24.04 LTS repositories, no additional steps needed.
sudo apt install build-essential cmake git qt6-base-dev qt6-tools-devClone this repo and run Setup.cmake to fetch all components:
git clone https://github.com/redasm-dev/workspace
cd workspace
cmake -P Setup.cmakeConfigure the build, specifying the Qt installation path:
# Windows (adjust the Qt path to match your installation)
cmake -B build -DCMAKE_PREFIX_PATH=C:\Qt\6.8.3\msvc2022_64
# Linux (only needed if Qt is not installed system-wide)
cmake -B build -DCMAKE_PREFIX_PATH=/path/to/qtThen build:
# Linux: build type set at configure time, not build time
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
# Windows: build type set at build time via --config
cmake --build build --config Release --parallelIf needed, change the build type to Debug
Fetch the test suite and sample binaries alongside the other components:
cmake -DREDASM_FETCH_TESTS=ON -P Setup.cmakeConfigure with the samples path and build:
# Linux
cmake -B build -DREDASM_SAMPLES=/path/to/workspace/samples
# Windows
cmake -B build -DCMAKE_PREFIX_PATH=C:\Qt\6.8.3\msvc2022_64 -DREDASM_SAMPLES=C:\path\to\workspace\samplesRun the tests:
# Linux
ctest --test-dir build --output-on-failure
# Windows
ctest --test-dir build -C Release --output-on-failurePin every component to the same version with a single flag:
cmake -DREDASM_VERSION_DEFAULT=v4.0.1 -P Setup.cmakeDefaults to master for all components if not specified.
Individual components can be overridden on top of the default (useful for local testing against a branch):
cmake \
-DREDASM_VERSION_DEFAULT=v4.0.1 \
-DLOADERS_VERSION=my-feature-branch \
-P Setup.cmakeAvailable overrides: CORE_VERSION, GUI_VERSION, LOADERS_VERSION, PROCESSORS_VERSION,
COMMANDS_VERSION, ANALYZERS_VERSION.
Each falls back to REDASM_VERSION_DEFAULT if unset.
The kb can be compatible within a series of REDasm releases.
Because of this, KB_VERSION does not fall back to REDASM_VERSION_DEFAULT: it always defaults straight to master,
but it can be overrided to a specific Git ref, if needed:
# core/redasm/loaders/... pinned to v4.0.1, kb still tracks master
cmake -DREDASM_VERSION_DEFAULT=v4.0.1 -P Setup.cmake
# pin kb explicitly
cmake -DREDASM_VERSION_DEFAULT=v4.0.1 -DKB_VERSION=kb-v1.0 -P Setup.cmakeInstall linuxdeploy and the Qt plugin:
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage linuxdeploy-plugin-qt-x86_64.AppImageConfigure and build in Release, then install into a staging directory:
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
cmake --build build --config Release
cmake --install build --prefix AppDir/usrGenerate the AppImage:
QMAKE=$(which qmake6) ./linuxdeploy-x86_64.AppImage \
--appdir AppDir \
--plugin qt \
--output appimageThe resulting REDasm-x86_64.AppImage will be in the current directory.
All nightly and release's checksums are GPG signed, import the appropriate public key to verify:
# Stable releases
gpg --keyserver keys.openpgp.org --recv-keys B0C728D7021EEEE9D9B859043AF46EB2201FFB56
# Nightly builds
gpg --keyserver keys.openpgp.org --recv-keys A2391AFACAE2EE52B35541DD65F948A2F6BB294AEach artifact ships with a .sha256 checksum file and a .sha256.asc signature of that checksum file.
Verify in two steps: first the signature, then the checksum:
# 1. Verify the checksum file itself is authentic
gpg --verify REDasm-4.0.1-linux-x86_64.AppImage.sha256.asc REDasm-4.0.1-linux-x86_64.AppImage.sha256
gpg --verify REDasm-4.0.1-windows-x86_64.zip.sha256.asc REDasm-4.0.1-windows-x86_64.zip.sha256
# 2. Verify the downloaded artifact matches that checksum
sha256sum -c REDasm-4.0.1-linux-x86_64.AppImage.sha256
sha256sum -c REDasm-4.0.1-windows-x86_64.zip.sha256For nightly builds, filenames use nightly in place of the version.
Key fingerprints:
| Key | Fingerprint |
|---|---|
REDasm Release release@redasm.dev |
B0C7 28D7 021E EEE9 D9B8 5904 3AF4 6EB2 201F FB56 |
REDasm Nightly nightly@redasm.dev |
A239 1AFA CAE2 EE52 B355 41DD 65F9 48A2 F6BB 294A |
| Repo | Description |
|---|---|
| core | Core library (Engine) |
| redasm | GUI Frontend (Qt6) |
| loaders | Loader plugins |
| processors | Processor plugins |
| commands | Command plugins |
| analyzers | Analyzer plugins |
| kb | Knowledge Base |
| tests | Test suite |
| samples | Sample binaries |