Glossary
Plain-language definitions of SEO terms used across the blog.
- Virtualization Obfuscation
- An advanced obfuscation technique that translates native instructions into a custom bytecode executed by an embedded interpreter, defeating standard disassemblers.
- Symbolic Execution
- A program analysis technique that executes code with symbolic (abstract) values instead of concrete inputs, exploring multiple paths simultaneously.
- NOP Sled
- A sequence of NOP (no-operation) instructions prepended to shellcode so that imprecise jumps still land in executable payload territory.
- Patching
- Modifying the bytes of a binary on disk or in memory to change its behavior — for example to bypass a license check or disable anti-debug code.
- Entropy
- A measure of randomness in binary data — high entropy in a section indicates compression or encryption, a hallmark of packed malware.
- YARA
- A pattern-matching tool and rule language used to identify and classify malware samples based on textual or binary signatures.
- Dynamic Analysis
- Analyzing a binary by actually running it, observing its behavior in real time using debuggers, sandboxes, and system monitoring tools.
- Static Analysis
- Examining a binary without executing it — using disassemblers, decompilers, and file-format parsers to understand its structure and logic.
- Sandbox
- An isolated execution environment that runs a suspicious binary, monitors its behavior, and prevents it from affecting the real system.
- Gadget
- A short sequence of existing instructions ending in a RET (or similar) used as a building block in Return-Oriented Programming chains.
- Return-Oriented Programming (ROP)
- An exploitation technique that chains small existing code snippets ending in RET instructions to execute arbitrary logic without injecting new code.
- Shellcode
- Self-contained position-independent machine code injected and executed in a target process, typically as an exploit payload.
- Obfuscation
- Intentional transformation of code or data to make it harder to understand, while preserving the original program's behavior.
- Packer
- A tool that compresses or encrypts an executable and wraps it with a stub that decompresses/decrypts it at runtime before transferring control to the original code.
- Basic Block
- A maximal straight-line sequence of instructions with a single entry point and a single exit (branch or return) — the node unit of a CFG.
- Control Flow Graph (CFG)
- A directed graph representing all possible execution paths through a function, with nodes as basic blocks and edges as branches.
- Single-Stepping
- Executing one instruction at a time in a debugger to observe the exact effect of each operation on registers and memory.
- Breakpoint
- An instruction or hardware trigger in a debugger that pauses execution when the program reaches a specific address or condition.
- API Hooking
- Intercepting calls to API or library functions at runtime to monitor, modify, or redirect their behavior.
- System Call
- A controlled transition from user space to the OS kernel to request a privileged operation such as reading a file or allocating memory.
- Endianness
- The byte order in which multi-byte integers are stored in memory: little-endian (LSB first) or big-endian (MSB first).
- Stripped Binary
- An executable from which the symbol table and debug information have been removed, making reverse engineering significantly harder.
- Symbol Table
- A section of a binary that maps function and variable names to their addresses, present in debug or non-stripped builds.
- Relocation
- The process of adjusting hardcoded addresses in a binary when it is loaded at a different base address than the one assumed at compile time.
- Import Address Table (IAT)
- A table inside a PE binary filled by the Windows loader with the runtime addresses of imported DLL functions.
- Original Entry Point (OEP)
- The entry point of an executable before a packer or protector modified it — the address where the original code starts after unpacking.
- Entry Point
- The virtual address where the OS loader transfers control to a binary after loading it into memory.
- ELF Format
- Executable and Linkable Format — the standard binary file format on Linux and most Unix-like systems for executables, shared libraries, and object files.
- PE Format
- Portable Executable — the binary file format used by Windows executables (.exe, .dll, .sys) that defines headers, sections, and import tables.
- Instruction Set Architecture (ISA)
- The complete specification of a processor's instructions, registers, and addressing modes that software can rely on.
- ABI
- Application Binary Interface — the low-level contract covering calling conventions, data layout, and system call mechanics between compiled components.
- Calling Convention
- The agreed rules for how a function call passes arguments, returns values, and manages the stack and registers.
- Heap
- The region of memory used for dynamic allocations (malloc/new), managed by the runtime allocator rather than the CPU automatically.
- Stack
- A LIFO memory region that grows downward, used for return addresses, local variables, and saved registers during function calls.
- Register
- A small, ultra-fast storage location built directly into the CPU, used to hold operands, addresses, and CPU state during execution.
- Operand
- The argument(s) to an assembly instruction — the registers, memory addresses, or immediate values it acts upon.
- Mnemonic
- The short human-readable name for a CPU instruction, such as MOV, PUSH, or CALL, used in assembly language.
- Opcode
- The numeric byte(s) in machine code that identify which operation the CPU should execute.
- Debugger
- A tool that lets an analyst pause, inspect, and modify a running process — the cornerstone of dynamic analysis.
- Decompiler
- A tool that attempts to reconstruct high-level source code (C, pseudocode) from compiled binary machine code.
- Disassembler
- A tool that converts raw binary machine code back into human-readable assembly language mnemonics.