Application Security
Symbolic Execution
Also known as: Symbolic analysis, Concolic execution
Definition
A program analysis technique that executes code with symbolic inputs rather than concrete values, building path constraints solved by an SMT solver to find bugs.
Examples
- Using KLEE on a C library to generate inputs that hit each branch and trigger asserts.
- Combining angr with AFL++ to solve constraints fuzzing alone cannot.
Related terms
Fuzz Testing
An automated testing technique that feeds a program large amounts of malformed, random or unexpected input to uncover crashes, memory corruption and security vulnerabilities.
Coverage-Guided Fuzzing
A fuzzing technique that instruments the target to measure code coverage and evolves inputs that explore previously unseen paths, dramatically improving bug-finding efficiency.
Mutation Fuzzing
A fuzz testing strategy that derives new test inputs by randomly mutating existing valid samples, such as flipping bits, inserting bytes or splicing files.
SAST (Static Application Security Testing)
Automated analysis of source code, bytecode or binaries — without executing it — to find security weaknesses such as injection, unsafe APIs or insecure crypto.
Buffer Overflow
A memory-safety flaw where a program writes past the end of an allocated buffer, corrupting adjacent memory and often enabling code execution.
Secure Coding
Secure Coding — definition coming soon.