Categorized by type:
file formats = Parsing and manipulation of sections in binary structures.
reversing = Reverse engineering of binary executables.
constraint solving = Modelling our problem domain as satisfiable constraints on symbolic variables.
dynamic instrumentation = Modify an executable's behaviour by injecting instructions at runtime.
lookup magic = Identify file formats by signatures, algorithms by constants, containers by file sizes in metadata...
tracing = Output internal state created during program execution.