Rajvikram Madurai Elavarasan

29 papers Journal 29
YearRankTypeTitle / Venue / Authors
2024 J jnl
Syst.
Radhika Somakumar, Padmanathan Kasinathan, Rajvikram Madurai Elavarasan, G. M. Shafiullah
2023 J jnl
J. Ambient Intell. Humaniz. Comput.
M. Premkumar, Pradeep Jangir, Rajvikram Madurai Elavarasan, Ravichandran Sowmya
2022 J jnl
IEEE Access
N. Perumalsamy, G. Sivasankar, Rajvikram Madurai Elavarasan, Sachin Kumar, Baseem Khan
2022 J jnl
IEEE Access
Akshay Kumar, Neetu Kumari, Gauri Shankar, Rajvikram Madurai Elavarasan, Sachin Kumar, Ankit Kumar Srivastava, Baseem Khan
2022 J jnl
IEEE Access
Ankit Kumar Srivastava, Saurabh Mani Tripathi, Sachin Kumar, Rajvikram Madurai Elavarasan, Sivasankar Gangatharan, Dinesh Kumar, Lucian Mihet-Popa
2022 J jnl
RAIRO Oper. Res.
Savari Prabhu, S. Deepa, Rajvikram Madurai Elavarasan, Eklas Hossain
2022 J jnl
IEEE Access
Tummala S. L. V. Ayyarao, N. S. S. Ramakrishna, Rajvikram Madurai Elavarasan, Nishanth Polumahanthi, M. Rambabu, Gaurav Saini, Baseem Khan, Bilal Alatas
2021 J jnl
CoRR
Yasir Ali Farrukh, Irfan Khan, Zeeshan Ahmad, Rajvikram Madurai Elavarasan
2021 J jnl
IEEE Access
Ateeq Ur Rehman, Zahid Wadud, Rajvikram Madurai Elavarasan, Ghulam Hafeez, Imran Khan, Zeeshan Shafiq, Hassan Haes Alhelou
2021 J jnl
IEEE Access
Toqeer Ahmed, Asad Waqar, Rajvikram Madurai Elavarasan, Junaid Imtiaz, Premkumar Manoharan, Umashankar Subramaniam
2021 J jnl
IEEE Access
Tripurari Das Gupta, Kalpana Chaudhary, Rajvikram Madurai Elavarasan, R. K. Saket, Irfan Khan, Eklas Hossain
2021 J jnl
Eng. Appl. Artif. Intell.
M. Premkumar, Pradeep Jangir, Ravichandran Sowmya, Rajvikram Madurai Elavarasan
2021 J jnl
IEEE Access
Md. Ariful Islam, Jai Govind Singh, Israt Jahan, Molla S. Hossain Lipu, Taskin Jamal, Rajvikram Madurai Elavarasan, Lucian Mihet-Popa
2021 J jnl
IEEE Access
Saubhagya Ranjan Biswal, Gauri Shankar, Rajvikram Madurai Elavarasan, Lucian Mihet-Popa
2021 J jnl
IEEE Access
Snigdha Sharma, Lokesh Varshney, Rajvikram Madurai Elavarasan, Akanksha Singh S. Vardhan, Aanchal Singh S. Vardhan, R. K. Saket, Umashankar Subramaniam, Eklas Hossain
2021 J jnl
IEEE Access
G. M. Shafiullah, Tjedza Masola, Remember Samu, Rajvikram Madurai Elavarasan, Sharmina Begum, Umashankar Subramaniam, Mohd Fakhizan Romlie, Mohammad Chowdhury, Mohammad Taufiqul Arif
2021 J jnl
IEEE Access
David Prince Winston, Madhu Shobini Murugan, Rajvikram Madurai Elavarasan, Rishi Pugazhendhi, O. Jeba Singh, Pravin Murugesan, M. Gurudhachanamoorthy, Eklas Hossain
2020 J jnl
IEEE Access
Rajvikram Madurai Elavarasan, G. M. Shafiullah, Sanjeevikumar Padmanaban, Nallapaneni Manoj Kumar, Annapurna Annam, Ajayragavan Manavalanagar Vetrichelvan, Lucian Mihet-Popa, Jens Bo Holm-Nielsen
2020 J jnl
IEEE Access
Sivasankar Gangatharan, Mageswaran Rengasamy, Rajvikram Madurai Elavarasan, Narottam Das, Eklas Hossain, Varatharajan Meenakshi Sundaram
2020 J jnl
IEEE Access
Asad Waqar, Umashankar Subramaniam, Kiran Farzana, Rajvikram Madurai Elavarasan, Habib Ur Rahman Habib, Muhammad Zahid, Eklas Hossain
2020 J jnl
IEEE Access
Rajaa Vikhram Yohanandhan, Rajvikram Madurai Elavarasan, Premkumar Manoharan, Lucian Mihet-Popa
2020 J jnl
IEEE Access
Raja Ram Kumar, Priyanka Devi, Chandan Chetri, Aanchal Singh S. Vardhan, Rajvikram Madurai Elavarasan, Lucian Mihet-Popa, R. K. Saket
2020 J jnl
IEEE Access
Kannadasan Raju, Valsalal Prasad, Rajvikram Madurai Elavarasan, Umashankar Subramaniam, Dhafer J. Almakhles
2020 J jnl
IEEE Access
S. M. Ferdous, G. M. Shafiullah, Farhad Shahnia, Rajvikram Madurai Elavarasan, Umashankar Subramaniam
2020 J jnl
IEEE Access
Karthikeyan Velmurugan, Vaithinathan Karthikeyan, Tulja Bhavani Korukonda, K. Madhan, Kanchanok Emsaeng, Sukruedee Sukchai, Chatchai Sirisamphanwong, Tanakorn Wongwuttanasatian, Rajvikram Madurai Elavarasan, Hassan Haes Alhelou, Umashankar Subramaniam
2020 J jnl
IEEE Access
Sharat Chandra Mahto, Rajvikram Madurai Elavarasan, Sandip Ghosh, R. K. Saket, Eklas Hossain, Shyam Krishna Nagar
2020 J jnl
IEEE Access
Swaminathan Ganesan, Umashankar Subramaniam, Ajit A. Ghodke, Rajvikram Madurai Elavarasan, Kannadasan Raju, Mahajan Sagar Bhaskar
2020 J jnl
IEEE Access
Raja Ram Kumar, Santosh Kumar Singh, Rakesh Kumar Srivastava, Akanksha Singh S. Vardhan, Rajvikram Madurai Elavarasan, R. K. Saket, Eklas Hossain
2020 J jnl
IEEE Access
Kumari Sarita, Sachin Kumar, Aanchal Singh S. Vardhan, Rajvikram Madurai Elavarasan, R. K. Saket, G. M. Shafiullah, Eklas Hossain
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