Vassilios Solachidis

44 papers A 2B 4C 1Misc 3Journal 10Unranked 23
YearRankTypeTitle / Venue / Authors
2024 J jnl
Inf.
Thomas Kopalidis, Vassilios Solachidis, Nicholas Vretos, Petros Daras
2022 conf
PETRA
Jennifer Jiménez, Juan Mercado, Laura Carrasco, Verónica Ruíz, Vassilios Solachidis, Javier Serrano, Nicholas Vretos, Federico Álvarez
2020 B conf
ICIP
Thomas Theodoridis, Vassilios Solachidis, Kosmas Dimitropoulos, Petros Daras
2020 conf
CVPR Workshops
Thomas Theodoridis, Theocharis Chatzis, Vassilios Solachidis, Kosmas Dimitropoulos, Petros Daras
2020 J jnl
IEEE Access
Christos Avgerinos, Vassilios Solachidis, Nicholas Vretos, Petros Daras
2019 conf
PETRA
Alberto Belmonte-Hernández, Thomas Theodoridis, Marta Burgos González, Gustavo Hernández-Peñaloza, Vassilios Solachidis, Jennifer Jiménez Ramos, Federico Álvarez, Nicholas Vretos, Laura Carrasco, Petros Daras
2019 conf
PETRA
Thomas Theodoridis, Vassilios Solachidis, Kosmas Dimitropoulos, Lazaros Gymnopoulos, Petros Daras
2018 J jnl
IEEE Multim.
Federico Alvarez, Mirela Popa, Vassilios Solachidis, Gustavo Hernandez-Penaloza, Alberto Belmonte-Hernandez, Stylianos Asteriadis, Nicholas Vretos, Marcos Quintana, Thomas Theodoridis, Dario Dotti, Petros Daras
2017 B conf
ICMR
Andrea Ceroni, Vassilios Solachidis, Claudia Niederée, Olga Papadopoulou, Vasileios Mezaris
2015 conf
ICME Workshops
Andrea Ceroni, Vassilios Solachidis, Mingxin Fu, Nattiya Kanhabua, Olga Papadopoulou, Claudia Niederée, Vasileios Mezaris
2015 conf
ICME Workshops
Mingxin Fu, Andrea Ceroni, Vassilios Solachidis, Claudia Niederée, Olga Papadopoulou, Nattiya Kanhabua, Vasileios Mezaris
2015 conf
ICME Workshops
Konstantinos Apostolidis, Vassilios Solachidis, Olga Papadopoulou, Vasileios Mezaris
2015 B conf
ICMR
Andrea Ceroni, Vassilios Solachidis, Claudia Niederée, Olga Papadopoulou, Nattiya Kanhabua, Vasileios Mezaris
2013 conf
Image Processing: Algorithms and Systems
Vassilios Solachidis, Emanuele Maiorana, Patrizio Campisi
2013 conf
DSP
Vassilios Solachidis, Emanuele Maiorana, Patrizio Campisi, Francesco Banterle
2011 J jnl
Image Vis. Comput.
Nicholas Vretos, Vassilios Solachidis, Ioannis Pitas
2008 conf
GfKl
Vassilios Solachidis, Phivos Mylonas, Andreas Geyer-Schulz, Bettina Hoser, Sam Chapman, Fabio Ciravegna, Vita Lanfranchi, Ansgar Scherp, Steffen Staab, Costis Contopoulos, Ioanna Gkika, Byron Bakaimis, Pavel Smrz, Yiannis Kompatsiaris, Yannis Avrithis
2008 conf
GfKl
Phivos Mylonas, Vassilios Solachidis, Andreas Geyer-Schulz, Bettina Hoser, Sam Chapman, Fabio Ciravegna, Steffen Staab, Pavel Smrz, Yiannis Kompatsiaris, Yannis Avrithis
2008 conf
EUSIPCO
Nicholas Vretos, Vassilios Solachidis, Petr Somol, Ioannis Pitas
2007 C conf
MMSP
Nicholas Vretos, Vassilios Solachidis, Ioannis Pitas
2007 conf
ISSPA
Ines Cherif, Vassilios Solachidis, Ioannis Pitas
2007 J jnl
IEEE Trans. Multim.
Vassilios Solachidis, Ioannis Pitas
2006 A conf
ICME
Nicholas Vretos, Vassilios Solachidis, Ioannis Pitas
2006 conf
IFIP AI
Ines Cherif, Vassilios Solachidis, Ioannis Pitas
2005 conf
Panhellenic Conference on Informatics
Nicholas Vretos, Vassilios Solachidis, Ioannis Pitas
2005 conf
EUSIPCO
Nicholas Vretos, Vassilios Solachidis, Ioannis Pitas
2005 A conf
ICME
Vassilios Solachidis, Ioannis Pitas
2004 J jnl
EURASIP J. Adv. Signal Process.
Vassilios Solachidis, Ioannis Pitas
2004 J jnl
IEEE Computer Graphics and Applications
Vassilios Solachidis, Ioannis Pitas
2004
Vassilios Solachidis
2003 conf
ICIP (2)
Vassilios Solachidis, Ioannis Pitas
2003 J jnl
IEEE Trans. Signal Process.
Anastasios Tefas, Athanasios Nikolaidis, Nikos Nikolaidis, Vassilios Solachidis, Sofia Tsekeridou, Ioannis Pitas
2002 conf
ICME (2)
Nikos Nikolaidis, Vassilios Solachidis, Anastasios Tefas, Ioannis Pitas
2001 conf
ICIP (3)
Nikos Nikolaidis, Sofia Tsekeridou, Anastasios Tefas, Vassilios Solachidis, Athanasios Nikolaidis, Ioannis Pitas
2001 conf
ICIP (3)
Athanasios Nikolaidis, Sofia Tsekeridou, Anastasios Tefas, Vassilios Solachidis
2001 Misc conf
ICASSP
Sofia Tsekeridou, Vassilios Solachidis, Nikos Nikolaidis, Athanasios Nikolaidis, Anastasios Tefas, Ioannis Pitas
2001 J jnl
IEEE Trans. Image Process.
Vassilios Solachidis, Ioannis Pitas
2001 conf
ISCAS (2)
Anastasios Tefas, Athanasios Nikolaidis, Nikos Nikolaidis, Vassilios Solachidis, Sofia Tsekeridou, Ioannis Pitas
2001 J jnl
Signal Process.
Sofia Tsekeridou, Vassilios Solachidis, Nikos Nikolaidis, Athanasios Nikolaidis, Anastasios Tefas, Ioannis Pitas
2001 conf
Communications and Multimedia Security
Sofia Tsekeridou, Vassilios Solachidis, Nikos Nikolaidis, Athanasios Nikolaidis, Anastasios Tefas, Ioannis Pitas
2000 B conf
ICIP
Vassilios Solachidis, Nikos Nikolaidis, Ioannis Pitas
2000 conf
EUSIPCO
Vassilios Solachidis, Ioannis Pitas
2000 Misc conf
ICASSP
Vassilios Solachidis, Nikolaos Nikolaidis, Ioannis Pitas
1999 Misc conf
ICASSP
Vassilios Solachidis, Ioannis Pitas
CLAUDE.md
← Index CLAUDE.md markdown
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

REDB (RationalEdge Samples DB) is a malware analysis framework that extracts features from PE (Portable Executable) files and stores them in ClickHouse database for analysis. It provides a comprehensive set of extractors for analyzing binary samples including PE headers, imports, resources, signatures, and decompiled code.

## Common Commands

### Development Setup
```bash
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run the main application
python start.py --path /path/to/samples --repo sample_repo --index_prefix redb
```

### Analysis Commands
```bash
# Process a single file
python start.py --path /path/to/binary --repo test --index_prefix redb

# Process from S3 storage
python start.py --s3 --repo malpedia --index_prefix redb

# Process from S3 storage but only a subset of a specific repository
python start.py --s3 --repo "vx-itw" --s3-notes "ITW.0138" --index_prefix redb

# Run only decompilation
python start.py --path /path/to/binary --repo test --index_prefix redb --decompile

# Run specific modules
python start.py --path /path/to/binary --repo test --index_prefix redb --modules "BasicPropertiesExtractor,PEFeaturesExtractor"

# Run as Nomad job (for containerized deployment)
python start.py --nomad-job
```

### Testing
There are no formal unit tests. Testing is done by running the extractors on sample files in the `test_files/` directory.

## Architecture Overview

### Core Components

1. **Ingestor (`redb/ingestor.py`)**: Main orchestrator that handles file processing, multiprocessing, and coordinates extractors
2. **Extractors (`redb/extractors/`)**: Modular analysis components that extract specific features
3. **Database Exporters (`redb/extractors/database_exporters.py`)**: Handle data export to ClickHouse
4. **Settings (`redb/settings/`)**: Configuration management for database connections

### Extractor Architecture

All extractors inherit from the base `Extractor` class and implement:
- `extract()`: Main analysis logic
- `prepare_export_data()`: Format data for database export
- `get_clickhouse_table()`: Return target table name

Available extractors:
- **General**: BasicPropertiesExtractor, HashExtractor, DIEExtractor, CAPAExtractor
- **PE-specific**: PEFeaturesExtractor, PEImportExtractor, PEResourceExtractor, PEOverlayExtractor, PESectionExtractor, PESignatureExtractor, PEDotNetExtractor, PEInconstistencyTestsExtractor, PEExtraFindings
- **ELF**: ELFFeaturesExtractor, ELFSegmentExtractor, ELFSectionExtractor, ELFDependencyExtractor, ELFSymbolExtractor, ELFImportExtractor, ELFExportExtractor, ELFRelocationExtractor, ELFNotesExtractor
- **Mach-O**: MachOFeaturesExtractor, MachOSegmentExtractor, MachOImportExtractor, MachOExportExtractor, MachODylibExtractor, MachOSignatureExtractor
- **APK**: APKFeaturesExtractor, APKManifestExtractor, APKPermissionsExtractor, APKSignatureExtractor, APKDexExtractor, APKResourceExtractor, APKNativeLibExtractor, APKInconsistencyTestsExtractor
- **Decompilation**: DecompileBinja, DecompileAPK

### Database Schema

The project uses a comprehensive ClickHouse schema defined in `redb/redb_schema.yml` with tables for:
- Basic properties (`redb_basic_properties`)
- PE features (`redb_pe_features`, `redb_pe_imports`, `redb_pe_sections`, etc.)
- Decompiled code (`code_binja_decompiled_functions_content`, `code_binja_decompiled_functions_references`)
- CAPA analysis (`redb_capa`, `redb_capa_capabilities`)

Full schema documentation is available in `docs/database_schema.md`.

### Processing Modes

1. **Analysis Mode**: Extracts features using selected modules
2. **Decompile Mode**: Uses Binary Ninja for code decompilation
3. **S3 Mode**: Fetches samples from S3 storage based on catalog queries
4. **Nomad Job Mode**: Processes single jobs using environment variables for containerized deployment

### Configuration

Environment variables are used for configuration:
- Database connection: `CLICKHOUSE_HOST`, `CLICKHOUSE_PORT`, `CLICKHOUSE_USER`, `CLICKHOUSE_PASSWORD`
- S3 storage: `S3_ENDPOINT`, `S3_ACCESS_KEY`, `S3_SECRET_KEY`
- Processing: `BATCH_SIZE`, `REDB_TIMEOUT`, `DECOMPILE_WORKER_TIMEOUT`
- Nomad jobs: `JOB_ID`, `S3_KEY`, `S3_BUCKET`, `WORKER_TYPE`, `CALLBACK_URL`, `ANALYSIS_MODULES`

## Important Implementation Details

### Multiprocessing
- Uses `spawn` method for multiprocessing to avoid memory issues
- Worker processes have timeout handlers to prevent hanging
- Supports both batch processing and streaming processing modes

### Memory Management
- Implements aggressive garbage collection between batches
- Monitors swap usage and restarts worker pools when needed
- Kills stuck processes automatically

### Error Handling
- Comprehensive logging with per-file context
- Graceful handling of corrupted or unsupported files
- Automatic retry logic for database operations

### Security Context
This is a defensive security tool for malware analysis. It processes potentially malicious files in a controlled environment to extract features for detection and analysis purposes.

## Development Notes

- The codebase is optimized for processing large batches of malware samples
- Extractors are designed to be modular and can be run individually or in combination
- Database schema supports both normalized and denormalized views for different query patterns
- S3 integration allows for scalable processing of large malware repositories