Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
e2cca24
update dependancies and README
codeyourweb Dec 13, 2025
e9d9032
LICENSE change to AGPL
codeyourweb Dec 13, 2025
0427f79
Implement GUI, review logging mechanisms and add event forwarding ca…
codeyourweb Dec 13, 2025
6aee17c
Improve scan performances and add unit testing
codeyourweb Jan 2, 2026
77f683b
Update Windows build workflow to use MINGW64 and install YARA v4.5.5
codeyourweb Jan 2, 2026
249e9c5
Add unit testing steps to Linux and Windows build workflows
codeyourweb Jan 2, 2026
624c336
Remove obsolete test files for common utilities, configuration, main,…
codeyourweb Jan 2, 2026
79ea121
Enhance Windows build workflow by adding OpenSSL support and improvin…
codeyourweb Jan 2, 2026
449ead0
Add Jansson library to Windows build workflow dependencies
codeyourweb Jan 2, 2026
9b186dc
Add file package to Windows build workflow dependencies
codeyourweb Jan 2, 2026
a0ba843
Update CGO_LDFLAGS in Windows build workflow to include Jansson and l…
codeyourweb Jan 2, 2026
331d033
Update Windows build workflow to include additional libraries and mod…
codeyourweb Jan 2, 2026
2bc231e
Refactor Windows build workflow by removing unused OpenSSL and Jansso…
codeyourweb Jan 3, 2026
a3663aa
Update Windows build workflow to include OpenSSL and modify CGO_LDFLA…
codeyourweb Jan 3, 2026
2b09798
Refactor events forwarding and update related tests
codeyourweb Jan 3, 2026
4c635f1
Add Docker support for FastFinder with multi-platform builds
codeyourweb Jan 3, 2026
e5765c1
add root path option and update triage mode support; update README an…
codeyourweb Jan 3, 2026
78adda5
Update Linux compilation guide and Docker helper script; enhance fall…
codeyourweb Jan 3, 2026
aee2491
Refactor file reading methods to use os and io packages
codeyourweb Jan 3, 2026
bd5cc8b
Add React2Shell configuration and YARA rules for threat detection
codeyourweb Jan 3, 2026
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
149 changes: 149 additions & 0 deletions .github/workflows/docker_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
name: Docker Build Test

on:
push:
branches: [ main, develop ]
paths:
- 'docker/**'
- '*.go'
- 'go.mod'
- 'go.sum'
- '.github/workflows/docker_build.yml'
pull_request:
branches: [ main ]
paths:
- 'docker/**'
- '*.go'
workflow_dispatch:

jobs:
# Test builder Dockerfile (cross-compilation)
test-builder:
name: Test Multi-Platform Builder
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build Linux binary
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile.builder
target: linux-builder
push: false
tags: fastfinder-linux-builder:test
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Build Windows binary
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile.builder
target: windows-builder
push: false
tags: fastfinder-windows-builder:test
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Extract binaries
run: |
mkdir -p bin
docker build --target binaries --output type=local,dest=./bin -f docker/Dockerfile.builder .
ls -lh bin/

- name: Verify binaries exist
run: |
if [ ! -f "bin/fastfinder-linux-amd64" ]; then
echo "Linux binary not found!"
exit 1
fi
if [ ! -f "bin/fastfinder-windows-amd64.exe" ]; then
echo "Windows binary not found!"
exit 1
fi
echo "✓ Both binaries built successfully"

- name: Test Linux binary
run: |
chmod +x bin/fastfinder-linux-amd64
bin/fastfinder-linux-amd64 --version || echo "Version check not available"

- name: Upload binaries as artifacts
uses: actions/upload-artifact@v4
with:
name: fastfinder-binaries
path: |
bin/fastfinder-linux-amd64
bin/fastfinder-windows-amd64.exe
retention-days: 7

# Test runtime Dockerfile
test-runtime:
name: Test Runtime Container
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build runtime image
uses: docker/build-push-action@v5
with:
context: .
file: docker/Dockerfile.runtime
push: false
tags: fastfinder:test
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Test runtime container
run: |
# Create test directories
mkdir -p test-scan test-output
echo "test file" > test-scan/test.txt

# Run container
docker run --rm \
-v $(pwd)/test-scan:/scan:ro \
-v $(pwd)/examples:/rules:ro \
-v $(pwd)/test-output:/output \
fastfinder:test \
--help

echo "✓ Runtime container works"

# Test docker-compose
test-compose:
name: Test Docker Compose
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Validate docker-compose.yml
run: |
cd docker
docker-compose config
echo "✓ docker-compose.yml is valid"

- name: Test builder profile
run: |
cd docker
docker-compose --profile build config
echo "✓ Builder profile is valid"

- name: Test runtime profile
run: |
cd docker
docker-compose --profile runtime config
echo "✓ Runtime profile is valid"
10 changes: 7 additions & 3 deletions .github/workflows/go_build_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,17 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.17
- name: Install YARA v4.1
go-version: 1.24
- name: Install YARA v4.5.5
run: |
YARA_VERSION=4.1.3
YARA_VERSION=4.5.5
wget --no-verbose -O- https://github.com/VirusTotal/yara/archive/v${YARA_VERSION}.tar.gz | tar -C /tmp -xzf -
( cd /tmp/yara-${YARA_VERSION} && ./bootstrap.sh && sudo ./configure && sudo make && sudo make install )
- uses: actions/checkout@v2
- name: Run Unit Tests
run: |
sudo ldconfig
go test ./... -v
- name: Building Fastfinder
run: |
go build -trimpath -tags yara_static -a -ldflags '-s -w -extldflags "-static"' .
Expand Down
63 changes: 38 additions & 25 deletions .github/workflows/go_build_windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,40 +12,53 @@ jobs:
- name: Install MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: MSYS
path-type: minimal
msystem: MINGW64
path-type: inherit
update: true
install: mingw-w64-x86_64-toolchain mingw-w64-x86_64-pkg-config base-devel openssl-devel autoconf automake libtool unzip
- name: Install YARA v4.1
install: >-
mingw-w64-x86_64-gcc
mingw-w64-x86_64-toolchain
mingw-w64-x86_64-pkg-config
mingw-w64-x86_64-openssl
base-devel
autoconf
automake
libtool
make
unzip
wget
- name: Install YARA v4.5.5
run: |
wget -c https://github.com/VirusTotal/yara/archive/refs/tags/v4.1.3.zip -O /tmp/yara.zip
wget -c https://github.com/VirusTotal/yara/archive/refs/tags/v4.5.5.zip -O /tmp/yara.zip
cd /tmp && unzip yara.zip
cd /tmp/yara-4.1.3
export PATH=${PATH}:/c/msys64/mingw64/bin:/c/msys64/mingw64/lib:/c/msys64/mingw64/lib/pkgconfig
cd /tmp/yara-4.5.5
./bootstrap.sh
./configure
make
./configure --prefix=/mingw64
make -j$(nproc)
make install
cp -r libyara/include/* /c/msys64/mingw64/include
cp -r libyara/.libs/* /c/msys64/mingw64/lib
cp libyara/yara.pc /c/msys64/mingw64/lib/pkgconfig
# Verify yara.pc installation
ls -la /mingw64/lib/pkgconfig/yara.pc
pkg-config --modversion yara
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.17
go-version: 1.24
- uses: actions/checkout@v2
- name: Run Unit Tests
run: |
export PKG_CONFIG_PATH="/mingw64/lib/pkgconfig:$PKG_CONFIG_PATH"
export CGO_CFLAGS="-I/mingw64/include"
export CGO_LDFLAGS="-L/mingw64/lib -lyara -lssl -lcrypto"
cd $GITHUB_WORKSPACE
go test ./... -v
- name: Building Fastfinder
shell: powershell
run: |
$Env:PATH += ";C:/msys64/mingw64/include"
$Env:PATH += ";C:/msys64/mingw64/lib"
$Env:PATH += ";C:/msys64/mingw64/lib/pkgconfig"
$Env:GOOS="windows"
$Env:GOARCH="amd64"
$Env:CGO_CFLAGS="-IC:/msys64/mingw64/include"
$Env:CGO_LDFLAGS="-LC:/msys64/mingw64/lib -lyara -lcrypto"
$Env:PKG_CONFIG_PATH="C:/msys64/mingw64/lib/pkgconfig"
cd $Env:GITHUB_WORKSPACE
export PKG_CONFIG_PATH="/mingw64/lib/pkgconfig:$PKG_CONFIG_PATH"
export CGO_CFLAGS="-I/mingw64/include"
export CGO_LDFLAGS="-L/mingw64/lib -lyara -lssl -lcrypto"
export GOOS="windows"
export GOARCH="amd64"
cd $GITHUB_WORKSPACE
go build -trimpath -tags yara_static -a -ldflags '-s -w -extldflags "-static"' .
ls
.\fastfinder.exe -h
ls -la fastfinder.exe
./fastfinder.exe -h
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.DS_Store
.idea/
*.iml
.vscode/
.history/
bin/
*.exe
Binary file added Icon.ico
Binary file not shown.
Binary file modified Icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading