Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

lumina_proxy

A tiny Python proxy that fixes IDA Pro's Lumina connection drops on limited upload bandwidth.

The Problem

IDA sends all function hashes in a single giant TCP frame. On slow uplinks the OS aborts the connection mid-send:

lumina: connection closed (send: An established connection was aborted by the software in your host machine.). Trying to reconnect...

How It Works

The proxy sits between IDA and your Lumina server. It receives the full PULL request locally (fast, loopback), splits the hash list into small batches, sends them one at a time to the real server, then returns a single merged response to IDA.

IDA ──(loopback)──► lumina_proxy.py ──(paced)──► ida.int.mov:1234

Requirements

  • Python 3.7+ (stdlib only, no pip installs)

Setup

1. Edit the config at the top of lumina_proxy.py:

LISTEN_ADDR       = "127.0.0.1"
LISTEN_PORT       = 20667          # IDA connects here
SERVER_HOST       = "ida.int.mov"  # your real Lumina server
SERVER_PORT       = 1234
CHUNK_SIZE        = 300            # hashes per batch (lower = safer on slow uplink)
INTER_BATCH_DELAY = 0.05           # seconds between batches (0 to disable)

2. Run the proxy:

python lumina_proxy.py

3. In IDA → Options → Lumina:

Setting Value
Host 127.0.0.1
Port 20667
TLS off

Protocol Support

Command Behaviour
PULL (0x0e) Chunked — split & merged transparently
PUSH (0x10) Pass-through
HIST (0x2f) Pass-through
DEL (0x18) Pass-through

About

A tiny Python proxy that fixes IDA Pro's Lumina connection drops on limited upload bandwidth

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages