Manfred Klenner

56 papers A* 1A 3B 8C 3Misc 6Journal 2Unranked 33
YearRankTypeTitle / Venue / Authors
2024 conf
LREC/COLING
Manfred Klenner, Dylan Massey
2023 conf
CLiC-it
Manfred Klenner, Dylan Massey, Susanna Tron
2023 C conf
LDK
Manfred Klenner
2022 B conf
LREC
Manfred Klenner, Anne Göhring
2022 B conf
LREC
Anne Göhring, Manfred Klenner
2022 conf
KONVENS
Manfred Klenner, Anne Göhring
2021 conf
NoDaLiDa
Manfred Klenner, Anne Göhring, Sophia Conrad
2021 conf
TDS
Manfred Klenner, Anne Göhring
2020 conf
SwissText/KONVENS
Manfred Klenner, Anne Göhring, Michael Amsler
2019 conf
KONVENS
Julia Maria Struß, Melanie Siegel, Josef Ruppenhofer, Michael Wiegand, Manfred Klenner
2018 conf
EMSASW@ESWC
Manfred Klenner
2017 conf
IWCS(2)
Manfred Klenner
2017 conf
TSD
Manfred Klenner
2017 conf
LSDSem@EACL
Manfred Klenner, Don Tuggener, Simon Clematide
2017 conf
CICLing (2)
Manfred Klenner, Simon Clematide, Don Tuggener
2016 conf
WASSA@NAACL-HLT
Manfred Klenner
2016 conf
*SEM@ACL
Manfred Klenner, Simon Clematide
2016 B conf
LREC
Manfred Klenner, Michael Amsler
2015 conf
WASSA@EMNLP
Manfred Klenner
2014 conf
KONVENS
Don Tuggener, Manfred Klenner
2014 conf
WASSA@ACL
Manfred Klenner, Michael Amsler, Nora Hollenstein
2014 J jnl
Data Knowl. Eng.
Manfred Klenner, Stefanos Petrakis
2014 conf
SemEval@COLING
Nora Hollenstein, Michael Amsler, Martina Bachmann, Manfred Klenner
2014 conf
KONVENS
Manfred Klenner, Michael Amsler, Nora Hollenstein
2013 Misc conf
RANLP
Simon Clematide, Manfred Klenner
2013 J jnl
Lang. Resour. Evaluation
Michael Wiegand, Manfred Klenner, Dietrich Klakow
2012 B conf
LREC
Simon Clematide, Stefan Gindl, Manfred Klenner, Stefanos Petrakis, Robert Remus, Josef Ruppenhofer, Ulli Waltinger, Michael Wiegand
2012 conf
ICSC
Don Tuggener, Manfred Klenner
2012 C conf
NLDB
Manfred Klenner, Stefanos Petrakis
2012 conf
KONVENS
Samuel Läubli, Mario Schranz, Urs Christen, Manfred Klenner
2011 Misc conf
RANLP
Manfred Klenner, Don Tuggener
2011 conf
CoNLL Shared Task
Manfred Klenner, Don Tuggener
2011 conf
BioNLP@ACL (Shared Task)
Don Tuggener, Manfred Klenner, Gerold Schneider, Simon Clematide, Fabio Rinaldi
2011 conf
SLaTE
Manfred Klenner, Simon Clematide, Michael Amsler
2010 conf
SETN
Vassiliki Rentoumi, Stefanos Petrakis, Vangelis Karkaletsis, Manfred Klenner, George A. Vouros
2010 conf
IceTAL
Manfred Klenner, Don Tuggener, Angela Fahrni, Rico Sennrich
2010 conf
KONVENS
Manfred Klenner, Angela Fahrni, Don Tuggener
2010 conf
TSD
Manfred Klenner, Angela Fahrni, Rico Sennrich
2010 B conf
LREC
Vassiliki Rentoumi, Stefanos Petrakis, Manfred Klenner, George A. Vouros, Vangelis Karkaletsis
2009 B conf
ACII
Manfred Klenner, Stefanos Petrakis, Angela Fahrni
2009 conf
TALN (Demonstrations)
Stefanos Petrakis, Manfred Klenner, Étienne Ailloud, Angela Fahrni
2009 A conf
EACL
Manfred Klenner, Étienne Ailloud
2009 conf
NODALIDA
Manfred Klenner, Angela Fahrni, Stefanos Petrakis
2009 Misc conf
RANLP
Manfred Klenner, Stefanos Petrakis, Angela Fahrni
2009 conf
TALN (Articles longs)
Étienne Ailloud, Manfred Klenner
2007 A* conf
ACL
Manfred Klenner
2006 A conf
EACL
Manfred Klenner
2004 B conf
LREC
Manfred Klenner, Fabio Rinaldi, Michael Hess
1997 Misc conf
EPIA
Udo Hahn, Manfred Klenner
1996 B conf
EKAW
Udo Hahn, Manfred Klenner, Klemens Schnattinger
1995 conf
Learning for Natural Language Processing
Udo Hahn, Manfred Klenner, Klemens Schnattinger
1995 Misc conf
KI
Klemens Schnattinger, Udo Hahn, Manfred Klenner
1995 Misc conf
EPIA
Klemens Schnattinger, Udo Hahn, Manfred Klenner
1994 A conf
ECAI
Manfred Klenner, Udo Hahn
1994 C conf
DEXA
Udo Hahn, Manfred Klenner
1992 conf
KONVENS
Manfred Klenner
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