Rainer Kartmann

16 papers A 1C 3Journal 10Unranked 2
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Robotics Autom. Mag.
Alejandro Suárez, Rainer Kartmann, Daniel Leidner, Luca Rossini, Johann Huber, Carlos Azevedo, Quentin Rouxel, Marko Bjelonic, Antonio González-Morgado, Christian R. G. Dreher, Peter Schmaus, Arturo Laurenzi, François Hélénon, Rodrigo Serra, Jean-Baptiste Mouret, Lorenz Wellhausen, Vicente Perez-Sanchez, Jianfeng Gao, Adrian Simon Bauer, Alessio De Luca, Mouad Abrini, Rui Bettencourt, Olivier Rochel, Joonho Lee, Pablo Viana, Christoph Pohl, Nesrine Batti, Diego Vedelago, Vamsi Krishna Guda, Alexander Reske, Carlos Álvarez-Cía, Fabian Reister, Werner Friedl, Corrado Burchielli, Aline Baudry, Fabian Peller-Konrad, Thomas Gumpert, Luca Muratore, Philippe Gauthier, Franziska Krebs, Sebastian Jung, Lorenzo Baccelliere, Hippolyte Watrelot, André Meixner, Anne Köpken, Mohamed Chetouani, Pascal Weiner, Florian Lay, Felix Hundhausen, Anne E. Reichert, Noémie Jaquier, Florian Schmidt, Marco Sewtz, Freek Stulp, Lioba Suchenwirth, Rudolph Triebel, Xuwei Wu, Begoña C. Arrue, Rebecca Schedl-Warpup, Marco Hutter, Serena Ivaldi, Pedro U. Lima, Stéphane Doncieux, Nikos G. Tsagarakis, Tamim Asfour, Aníbal Ollero, Alin Albu-Schäffer
2024 C conf
SACMAT
Niklas Hemken, Florian Jacob, Fabian Tërnava, Rainer Kartmann, Tamim Asfour, Hannes Hartenstein
2024 J jnl
Frontiers Robotics AI
Leonard Bärmann, Rainer Kartmann, Fabian Peller-Konrad, Jan Niehues, Alex Waibel, Tamim Asfour
2024 conf
Humanoids
Björn S. Plonka, Christian R. G. Dreher, André Meixner, Rainer Kartmann, Tamim Asfour
2024 J jnl
CoRR
Björn S. Plonka, Christian R. G. Dreher, André Meixner, Rainer Kartmann, Tamim Asfour
2023 J jnl
Robotics Auton. Syst.
Fabian Peller-Konrad, Rainer Kartmann, Christian R. G. Dreher, André Meixner, Fabian Reister, Markus Grotz, Tamim Asfour
2023 J jnl
CoRR
Niklas Hemken, Florian Jacob, Fabian Peller-Konrad, Rainer Kartmann, Tamim Asfour, Hannes Hartenstein
2023 J jnl
CoRR
Leonard Bärmann, Rainer Kartmann, Fabian Peller-Konrad, Alex Waibel, Tamim Asfour
2023 J jnl
CoRR
Rainer Kartmann, Tamim Asfour
2023 J jnl
Frontiers Robotics AI
Rainer Kartmann, Tamim Asfour
2023 C conf
SACMAT
Niklas Hemken, Florian Jacob, Fabian Peller-Konrad, Rainer Kartmann, Tamim Asfour, Hannes Hartenstein
2022 C conf
SACMAT
Saskia Bayreuther, Florian Jacob, Markus Grotz, Rainer Kartmann, Fabian Peller-Konrad, Fabian Paus, Hannes Hartenstein, Tamim Asfour
2022 J jnl
CoRR
Fabian Peller-Konrad, Rainer Kartmann, Christian R. G. Dreher, André Meixner, Fabian Reister, Markus Grotz, Tamim Asfour
2021 conf
HUMANOIDS
Rainer Kartmann, Danqing Liu, Tamim Asfour
2020 A conf
IROS
Rainer Kartmann, You Zhou, Danqing Liu, Fabian Paus, Tamim Asfour
2018 J jnl
IEEE Robotics Autom. Lett.
Rainer Kartmann, Fabian Paus, Markus Grotz, Tamim Asfour
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