M. Reza Soleymani

95 papers B 19C 1Misc 1Journal 31Unranked 43
YearRankTypeTitle / Venue / Authors
2025 conf
ICC
Razieh Abdolahi, M. Reza Soleymani, Walaa Hamouda
2024 Misc conf
QCE
Razieh Abdolahi, M. Reza Soleymani, Walaa Hamouda
2024 conf
VTC Fall
Zahra Taheri, M. Reza Soleymani
2023 B conf
ISIT
Akram Saleh, M. Reza Soleymani
2023 J jnl
Telecommun. Syst.
Yousef Ali Abohamra, M. Reza Soleymani, Yousef R. Shayan, Jalal Abdulsayed Srar
2023 conf
WiSEE
Sareh Majidi Ivari, M. Reza Soleymani, Yousef R. Shayan
2022 conf
Q2SWinet
Ishfaq Bashir Sofi, Rodolfo W. L. Coutinho, M. Reza Soleymani
2021 J jnl
IEEE Access
Behnaz Merikhi, M. Reza Soleymani
2021 J jnl
Phys. Commun.
Maryam Miriestahbanati, O. Saatlou, M. Reza Soleymani
2021 conf
ICC Workshops
Sareh Majidi Ivari, Màrius Caus, Miguel Ángel Vázquez, M. Reza Soleymani, Yousef R. Shayan, Ana I. Pérez-Neira
2020 conf
ICC
Sareh Majidi Ivari, Màrius Caus, Miguel Ángel Vázquez, M. Reza Soleymani, Yousef R. Shayan, Ana I. Pérez-Neira
2019 conf
ICC
Maryam Miriestahbanati, M. Reza Soleymani
2019 J jnl
IEEE Access
Yousef Ali Abohamra, M. Reza Soleymani, Yousef R. Shayan
2018 conf
Q2SWinet@MSWiM
Mohamed Sakr, M. Reza Soleymani
2018 J jnl
SIGMETRICS Perform. Evaluation Rev.
Joan Bas, Màrius Caus, Ana Pérez, M. Reza Soleymani, Nazli Ahmad Khan Beigi
2017 conf
VTC Spring
Boulos Wadih Khoueiry, M. Reza Soleymani
2015 conf
CCNC
Boulos Wadih Khoueiry, M. Reza Soleymani
2015 conf
ICUWB
Boulos Wadih Khoueiry, M. Reza Soleymani
2014 conf
VTC Fall
Boulos Wadih Khoueiry, M. Reza Soleymani
2014 J jnl
IET Commun.
Ming Lei, M. Reza Soleymani
2013 J jnl
IEEE Trans. Broadcast.
Mohammad Jabbari Hagh, M. Reza Soleymani
2012 conf
Sarnoff Symposium
Farnaz Shayegh, M. Reza Soleymani
2012 J jnl
Trans. Emerg. Telecommun. Technol.
Farnaz Shayegh, M. Reza Soleymani
2012 conf
CCECE
Ding Wang, M. Reza Soleymani
2012 C conf
ICCE
Boulos Wadih Khoueiry, M. Reza Soleymani
2011 J jnl
IEEE Trans. Commun.
Farnaz Shayegh, M. Reza Soleymani
2011 J jnl
IET Commun.
Farnaz Shayegh, M. Reza Soleymani
2011 conf
CCECE
Mohammad Jabbari Hagh, M. Reza Soleymani
2011 B conf
GLOBECOM
Mohammad Jabbari Hagh, M. Reza Soleymani
2011 conf
ICC
Mohammad Jabbari Hagh, M. Reza Soleymani
2010 J jnl
IEEE Commun. Lett.
Pouriya Sadeghi, M. Reza Soleymani
2010 J jnl
IEEE Trans. Wirel. Commun.
Patrick Tooher, M. Reza Soleymani
2010 J jnl
IEEE Trans. Signal Process.
Zohreh Motamedi, M. Reza Soleymani
2009 conf
ICC
Farnaz Shayegh, M. Reza Soleymani
2009 J jnl
Wirel. Pers. Commun.
Jianmin Gong, M. Reza Soleymani, Jeremiah F. Hayes
2009 J jnl
Wirel. Commun. Mob. Comput.
Hamid Behroozi, M. Reza Soleymani
2009 J jnl
IEEE Trans. Commun.
Hamid Behroozi, M. Reza Soleymani
2009 J jnl
IEEE Trans. Wirel. Commun.
Hamid Behroozi, M. Reza Soleymani
2009 conf
ICC
Patrick Tooher, M. Reza Soleymani
2009 J jnl
Wirel. Pers. Commun.
Hamid Behroozi, M. Reza Soleymani
2009 J jnl
IEEE Trans. Wirel. Commun.
Xiangming Li, Hsiao-Hwa Chen, Yi Qian, Bo Rong, M. Reza Soleymani
2008 J jnl
IEEE Trans. Broadcast.
Bo Rong, Tao Jiang, Xiangming Li, M. Reza Soleymani
2008 conf
VTC Fall
Hamid Behroozi, M. Reza Soleymani
2008 B conf
PIMRC
Patrick Tooher, M. Reza Soleymani
2008 conf
ICC
Farnaz Shayegh, M. Reza Soleymani
2007 conf
VTC Fall
Feng Liu, M. Reza Soleymani
2007 conf
ICC
Mohsen Ghotbi, Reza Sayyahi, M. Reza Soleymani
2007 conf
ICC
Patrick Tooher, Hesam Khoshneviss, M. Reza Soleymani
2007 J jnl
IEEE Trans. Wirel. Commun.
Hamid Behroozi, M. Reza Soleymani
2007 B conf
GLOBECOM
Zohreh Motamedi, M. Reza Soleymani
2007 J jnl
IEEE Trans. Signal Process.
Javad Haghighat, Walaa Hamouda, M. Reza Soleymani
2007 conf
ISSPA
Javad Haghighat, M. Reza Soleymani, Walaa Hamouda
2007 J jnl
IEEE Trans. Wirel. Commun.
Mohammad Torabi, Sonia Aïssa, M. Reza Soleymani
2007 conf
ICC
Zohreh Motamedi, M. Reza Soleymani
2007 conf
ICC
Hamid Behroozi, M. Reza Soleymani
2006 B conf
GLOBECOM
Pouriya Sadeghi, M. Reza Soleymani
2006 conf
VTC Fall
Merwise Khalwati, M. Reza Soleymani
2006 conf
VTC Fall
Pouriya Sadeghi, M. Reza Soleymani
2006 J jnl
IEEE Commun. Lett.
Javad Haghighat, M. Reza Soleymani, Walaa Hamouda
2006 conf
VTC Fall
Hamid Behroozi, M. Reza Soleymani
2006 conf
CCECE
Jianmin Gong, M. Reza Soleymani, Jeremiah F. Hayes
2006 conf
CCECE
Merwise Khalwati, M. Reza Soleymani
2006 conf
SiPS
Javad Haghighat, Walaa Hamouda, M. Reza Soleymani
2006 B conf
ISIT
Javad Haghighat, Walaa Hamouda, M. Reza Soleymani
2006 conf
ICC
Mohammad Torabi, Sonia Aïssa, M. Reza Soleymani
2006 B conf
GLOBECOM
Zohreh Motamedi, M. Reza Soleymani
2006 conf
ICASSP (4)
Hamid Behroozi, M. Reza Soleymani
2006 conf
VTC Fall
Javad Haghighat, Walaa Hamouda, M. Reza Soleymani
2006 B conf
DCC
Hamid Behroozi, M. Reza Soleymani
2006 conf
ICC
Pouriya Sadeghi, M. Reza Soleymani
2006 conf
VTC Fall
Hamid Behroozi, M. Reza Soleymani
2006 B conf
ISIT
Hamid Behroozi, M. Reza Soleymani
2006 B conf
GLOBECOM
Hamid Behroozi, M. Reza Soleymani
2005 J jnl
EURASIP J. Adv. Signal Process.
Afshin Haghighat, M. Reza Soleymani
2005 B conf
GLOBECOM
Javad Haghighat, M. Reza Soleymani, Walaa Hamouda
2005 J jnl
IEEE Commun. Lett.
Nong Le, M. Reza Soleymani, Yousef R. Shayan
2005 B conf
MASS
Hamid Behroozi, M. Reza Soleymani
2005 B conf
GLOBECOM
Hamid Behroozi, M. Reza Soleymani
2005 conf
PE-WASUN
Zohreh Motamedi, M. Reza Soleymani
2004 conf
ICASSP (4)
Mohsen Ghotbi, M. Reza Soleymani
2004 J jnl
IEEE J. Sel. Areas Commun.
Mohsen Ghotbi, M. Reza Soleymani
2004 B conf
GLOBECOM
Mohsen Ghotbi, M. Reza Soleymani
2003 B conf
GLOBECOM
Afshin Haghighat, M. Reza Soleymani
2003 B conf
WCNC
Afshin Haghighat, M. Reza Soleymani
2003 conf
ICASSP (4)
Mohammad Torabi, M. Reza Soleymani
2003 B conf
WCNC
Mohammad Torabi, M. Reza Soleymani
2003 conf
ICC
Pouriya Sadeghi, M. Reza Soleymani
2002 B conf
GLOBECOM
Mohsen Ghotbi, M. Reza Soleymani
2001 conf
ITCC
Usa Vilaipornsawai, M. Reza Soleymani
2000 J jnl
IEEE Trans. Image Process.
Manijeh Khataie, M. Reza Soleymani
2000 B conf
ICIP
Manijeh Khataie, M. Reza Soleymani, M. Omair Ahmad
1999 J jnl
IEEE Trans. Commun.
Carl R. Nassar, M. Reza Soleymani
1995 conf
Information Theory and Applications
Carl R. Nassar, M. Reza Soleymani
1993 J jnl
IEEE Trans. Speech Audio Process.
Carl R. Nassar, M. Reza Soleymani
1987 J jnl
IEEE Trans. Commun.
M. Reza Soleymani, Salvatore D. Morgera
README.md
← Index README.md markdown
# redb
RationalEdge Samples DB

A malware analysis framework that extracts features from binary files (PE, ELF, Mach-O, APK) and stores them in ClickHouse for analysis.

## Quick Start

```bash
# Setup
source venv/bin/activate
pip install -r requirements.txt

# Process local files
python start.py --path /path/to/samples --repo test --index_prefix redb
```

## Usage Modes

### Local Mode
Process files from local filesystem:

```bash
# Single file or directory
python start.py --path /path/to/binary --repo test --index_prefix redb

# From a text file with paths (one per line)
python start.py --path /path/to/filelist.txt --repo test --index_prefix redb
```

### S3 Mode
Process samples from S3 storage based on catalog queries:

```bash
# By repository
python start.py --s3 --repo bazaar --index_prefix redb

# By repository with notes filter
python start.py --s3 --repo vx-itw --s3-notes "ITW.0138" --index_prefix redb

# By filetype (magika) - all ELF samples across all repos
python start.py --s3 --magika elf --index_prefix redb

# By filetype with repository filter
python start.py --s3 --repo bazaar --magika elf --index_prefix redb
```

### Date-Based Mode
Process samples by first_seen date from catalog:

```bash
# Single date (all samples first seen on Jan 15, 2025)
python start.py --date 2025-01-15 --index_prefix redb

# Date with repository filter
python start.py --date 2025-01-15 --repo bazaar --index_prefix redb

# Date range (inclusive)
python start.py --range 2025-01-01 2025-01-31 --index_prefix redb

# Date range with repository and notes filters
python start.py --range 2025-01-01 2025-01-31 --repo malshare --s3-notes "batch1" --index_prefix redb

# Date range with filetype filter
python start.py --range 2025-01-01 2025-01-31 --magika pebin --index_prefix redb
```

### S3-Solo Mode
Process a single sample by S3 key:

```bash
python start.py --s3-solo "09/f7/09f7d02a...hash.zip" --index_prefix redb
```

## Analysis Options

### Feature Extraction (default)
Runs all extractors to extract features from binaries:

```bash
python start.py --s3 --repo bazaar --index_prefix redb
```

### Specific Modules
Run only specific extractors:

```bash
python start.py --path /path/to/binary --repo test --index_prefix redb \
    --modules "BasicPropertiesExtractor,PEFeaturesExtractor,HashExtractor"
```

Available modules:
- **General**: `BasicPropertiesExtractor`, `HashExtractor`, `DIEExtractor`, `CAPAExtractor`
- **PE**: `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`, `MachOSimilarityHashExtractor`
- **APK**: `APKFeaturesExtractor`, `APKManifestExtractor`, `APKPermissionsExtractor`, `APKSignatureExtractor`, `APKDexExtractor`, `APKResourceExtractor`, `APKNativeLibExtractor`, `APKInconsistencyTestsExtractor`
- **JavaScript**: `JSFeaturesExtractor`, `JSSuspiciousAPIsExtractor`, `JSStringsExtractor`, `JSDeobfuscationExtractor`, `JSContentExtractor`

**Note:** Using `--modules` with specific extractors respects the normal deduplication check. Add `--force` to reprocess samples already in the database.

### Analyzed Samples Mode
Process samples that are already in the database (from `basic_properties`). Useful for decompiling or re-running specific modules on previously analyzed samples:

```bash
# Decompile all already-analyzed samples that haven't been disassembled yet
python start.py --analyzed --index_prefix redb --decompile

# Decompile only ELF samples that were already analyzed
python start.py --analyzed --magika elf --index_prefix redb --decompile

# Re-run a specific extractor on already-analyzed samples
python start.py --analyzed --index_prefix redb --modules "MachOFeaturesExtractor"

# Force decompile ALL analyzed samples (even already-disassembled ones)
python start.py --analyzed --index_prefix redb --decompile --force

# Re-run a specific decompiler module on only already-disassembled samples
python start.py --analyzed --index_prefix redb --decompile --rerun --decompile-modules cfg
```

When combined with `--decompile`, the `--analyzed` flag has three behaviors:

| Flags | Source | Description |
|-------|--------|-------------|
| `--analyzed --decompile` | `basic_properties` minus `disassembled` | New samples only (first-time decompilation) |
| `--analyzed --decompile --force` | All of `basic_properties` | Re-run everything from scratch (e.g., new binja version) |
| `--analyzed --decompile --rerun` | Only `disassembled` table | Re-run on already-disassembled samples only (e.g., updated CFG module) |

The `--rerun` flag is particularly useful with `--decompile-modules` to selectively re-run a single module without reprocessing the full pipeline.

### Force Reprocessing
By default, samples already in the database are skipped. Use `--force` to reprocess them:

```bash
# Force full reprocessing of all samples
python start.py --s3 --repo bazaar --index_prefix redb --force

# Re-run a specific extractor on already-processed samples
python start.py --s3 --repo bazaar --index_prefix redb --modules "MachOFeaturesExtractor" --force

# Force YARA rescan (e.g., after updating rules)
python start.py --s3 --magika elf --index_prefix redb --yara --force
```

`--force` works across all modes: feature extraction, decompilation, and YARA scanning. ReplacingMergeTree handles deduplication, so reprocessed data cleanly replaces existing rows.

### Decompilation Mode
Run Binary Ninja decompilation only:

```bash
python start.py --s3 --repo bazaar --index_prefix redb --decompile
```

#### Selective Decompiler Modules
Run only specific decompiler sub-modules instead of the full pipeline:

```bash
# Run only strings extraction (fastest - skips per-function analysis)
python start.py --s3 --repo bazaar --index_prefix redb --decompile --decompile-modules strings

# Run disassembly and CFG analysis only
python start.py --s3 --repo bazaar --index_prefix redb --decompile --decompile-modules disassembly,cfg

# Run multiple modules
python start.py --s3 --repo bazaar --index_prefix redb --decompile --decompile-modules decompilation,disassembly,llil
```

Available decompiler modules:
- **decompilation** — High-level IL (HLIL) decompiled output → `code_binja_decompiled_functions_*` tables
- **disassembly** — Low-level assembly representation → `code_binja_disassembled_functions_*` tables
- **cfg** — Control flow graph analysis → `code_binja_cfg_functions` table
- **llil** — Low-level intermediate language → `code_binja_llil_functions_*` tables
- **strings** — Binary string extraction → `code_binja_strings_raw` table

**IOC extraction** runs automatically when `decompilation` or `strings` is selected (it consumes their in-memory results). It is skipped for modules like `cfg` or `disassembly` that don't produce IOC-relevant data.

Default is `all` (runs every module). Requires `-d/--decompile` flag.

### YARA Scanning
Run YARA rules against samples:

```bash
# YARA scanning only (skips already-scanned samples by default)
python start.py --s3 --magika elf --index_prefix redb --yara

# Force rescan all samples (e.g., after updating YARA rules)
python start.py --s3 --magika elf --index_prefix redb --yara --force

# Feature extraction + YARA scanning combined
python start.py --s3 --repo bazaar --index_prefix redb --with-yara
```

By default, `--yara` skips samples that already have matches in the `yara_matches` table. Use `--force` to rescan everything (e.g., after updating YARA rules).

### Dry Run Mode
Print results instead of uploading to database:

```bash
python start.py --path /path/to/binary --repo test --index_prefix redb --dry-run
```

## Environment Variables

See `.env.example` for all configuration options:

| Variable | Description |
|----------|-------------|
| `CLICKHOUSE_HOST` | ClickHouse server host |
| `CLICKHOUSE_PORT` | ClickHouse server port (default: 8123) |
| `CLICKHOUSE_USER` | ClickHouse username |
| `CLICKHOUSE_PASSWORD` | ClickHouse password |
| `S3_ENDPOINT` | S3/MinIO endpoint |
| `S3_ACCESS_KEY` | S3 access key |
| `S3_SECRET_KEY` | S3 secret key |
| `S3_BUCKET` | S3 bucket name |
| `INDEX_PREFIX` | Table prefix for ClickHouse (default: redb) |
| `SUPPORTED_FORMATS` | File formats to query (default: `['pebin']`) |
| `BATCH_SIZE` | Files per batch (default: 1000) |
| `REDB_TIMEOUT` | Worker timeout in seconds (default: 600) |
| `DECOMPILE_WORKER_TIMEOUT` | Decompile timeout (default: 2700) |

## Filtering Options Summary

| Option | Description | Standalone | With --repo | With --date/--range |
|--------|-------------|------------|-------------|---------------------|
| `--repo` | Filter by repository | Required for --s3 (unless --magika) | - | Optional |
| `--s3-notes` | Filter by notes field | No | Yes | Yes |
| `--magika` | Filter by filetype | Yes (queries all repos) | Yes | Yes |
| `--date` | Filter by single date | Yes | Yes | - |
| `--range` | Filter by date range | Yes | Yes | - |
| `--analyzed` | Process already-analyzed samples | Yes | N/A | N/A |