Han Bao

65 papers Journal 65
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans. Ind. Informatics
Yinxing Zhang, Zhongyun Hua, Han Bao, Hejiao Huang
2026 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Quan Xu, Chenyu Zhang, Huagan Wu, Mo Chen, Han Bao, Herbert Ho-Ching Iu, Ning Wang
2026 J jnl
Neural Networks
Han Bao, Ruimin Wang, Ning Wang, Mo Chen, Bocheng Bao
2026 J jnl
IEEE Internet Things J.
Xinyu Bao, Mengkai Cui, Quan Xu, Han Bao, Herbert Ho-Ching Iu, Ning Wang
2025 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Ning Wang, Mengkai Cui, Muhammad Marwan, Yan Yang, Han Bao, Herbert Ho-Ching Iu, Quan Xu
2025 J jnl
Int. J. Bifurc. Chaos
Zhuowu Wang, Han Bao, Xianming Wu, Mo Chen, Bocheng Bao
2025 J jnl
IEEE Internet Things J.
Han Bao, Ruimin Wang, Haigang Tang, Mo Chen, Bocheng Bao
2025 J jnl
IEEE Internet Things J.
Han Bao, Jiahua Fan, Zhongyun Hua, Quan Xu, Bocheng Bao
2025 J jnl
IEEE Trans. Ind. Informatics
Han Bao, Minqi Xi, Haigang Tang, Xi Zhang, Quan Xu, Bocheng Bao
2025 J jnl
IEEE Trans. Ind. Electron.
Bocheng Bao, Haigang Tang, Han Bao, Zhongyun Hua, Quan Xu, Mo Chen
2025 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Chengjie Chen, Han Bao, Yunzhen Zhang, Yang Yu, Shuang Zhao, Yan Yang, Lianyu Chen
2025 J jnl
IEEE Trans. Ind. Electron.
Han Bao, Yuanhui Su, Zhongyun Hua, Mo Chen, Bocheng Bao
2025 J jnl
IEEE Trans. Ind. Informatics
Zhongyun Hua, Jinhui Yao, Yinxing Zhang, Han Bao, Shuang Yi
2025 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Zhongyun Hua, Zihua Wu, Yinxing Zhang, Han Bao, Yicong Zhou
2025 J jnl
Expert Syst. Appl.
Han Bao, Zheng Fan, Zhongyun Hua, Yunzhen Zhang, Quan Xu, Bocheng Bao
2024 J jnl
IEEE Trans. Ind. Informatics
Han Bao, Yuanhui Su, Zhongyun Hua, Quan Xu, Mo Chen, Bocheng Bao
2024 J jnl
Neural Networks
Xihong Yu, Han Bao, Quan Xu, Mo Chen, Bocheng Bao
2024 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Han Bao, Yuanhui Su, Zhongyun Hua, Mo Chen, Quan Xu, Bocheng Bao
2024 J jnl
IEEE Trans. Ind. Informatics
Han Bao, Zhuowu Wang, Zhongyun Hua, Xihong Yu, Quan Xu, Bocheng Bao
2024 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Bei Chen, Fazhan Liu, Herbert Ho-Ching Iu, Han Bao, Quan Xu
2024 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Chengjie Chen, Fuhong Min, Jianming Cai, Han Bao
2024 J jnl
Integr.
Han Bao, Ruoyu Ding, Xiaofeng Liu, Quan Xu
2024 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Yinxing Zhang, Zhongyun Hua, Han Bao, Hejiao Huang
2024 J jnl
IEEE Trans. Ind. Electron.
Han Bao, Zhuguan Chen, Jun Ma, Quan Xu, Bocheng Bao
2024 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Bocheng Bao, Haigang Tang, Yuanhui Su, Han Bao, Mo Chen, Quan Xu
2023 J jnl
J. Circuits Syst. Comput.
Quan Xu, Shoukui Ding, Han Bao, Bei Chen, Bocheng Bao
2023 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Yang Gu, Han Bao, Quan Xu, Xi Zhang, Bocheng Bao
2023 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Yinxing Zhang, Zhongyun Hua, Han Bao, Hejiao Huang, Yicong Zhou
2023 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Quan Xu, Yiteng Wang, Herbert Ho-Ching Iu, Ning Wang, Han Bao
2023 J jnl
IEEE Trans. Ind. Electron.
Han Bao, Mengjie Hua, Jun Ma, Mo Chen, Bocheng Bao
2023 J jnl
IEEE Trans. Ind. Informatics
Han Bao, Houzhen Li, Zhongyun Hua, Quan Xu, Bocheng Bao
2023 J jnl
IEEE Trans. Ind. Electron.
Yinxing Zhang, Han Bao, Zhongyun Hua, Hejiao Huang
2022 J jnl
IEEE Trans. Ind. Informatics
Yinxing Zhang, Zhongyun Hua, Han Bao, Hejiao Huang, Yicong Zhou
2022 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Jianming Cai, Han Bao, Mo Chen, Quan Xu, Bocheng Bao
2022 J jnl
IEEE Trans. Ind. Informatics
Kexin Li, Han Bao, Houzhen Li, Jun Ma, Zhongyun Hua, Bocheng Bao
2022 J jnl
IEEE Trans. Ind. Informatics
Han Bao, Zhongyun Hua, Houzhen Li, Mo Chen, Bocheng Bao
2022 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Quan Xu, Shoukui Ding, Han Bao, Mo Chen, Bocheng Bao
2022 J jnl
IEEE Trans. Syst. Man Cybern. Syst.
Zhongyun Hua, Yongyong Chen, Han Bao, Yicong Zhou
2022 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Zhongyun Hua, Yinxing Zhang, Han Bao, Hejiao Huang, Yicong Zhou
2021 J jnl
IEEE Trans. Circuits Syst. II Express Briefs
Han Bao, Chengjie Chen, Yihua Hu, Mo Chen, Bocheng Bao
2021 J jnl
Int. J. Bifurc. Chaos
Liping Hou, Han Bao, Quan Xu, Mo Chen, Bocheng Bao
2021 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Han Bao, Zhongyun Hua, Houzhen Li, Mo Chen, Bocheng Bao
2021 J jnl
Commun. Nonlinear Sci. Numer. Simul.
Ning Wang, Guoshan Zhang, Nikolay V. Kuznetsov, Han Bao
2021 J jnl
IEEE Trans. Ind. Informatics
Han Bao, Zhongyun Hua, Ning Wang, Lei Zhu, Mo Chen, Bocheng Bao
2021 J jnl
IEEE Trans. Ind. Electron.
Houzhen Li, Zhongyun Hua, Han Bao, Lei Zhu, Mo Chen, Bocheng Bao
2020 J jnl
IEEE Trans. Circuits Syst.
Ning Wang, Guoshan Zhang, Han Bao
2020 J jnl
IEEE Access
Houzhen Li, Han Bao, Lei Zhu, Bocheng Bao, Mo Chen
2020 J jnl
IEEE Trans. Ind. Electron.
Mo Chen, Mengxia Sun, Han Bao, Yihua Hu, Bocheng Bao
2020 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Han Bao, Aihuang Hu, Wenbo Liu, Bocheng Bao
2020 J jnl
Int. J. Bifurc. Chaos
Han Bao, Wenbo Liu, Jun Ma, Huagan Wu
2020 J jnl
Int. J. Bifurc. Chaos
Han Bao, Dong Zhu, Wenbo Liu, Quan Xu, Mo Chen, Bocheng Bao
2020 J jnl
Complex.
Quan Xu, Xiao Tan, Yunzhen Zhang, Han Bao, Yihua Hu, Bocheng Bao, Mo Chen
2019 J jnl
Int. J. Bifurc. Chaos
Bocheng Bao, Jiaoyan Luo, Han Bao, Chengjie Chen, Huagan Wu, Quan Xu
2019 J jnl
Complex.
Huagan Wu, Han Bao, Quan Xu, Mo Chen
2019 J jnl
Int. J. Bifurc. Chaos
Han Bao, Aihuang Hu, Wenbo Liu
2019 J jnl
Int. J. Bifurc. Chaos
Bocheng Bao, Qinfeng Yang, Lei Zhu, Han Bao, Quan Xu, Yajuan Yu, Mo Chen
2019 J jnl
Complex.
Yajuan Yu, Han Bao, Min Shi, Bocheng Bao, YangQuan Chen, Mo Chen
2019 J jnl
Int. J. Bifurc. Chaos
Bocheng Bao, Chengjie Chen, Han Bao, Xi Zhang, Quan Xu, Mo Chen
2019 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Ning Wang, Chengqing Li, Han Bao, Mo Chen, Bocheng Bao
2019 J jnl
Complex.
Mo Chen, Yang Feng, Han Bao, Bocheng Bao, Huagan Wu, Quan Xu
2018 J jnl
IEEE Access
Xi Zhang, Bocheng Bao, Han Bao, Zhimin Wu, Yihua Hu
2018 J jnl
Int. J. Bifurc. Chaos
Mo Chen, Bocheng Bao, Tao Jiang, Han Bao, Quan Xu, Huagan Wu, Jiang Wang
2018 J jnl
Commun. Nonlinear Sci. Numer. Simul.
Han Bao, Ning Wang, Bocheng Bao, Mo Chen, Peipei Jin, Guangyi Wang
2018 J jnl
Complex.
Han Bao, Tao Jiang, Kaibin Chu, Mo Chen, Quan Xu, Bocheng Bao
2018 J jnl
Complex.
Bocheng Bao, Aihuang Hu, Han Bao, Quan Xu, Mo Chen, Huagan Wu
Docker-README.md
← Index Docker-README.md markdown
# REDB Docker Setup

This document describes the Docker containerization for the REDB malware analysis framework.

## Overview

REDB has been containerized as a single unified image that supports both feature extraction and decompilation analysis. The container is stateless, processes files from S3 or local mounts, and exports results to ClickHouse database or via API callbacks.

## Architecture

- **Single Unified Container**: One image handles both feature extraction and decompilation
- **Runtime Tool Installation**: Tools (CAPA, DIE, Binary Ninja) installed at runtime from host snapshots
- **Stateless Processing**: No persistent storage required between runs
- **Multiple Invocation Modes**: Supports `--nomad-job`, `--s3`, `--s3-solo`, and `--path` modes
- **External Dependencies**: Connects to external ClickHouse and S3 services

## Files Structure

```
├── Dockerfile                 # Single unified container definition
├── docker-build.sh            # Build script with Docker Desktop bug workaround
├── docker-push.sh             # Push script to registry
├── test-docker.sh             # Container testing script
├── test-nomad.sh              # Nomad job mode testing
├── .dockerignore              # Build context exclusions
└── scripts/
    └── setup-and-run.sh       # Runtime tool setup entrypoint
```

## Tool Installation Strategy

The container uses a **runtime installation** approach:

1. **Base Image**: Contains Python dependencies and REDB code
2. **Runtime Setup**: `scripts/setup-and-run.sh` configures tools at container start
3. **Host Snapshots**: Binary Ninja installed from `/opt/binaryninja` if available
4. **System Tools**: CAPA and DIE expected at `/usr/bin/capa` and `/usr/bin/nfdc`

## Build and Run

### 1. Build Container

```bash
# Build unified image
./docker-build.sh

# Manual build
docker build --platform linux/amd64 -f Dockerfile -t redb:latest .
```

### 2. Run Modes

#### Nomad Job Mode (Primary)
```bash
# Feature extraction
docker run --rm \
  -e JOB_ID="analysis_001" \
  -e S3_KEY="samples/malware.exe" \
  -e S3_BUCKET="malware-bucket" \
  -e WORKER_TYPE="feature_extraction" \
  -e CALLBACK_URL="https://api.example.com/callbacks" \
  -e ANALYSIS_MODULES="BasicPropertiesExtractor,PEFeaturesExtractor" \
  -e CLICKHOUSE_HOST="clickhouse.example.com" \
  -e S3_ENDPOINT="s3.example.com" \
  -e S3_ACCESS_KEY="your-key" \
  -e S3_SECRET_KEY="your-secret" \
  redb:latest python3 start.py --nomad-job

# Decompilation (same container, different flags)
docker run --rm \
  -e JOB_ID="analysis_002" \
  -e S3_KEY="samples/malware.exe" \
  -e S3_BUCKET="malware-bucket" \
  -e WORKER_TYPE="decompilation" \
  -e CALLBACK_URL="https://api.example.com/callbacks" \
  -e ANALYSIS_MODULES="all" \
  -v /opt/binaryninja:/opt/binaryninja:ro \
  redb:latest python3 start.py --nomad-job --decompile
```

#### S3 Solo Mode
```bash
# Process single sample by S3 key (standard sharded path)
docker run --rm \
  -e S3_BUCKET="samples-bucket" \
  -e CLICKHOUSE_HOST="clickhouse.example.com" \
  -e S3_ENDPOINT="s3.example.com" \
  -e INDEX_PREFIX="redb" \
  -e REPO="test-analysis" \
  redb:latest python3 start.py --s3-solo "09/f7/09f7d02a3c2382199458c98a62b045145ee54ab6aba86166aecf3d10c3c1444c.zip"

# Process private sample (with prepath)
docker run --rm \
  -e S3_BUCKET="samples-bucket" \
  -e CLICKHOUSE_HOST="clickhouse.example.com" \
  -e S3_ENDPOINT="s3.example.com" \
  -e INDEX_PREFIX="redb" \
  -e REPO="test-analysis" \
  redb:latest python3 start.py --s3-solo "private/ab/cd/abcd1234567890abcdef1234567890abcdef1234567890abcdef123456.zip"
```

#### Local Files Mode
```bash
# Mount local samples
docker run --rm \
  -v /path/to/samples:/samples:ro \
  -v ./logs:/app/logs \
  -e CLICKHOUSE_HOST="clickhouse.example.com" \
  redb:latest python3 start.py --path /samples --repo local_test --index_prefix redb
```

## Environment Variables

### Required for Nomad Job Mode
- `JOB_ID` - Unique job identifier
- `S3_KEY` - S3 object key for sample
- `S3_BUCKET` - S3 bucket name
- `WORKER_TYPE` - "feature_extraction" or "decompilation"
- `CALLBACK_URL` - API endpoint for results
- `ANALYSIS_MODULES` - Comma-separated extractor list or "all"

### Database Configuration
- `CLICKHOUSE_HOST` - ClickHouse server hostname
- `CLICKHOUSE_PORT` - Port (default: 8123)
- `CLICKHOUSE_USER` - Database user (default: default)
- `CLICKHOUSE_PASSWORD` - Database password
- `CLICKHOUSE_DATABASE` - Database name (default: default)

### S3 Configuration
- `S3_ENDPOINT` - S3 endpoint URL
- `S3_ACCESS_KEY` - S3 access key
- `S3_SECRET_KEY` - S3 secret key
- `S3_SECURE` - "true" or "false" for HTTPS

### Processing Configuration
- `INDEX_PREFIX` - Database table prefix (default: redb)
- `REPO` - Repository identifier for this analysis batch
- `BATCH_SIZE` - Processing batch size (default: 10)
- `REDB_TIMEOUT` - Analysis timeout in seconds (default: 300)

### Tool Timeouts
- `CAPA_TIMEOUT` - CAPA analysis timeout (default: 300)
- `DIE_TIMEOUT` - DIE analysis timeout (default: 180)
- `BINJA_TIMEOUT` - Binary Ninja timeout (default: 1200)
- `DECOMPILE_EXTRACTOR_TIMEOUT` - Decompilation timeout (default: 2580)

## Binary Ninja Setup

For decompilation capabilities, mount Binary Ninja from host:

```bash
# Mount Binary Ninja installation
-v /opt/binaryninja:/opt/binaryninja:ro

# Mount license file
-v /path/to/license.dat:/home/analyzer/.binaryninja/license.dat:ro
```

The container will automatically detect and configure Binary Ninja at runtime.

## Registry Deployment

### Push to Registry
```bash
# Tag and push
./docker-push.sh

# Or manually
docker tag redb:latest your-registry/redb:latest
docker push your-registry/redb:latest
```

### Pull and Run
```bash
docker pull your-registry/redb:latest
docker run your-registry/redb:latest python3 start.py --nomad-job
```

## Testing

### Container Functionality Test
```bash
# Test with S3 key (standard sharded path)
./test-docker.sh "09/f7/09f7d02a3c2382199458c98a62b045145ee54ab6aba86166aecf3d10c3c1444c.zip"

# Test with private sample S3 key
./test-docker.sh "private/ab/cd/abcd1234567890abcdef1234567890abcdef1234567890abcdef123456.zip"
```

### Nomad Job Architecture Test
```bash
# Test Nomad job mode
./test-nomad.sh
```

## Development

### Interactive Container
```bash
# Debug container interactively
docker run -it --entrypoint /bin/bash redb:latest

# Check tool availability
docker run --rm redb:latest which python3
docker run --rm redb:latest ls -la /usr/bin/capa
```

### Build Troubleshooting

The build script includes workarounds for Docker Desktop bugs:

```bash
# If build hangs at "exporting to image", press Ctrl+C
# The image will still be created and tagged automatically
./docker-build.sh
```

### Container Logs
```bash
# View logs from mounted directory
docker run -v ./logs:/app/logs redb:latest python3 start.py --path /samples
tail -f logs/*.txt
```

## Production Notes

### Resource Requirements
- **Memory**: 2-4GB recommended (8GB for decompilation)
- **CPU**: 2+ cores recommended
- **Disk**: Minimal (stateless container)
- **Network**: Access to ClickHouse and S3 services

### Security
- Container runs as non-root user `analyzer` (UID 1000)
- Sample files should be mounted read-only
- No persistent state between container runs
- Isolated processing environment for malware analysis

### Deployment Architecture

This container is designed for:
- **Nomad job dispatch**: Single-use containers processing one sample each
- **Kubernetes jobs**: Batch processing with external orchestration
- **CI/CD pipelines**: Automated analysis in build systems
- **Development**: Local testing and debugging

The unified container approach means the same image handles both feature extraction and decompilation - the difference is only in the command-line flags used when starting the container.