User Guide
Getting Started
Drag and drop any executable file onto the drop zone, or click to browse. BinScope automatically detects the format (ELF, PE, or Mach-O) by reading the magic bytes at the start of the file.
You can also try the built-in sample files to explore the interface without having a binary on hand.
Understanding ELF Files
ELF (Executable and Linkable Format) is the standard binary format on Linux and most Unix-like systems. Key components:
- ELF Header — File class (32/64-bit), endianness, machine type, entry point
- Program Headers — Describe segments for loading (LOAD, DYNAMIC, GNU_STACK, etc.)
- Section Headers — Describe sections (.text, .data, .rodata, .bss, .symtab, etc.)
- Symbol Tables — .symtab (all symbols) and .dynsym (dynamic symbols)
- Dynamic Section — Shared library dependencies (DT_NEEDED), runtime info
Understanding PE Files
PE (Portable Executable) is the Windows executable format. Structure:
- DOS Header — Legacy DOS stub with pointer to PE header
- COFF Header — Machine type, number of sections, timestamp
- Optional Header — Entry point, image base, subsystem, DLL characteristics
- Data Directories — Import/export tables, resources, debug info, certificates
- Section Headers — .text, .rdata, .data, .rsrc, etc.
Understanding Mach-O Files
Mach-O is the executable format for macOS and iOS. Structure:
- Header — CPU type, file type, number of load commands
- Load Commands — Segments (LC_SEGMENT_64), libraries (LC_LOAD_DYLIB), entry point (LC_MAIN)
- Fat/Universal Binaries — Container for multiple architectures (x86_64 + ARM64)
Security Features
BinScope checks for common security hardening features:
- PIE/ASLR — Position-Independent Executable, randomizes memory layout
- NX/DEP — Non-Executable stack, prevents code execution on stack
- Stack Canary — Detects stack buffer overflows at runtime
- RELRO (ELF) — Protects GOT from overwrite attacks
- CFG (PE) — Control Flow Guard, validates indirect call targets
- Code Signature (Mach-O) — Verifies binary integrity and origin
FAQ
Q: What formats are supported?
A: ELF (32/64-bit, both endianness), PE (PE32/PE32+), and Mach-O (32/64-bit, including Fat/Universal).
Q: Are my files uploaded?
A: No. Everything runs in your browser. Your files never leave your device.
Q: Can it handle large files?
A: Yes. BinScope reads files in chunks using File.slice().
Q: Is BinScope free?
A: Yes, completely free to use.