ropweaver> help upload
Use the Upload tab to submit ELF or PE binaries. 
ROPWeaver will analyze architecture, stack protections (NX, PIE, RELRO, Canary), 
and extract usable gadgets and ROP chains automatically.

Example: Uploading an ELF binary like `sample_x86.elf` will result in detection
of gadgets like:
  - pop eax; ret
  - pop ebx; pop ecx; pop edx; ret
  - int 0x80

ropweaver> help search
After analysis, use Search to explore gadgets:
  - By instruction: e.g., `pop eax`, `int 0x80`
  - By type: `syscall_trigger`, `register_move`, `stack_pivot`
  - By register (r32, r64, etc.)

Advanced filters allow:
  ?   Match one instruction
  %   Match one or more
  $   Match mnemonic prefix
  -   Exclude keyword

Example: "pop r32 %" lists gadgets popping into 32-bit registers.

ropweaver> help chain
If auto-chain generation is enabled, ROPWeaver will attempt to create exploit
chains (e.g., `execve("/bin/sh")`) using the discovered gadgets.

Example output:
  Step 1: pop eax; ret — Set syscall number
  Step 2: pop ebx; ... — Set arguments
  Step 3: int 0x80     — Trigger syscall

ropweaver> help download
Generated output can be exported as:
  - JSON report (with metadata, gadgets, chain)
  - Gzipped raw gadget dump
  - Optional Firebase sync (if configured)

ropweaver> help upload-to-firestore
If Firebase is configured, reports will be uploaded automatically with:
  - Architecture
  - Binary name
  - Protection info
  - Gadget list
  - Chain steps

Make sure your `firebase_config.json` is placed in `/config/` and the tool
was compiled with `-lcurl` and `nlohmann::json`.

Example CLI:
  ./ropweaver sample.elf --auto-chain --upload-report

ropweaver> help examples
Common patterns to look for:
  Stack Pivot: "xchg esp %"
  POP-POP-RET: "pop ? pop ?"
  Deref Loads: "mov eax, [ebx]"
  Mem Writes: "mov [edi], eax"